AWS EC2 рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░реЗрдВ

рдЕрдореЗрдЬрд╝реЕрди рдкрд░ EC2 рдШрдЯрдХреЛрдВ рдХреА рд▓рд╛рдЧрдд рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░, рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд┐рд╕рд╕реЗ рдЧрдВрднреАрд░ рд╡рд┐рддреНрддреАрдп рд▓рд╛рдЧрддреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ - рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░, рдЯреНрд░реИрдлрд╝рд┐рдХред рдпрджрд┐ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдФрд░ рдИрдмреАрдПрд╕ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдХрд┐рд░рд╛рдпреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рддреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рдПрдХ рдорд╛рд╕рд┐рдХ рдмрд┐рд▓ рдЗрд╕рдХреА рдЕрдирджреЗрдЦреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдХ рдФрд╕рдд рд╕рдорд╛рдЪрд╛рд░ рд╕рд╛рдЗрдЯ, рдкреНрд░рддрд┐ рджрд┐рди 30 рд╣рдЬрд╛рд░ рдХрд╛ рджреМрд░рд╛, рдпрд╣ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЫреЛрдЯреЗ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реВрдХреНрд╖реНрдо рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред 2 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХрд╛ рдкреВрд░реНрдг рдкреГрд╖реНрда рдЖрдХрд╛рд░ рд▓реЗрдВ, рдлрд┐рд░ рдорд╛рд╕рд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ (рдХреИрд╢реНрдб рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЫреЛрдбрд╝рдХрд░) - 30,000 * 0.002 * 30 = 1800 рдЬреАрдмреА рдпрд╛ $ 216 рд╣реЛрдЧрд╛ ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдбрд╛рдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреА рд▓рд╛рдЧрдд рдЦреБрдж рдХреЛ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗрдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╣реИ! S3 рдкрд░, рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдХреАрдорддреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕реА рд╣реА рд╣реИред


рдЗрд╕ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдЬрд┐рд╕реЗ рд╕реАрдзреЗ рдЕрдореЗрдЬрд╝рди рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдПрдХ рд╕рд╕реНрддреЗ рдФрд░ рддреЗрдЬ рдЪреИрдирд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЗрдЯрдЬрд╝рдирд░ рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░ рдорд╣рд╛рди рд╣реИрдВред

рдпрджреНрдпрдкрд┐ рд╕реНрдереИрддрд┐рдХ рд╕реНрдерд┐рд░ рд╣реИ, рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ - рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб, рдЕрдкрдбреЗрдЯ, рдбрд┐рд▓реАрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдореЗрдЬрд╝реЕрди рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕реНрдерд┐рд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП lsyncd рд▓реЗрдВ - рдпрд╣ рджреА рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдХреБрдЫ рдмрджрд▓рд╛ рд╣реИ рддреЛ Lua рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рдПрдХ рдЕрдЪреНрдЫреА рдкреЛрд╕реНрдЯ рдореЗрдВ lsyncd рдХрд╛ рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг: habrahabr.ru/post/132098 )

рдЕрдореЗрдЬрд╝рди рд╕рд░реНрд╡рд░ рдкрд░ (CentOS рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг):

рд╣рдо lsyncd, rsync рд▓рдЧрд╛рддреЗ рд╣реИрдВ:

yum install lsyncd mkdir -p /var/log/lsyncd 


рд╣рдо /etc/lsyncd.conf рдореЗрдВ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ "рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛, php рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╣рд░ 3 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ, ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ rsync рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред"

 settings = { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status", } sync { default.rsyncssh, source = "/home/user/example.com", host = "static.example.com", targetdir = "/home/user/static.example.com", rsyncOps = {"-av", "--temp-dir=/tmp", "--delete", "--exclude=*php"}, exclude = {"somestaticfile.json"}, delay = 3, } 


рд╣рдо ssh-keygen рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдВрдЬреА (рдЕрдЧрд░ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИрдВ) рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдзрд┐рдХреГрдд id_keys рдореЗрдВ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП id_rsa.pub рдХреЛ рд╕реНрдерд┐рд░ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рд╣рдо lsyncd рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 lsync /etc/lsyncd.conf 


рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рддреБрд░рдВрдд рд▓реЙрдЧ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд┐рд░ рд╕рд░реНрд╡рд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рддрд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдПрдХрдорд╛рддреНрд░ рд╕рдордп рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрдм рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдРрд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдореЗрдЬрд╝реЕрди рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рддрдм рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрдм рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЫрд╡рд┐ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдЗрд╕реЗ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИред Nginx config рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:

 server { listen 80; server_name static.example.com location / { root /home/user/static.example.com; add_header Access-Control-Allow-Origin *; #   JSON  jQuery try_files $uri @pass; } location @pass { proxy_set_header Host "example.com; proxy_pass http://example.com; } } 


рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо AWS рдХреА рд╕рдВрдпреБрдХреНрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рд╣реЗрдЯреНрдЬрд╝рдирд░ рдХреА рдХрдо рд▓рд╛рдЧрдд рд╣реИред

рдкреБрдирд╢реНрдЪ
рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ sysctl рдореЗрдВ рдЗрдиреЙрдЯрд┐рдлрд╝рд╛рдЗ рдкрд░ рд╕реАрдорд╛рдПрдБ рдмрдврд╝рд╛рдиреА рдкрдбрд╝ рд╕рдХрддреА рд╣реИрдВ:

 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 65000 fs.inotify.max_queued_events = 16384 

Source: https://habr.com/ru/post/In164271/


All Articles