AWS S3 рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░

рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВред
рдлрд┐рд░ рд╕реЗ рдореИрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░, рд▓рдХреНрд╖реНрдп рдПрдХ FTP рд╕рд░реНрд╡рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд╕рд╛рде рдерд╛ред рдмрдврд╝реА рд╣реБрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдорддрд▓рдм рд╣реИ:
рдЪрд░рдг рдПрдХ : s3fs рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ S3 рдмрд╛рд▓реНрдЯреА рдХреЛ рдПрдХ рдбрд┐рд╕реНрдХ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВред
рдХрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдмрд▓реНрдХрд┐ рдПрдХ (рдЕрдЧрд░ рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реБрдИ рд╣реИ - рд╕рд╣реА) - s3fs ред рдЙрдирдХреЗ рдкреГрд╖реНрда рдкрд░ s3fs рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ "s3fs рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ред " S3fs рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдпрд╣рд╛рдВ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, s3fs рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдЬрдм рдЖрдк S3 рдкрд░ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреБрд░рдВрдд рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдмрд╛рдж рдореЗрдВ рдЖрдк S3 рдкрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рднреА рд╕рд░реНрд╡рд░ рдкрд░ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде S3 рдмрд╛рд▓реНрдЯреА рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рд╡рд┐рднрд┐рдиреНрди s3fs рд░рд┐рд▓реАрдЬ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд╛рдпрд╛ рдЧрдпрд╛ рдЬрд╣рд╛рдВ рдЗрд╕ рдмрдЧ рдиреЗ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЕрдирдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдореЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред S3fs рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ:рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдмрд╛рд▓реНрдЯреА рдХреЛ рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
#/usr/bin/s3fs mybucket /mnt/mybucket/ -o accessKeyId=XXXXXXXXXXXXX -o secretAccessKey=YYYYYYYYYYYYYYYYY -o allow_other,rw -o readwrite_timeout=120; 

рдЪрд░рдг рджреЛ : рд╢реБрджреНрдз-рдПрдлрдкреАрдбреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдпрд╣ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ред рдмрд╕ рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, Pure-ftpd рдкреИрд░рд╛рдиреЙрдпрдб рд╣реИ, рдФрд░ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирдИ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЬрдм рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХрдИ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди S3 рдкрд░, рддреЛ рдпрд╣ рдХрдо рд╕рдордп рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╢реБрджреНрдз-ftpd рдХреЛ --without-sendfile рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ред рдмреЗрд╢рдХ, рдпрд╣ рдЖрдкрдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдХрд┐рдпрд╛ рдФрд░ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реБрдЖред

рдЪрд░рдг рддреАрди : рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдРрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдирд┐рдпрдорд┐рдд рдбрд┐рд╕реНрдХ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЬрди рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЖрд░рдУ рдпрд╛ рдЖрд░рдбрдмреНрд▓реНрдпреВ)ред рдпрд╛рдиреА рдпреВрдЬрд░ рдпрд╛ рддреЛ рд╕рдм рдХреБрдЫ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╢реБрджреНрдз-рдПрдлрдкреАрдбреА рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдпрд╣ рд▓рд┐рдВрдХ рдХрд╛ "рдЕрдиреБрд╕рд░рдг" рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк --with-virtualchroot рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдмрд╛рд▓реНрдЯреА рдХреЛ рджреЛ рдмрд╛рд░, рдХреЗрд╡рд▓ -рдкрдврд╝рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ-рд▓рд┐рдЦрдиреЗ рдХреЗ рдореЛрдб рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдШрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЙрдирд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 #/usr/bin/s3fs mybucket /mnt/mybucketrw/ -o accessKeyId=XXXXXXXXXXXXX -o secretAccessKey=YYYYYYYYYYYYYYYYY -o allow_other,rw -o readwrite_timeout=120; #/usr/bin/s3fs mybucket /mnt/mybucketro/ -o accessKeyId=XXXXXXXXXXXXX -o secretAccessKey=YYYYYYYYYYYYYYYYY -o allow_other,ro -o readwrite_timeout=120; #mount | grep s3fs s3fs on /mnt/mybucketro type fuse.s3fs (ro,nosuid,nodev,allow_other) s3fs on /mnt/mybucketrw type fuse.s3fs (rw,nosuid,nodev,allow_other) 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
 ls -la /mnt/Users/User1/ . lrwxrwxrwx 1 root root 15 Mar 25 09:10 mybucketro/folder1 -> /mnt/mybucketro/folder1 lrwxrwxrwx 1 root root 15 Mar 25 09:10 mybucketrw/folder2 -> /mnt/mybucketrw/folder2 

рдЕрдм рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП / mnt / mybucketro / folder 1 рдлрд╝реЛрд▓реНрдбрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ / mnt / mybucketrw / folder2 рдлрд╝реЛрд▓реНрдбрд░ рддрдХ рдкрд╣реБрдВрдЪ рд▓рд┐рдЦреА рд╣реИ ред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓рд╛ TK рдЖрдЗрдЯрдо (AWS S3 рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ) рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЪрд░рдг рдЪрд╛рд░ : рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ AWS LoadBalancer рдФрд░ рдЙрд╕рдХреЗ рдЕрджреНрднреБрдд HealthCheck рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
AWS рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдмреИрд▓реЗрдВрд╕рд░ рдмрдирд╛рдПрдВ (рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдХ рдмреИрд▓реЗрдВрд╕рд░ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╡рд╣, рдпрд╣рд╛рдБ рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╣реИ )ред
рдкрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ, рдЯреАрд╕реАрдкреА, рдкрд┐рдВрдЧ рдкреЛрд░реНрдЯ - 21 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдпрд╣реА рд╣реИ, рдЕрдм рд╕рд░реНрд╡рд░ рдХреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ 21 рдкреЛрд░реНрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПрдЧреА, рдЕрд░реНрдерд╛рдд рд╣рдорд╛рд░рд╛ рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░ред
рд╣рдо рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдПрдордЖрдИ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЬрд┐рд╕ рдкрд░ рдПрдлрд╝рдЯреАрдкреА рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдирд┐рд░реНрдорд┐рдд рдПрдПрдордЖрдИ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ-рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╣реИрдВред
рдПрдХ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ-рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рдЕрдкрдиреЗ рдирдП рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдФрд░ --health-check-type ELB рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░ "рдХреНрд░реИрд╢" рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдЧрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд░ рд╕рд░реНрд╡рд░ рдмрдврд╝рд╛рдПрдЧрд╛ред рдЪреВрдВрдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рд╣рдо S3 рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣рдореЗрдВ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧреАред

рдкрд╛рдВрдЪ рдЪрд░рдг (рд╡реИрдХрд▓реНрдкрд┐рдХ) рдЖрдкрдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИ : рд▓реЛрдб рд╕рдВрддреБрд▓рди рдФрд░ рдСрдЯреЛрд╕реНрдХреЛрд▓рд┐рдВрдЧ рдХреА рд╕реНрдерд╛рдкрдирд╛ред
Ftp рдкрд░ рднрд╛рд░ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рд╡реЗрдм рдкрд░ рд▓реЛрдб, рдХрд╣рдирд╛, рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдФрд░, рдПрдХ рддреИрдпрд╛рд░-рдореБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдвреВрдВрдврд╛, рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рд╕реАрдПрд╕рдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд░реВрдЯ 53 рдореЗрдВ рдП-рдЯрд╛рдЗрдк рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ - рд╡рдЬрдиред рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдореВрд▓реНрдп рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдЧреНрд░рд╛рд╣рдХ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдордп рдЙрд╕рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧреАред
рдпрд╣реА рд╣реИ, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдПрдХ рд╣реА рд╡рдЬрди рдХреЗ рд╕рд╛рде 5 рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ 5 рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд┐рдХреЙрд░реНрдб рдХреЛ AWS Route53 рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИрдВред рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:
instance_up.sh
 #!/bin/bash zone_id="Z3KU6XBKO52XV4" dns_record="example.com." instance_dns=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/public-hostname) instance_ip=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/public-ipv4) let number_nodes=$(route53 get $zone_id | grep $dns_record | wc -l)+1 weight="50" id=$(date "+%Y_%m_%d_%H:%M") route53 get $zone_id | grep $instance_ip > /dev/null if [ $? -ne 0 ]; then route53 get $zone_id | grep $dns_record | awk '{print $4" "$3" "$6" "$7}' | sed 's/id=//' | sed 's/\,//' | sed 's/w=//' | sed 's/)//' | while read i; do route53 del_record $zone_id $dns_record A $i route53 add_record $zone_id $dns_record A $(echo $i | awk '{print $1" "$2" "$3}') $weight done route53 add_record $zone_id $dns_record A $instance_ip 60 $id $weight fi 
рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░:
instance_down.sh
 #!/bin/bash zone_id="Z3KU6XBKO52XV4" dns_record="example.com." instance_dns=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/public-hostname) instance_ip=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/public-ipv4) let number_nodes=$(route53 get $zone_id | grep $dns_record | wc -l)+1 weight="50" id=$(date "+%Y_%m_%d_%H:%M") route53 get $zone_id | grep $instance_ip > /dev/null if [ $? -eq 0 ]; then route53 del_record $zone_id $(route53 get $zone_id | grep $instance_ip | awk '{print $1" "$2" "$4" "$3" "$6" "$7}' | sed 's/id=//' | sed 's/\,//' | sed 's/w=//' | sed 's/)//') fi 
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рд░реНрдЧ 53 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдЬрдЧрд░-рдмреЛрдЯреЛ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИред
рд╣рдо рджреЛрдиреЛрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдПрдПрдордЖрдИ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреНрдпреЛрд░-рдлреАрдЯрдк рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрдирд╛ рдХреЙрд▓ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
рдЕрдм, рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, Pure-Ftpd рдЕрдкрдиреЗ IP рдкрддреЗ рдХреЗ рд╕рд╛рде AWS Route53 рдореЗрдВ рдПрдХ рдирдпрд╛ "A" рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдЧрд╛, рдФрд░ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдЧрд╛ред
рдпрд╣ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ-рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓рдЕрдк рдФрд░ рд╕реНрдХреЗрд▓рдбрд╛рдЙрди рдХреЗ рд▓рд┐рдП рдиреАрддрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред

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

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


All Articles