"рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛ рджрд┐рдпрд╛": рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреМрди рджреЛрд╖реА рд╣реИ?

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

"рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛ рджрд┐рдпрд╛": рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреМрди рджреЛрд╖реА рд╣реИ?

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

рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ, рдореЗрд░реА рдЯреАрдо рдПрдХ рдПрдХрд▓ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреЛ рдПрдХ рдХреЛрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд░рд╣реА рдереА рдЬрд┐рд╕рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдЖрдзрд╛рд░рд┐рдд рд░рдирдЯрд╛рдЗрдо, рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЕрдиреНрдп рдЕрдЪреНрдЫрд╛рдЗрдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рдереАрдВред рдпрд╣ рдХрджрдо рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдерд╛: рд╣рдордиреЗ рдЗрд╕реЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ 150 рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред рдпреЗ рд╕рднреА рд╕реНрдкреЗрди рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдСрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (рдЗрдиреНрдлреЛрдЬреЙрдмреНрд╕, рдлреЛрдЯреЛрдХрд╛рд╕рд╛, рдЖрджрд┐) рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред

рдЬрдм рд╣рдордиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдФрд░ рдХреБрдЫ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЙрд╕ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛, рддреЛ рдПрдХ рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣рдорд╛рд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред рджреЗрд░реА (рд╡рд┐рд▓рдВрдмрддрд╛) Kubernetes рдореЗрдВ рдЕрдиреБрд░реЛрдз EC10 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 2 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдереЗред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╛ рддреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдпрд╛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ (рдФрд░, рд╕рдВрднрд╡рддрдГ, рд╕рдВрдкреВрд░реНрдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ EC2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрддрдиреА рдЕрдзрд┐рдХ рдХреНрдпреЛрдВ рд╣реИ?

рдЕрдбрд╝рдЪрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкреВрд░реЗ рдЕрдиреБрд░реЛрдз рдкрде рдкрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдХрддреНрд░ рдХрд┐рдПред рд╣рдорд╛рд░рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рд░рд▓ рд╣реИ: рдПрдХ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ (рдЬрд╝реВрдЙрд▓) рдИрд╕реА2 рдпрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╣рдо рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмреИрдХрдПрдВрдб рд╕рд╛рдорд╛рдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрд░рд╣ рд╣реЛрддреЗ рд╣реИрдВ рддреИрдирд╛рддреА рд╕реНрдкреНрд░рд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ JVM рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рдеред

                                  EC2
                            +---------------+
                            |  +---------+  |
                            |  |         |  |
                       +-------> BACKEND |  |
                       |    |  |         |  |
                       |    |  +---------+  |                   
                       |    +---------------+
             +------+  |
Public       |      |  |
      -------> ZUUL +--+
traffic      |      |  |              Kubernetes
             +------+  |    +-----------------------------+
                       |    |  +-------+      +---------+ |
                       |    |  |       |  xx  |         | |
                       +-------> NGINX +------> BACKEND | |
                            |  |       |  xx  |         | |
                            |  +-------+      +---------+ |
                            +-----------------------------+

рд╕рдорд╕реНрдпрд╛ рдмреИрдХрдПрдВрдб рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рд▓рдВрдмрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ (рдореИрдВрдиреЗ рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЛ "xx" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ)ред EC2 рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рдЧрднрдЧ 20ms рд▓рдЧреЗред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рд╡рд┐рд▓рдВрдмрддрд╛ 100-200 рдПрдордПрд╕ рддрдХ рдмрдврд╝ рдЧрдИред

рд╣рдордиреЗ рд░рдирдЯрд╛рдЗрдо рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрджрд┐рдЧреНрдзреЛрдВ рдХреЛ рддреБрд░рдВрдд рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ред JVM рд╕рдВрд╕реНрдХрд░рдг рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИ. рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рднреА рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рдерд╛: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА EC2 рдкрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓ рд░рд╣рд╛ рдерд╛ред рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ? рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1 рдЕрдиреБрд░реЛрдз рдкрд░ рднреА рдЙрдЪреНрдЪ рд╡рд┐рд▓рдВрдмрддрд╛ рджреЗрдЦреАред рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рд░реЛрдХ рдХреА рднреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рд╣рдорд╛рд░реЗ Kubernetes рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдХреНрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдереАрдВ рдХреНрдпреЛрдВрдХрд┐ DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдиреЗ рдЕрддреАрдд рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХреА рдереАрдВред

рдкрд░рд┐рдХрд▓реНрдкрдирд╛ 1: рдбреАрдПрдирдПрд╕ рдирд╛рдо рд╕рдорд╛рдзрд╛рди

рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдбреЛрдореЗрди рдЬреИрд╕реЗ AWS Elasticsearch рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдПрдХ рд╕реЗ рддреАрди рдмрд╛рд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ elastic.spain.adevinta.com. рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЕрдВрджрд░ рд╡рд╣рд╛рдБ рдПрдХ рд╢рдВрдЦ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЬрд╛рдВрдЪ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдбреЛрдореЗрди рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдХрдВрдЯреЗрдирд░ рд╕реЗ DNS рдХреНрд╡реЗрд░реАрдЬрд╝:

[root@be-851c76f696-alf8z /]# while true; do dig "elastic.spain.adevinta.com" | grep time; sleep 2; done
;; Query time: 22 msec
;; Query time: 22 msec
;; Query time: 29 msec
;; Query time: 21 msec
;; Query time: 28 msec
;; Query time: 43 msec
;; Query time: 39 msec

EC2 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рд╕рдорд╛рди рдЕрдиреБрд░реЛрдз рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

bash-4.4# while true; do dig "elastic.spain.adevinta.com" | grep time; sleep 2; done
;; Query time: 77 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec

рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд▓реБрдХрдЕрдк рдореЗрдВ рд▓рдЧрднрдЧ 30ms рд▓рдЧреЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ Elasticsearch рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ DNS рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗ рд░рд╣рд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рджреЛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдЬреАрдм рдерд╛:

  1. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдвреЗрд░ рд╕рд╛рд░реЗ Kubernetes рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВ рдЬреЛ рдЙрдЪреНрдЪ рд╡рд┐рд▓рдВрдмрддрд╛ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реБрдП рдмрд┐рдирд╛ AWS рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдХрд╛рд░рдг рдЬреЛ рднреА рд╣реЛ, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
  2. рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ JVM рдЗрди-рдореЗрдореЛрд░реА DNS рдХреИрд╢рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ, рдЯреАрдЯреАрдПрд▓ рдорд╛рди рд▓рд┐рдЦрд╛ рд╣реБрдЖ рд╣реИ $JAVA_HOME/jre/lib/security/java.security рдФрд░ 10 рд╕реЗрдХрдВрдб рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ: networkaddress.cache.ttl = 10. рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, JVM рдХреЛ рд╕рднреА DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ 10 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

34.55.5.111 elastic.spain.adevinta.com

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

рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рджрд╛рди

рд╣рдордиреЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ tcpdumpрдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

[root@be-851c76f696-alf8z /]# tcpdump -leni any -w capture.pcap

рдлрд┐рд░ рд╣рдордиреЗ рдХрдИ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рдФрд░ рдЙрдирдХрд╛ рдХреИрдкреНрдЪрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ (kubectl cp my-service:/capture.pcap capture.pcap) рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП Wireshark.

DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рдирд╣реАрдВ рдерд╛ (рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛)ред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛рдПрдБ рдереАрдВред рдиреАрдЪреЗ рдХреИрдкреНрдЪрд░ рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

"рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛ рджрд┐рдпрд╛": рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреМрди рджреЛрд╖реА рд╣реИ?

рдкреИрдХреЗрдЬ рдирдВрдмрд░ рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЯреАрд╕реАрдкреА рдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреЛ рд░рдВрдЧ-рдХреЛрдбрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдкреИрдХреЗрдЯ 328 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░реА рд╕реНрдЯреНрд░реАрдо рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ (172.17.22.150) рдиреЗ рдХрдВрдЯреЗрдирд░ (172.17.36.147) рд╕реЗ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реИрдВрдбрд╢реЗрдХ (328-330) рдХреЗ рдмрд╛рдж, рдкреИрдХреЗрдЬ 331 рд▓рд╛рдпрд╛ рдЧрдпрд╛ HTTP GET /v1/.. - рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рдХ рдЕрдиреБрд░реЛрдзред рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 1 рдПрдордПрд╕ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред

рдЧреНрд░реЗ рд╕реНрдЯреНрд░реАрдо (рдкреИрдХреЗрдЯ 339 рд╕реЗ) рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдиреЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рд╣реИ (рдХреЛрдИ рдЯреАрд╕реАрдкреА рд╣реИрдВрдбрд╢реЗрдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ)ред рдЗрд╕рдореЗрдВ 18ms рд▓рдЧреЗ.

рдЕрдм рддрдХ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдФрд░ рд╕рдордп рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рджреЗрд░реА (рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдорд╛рдкрд╛ рдЬрд╛рдиреЗ рдкрд░ 20-30 рдПрдордПрд╕) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдиреАрд▓рд╛ рдЕрдиреБрднрд╛рдЧ 86ms рд▓реЗрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдкреИрдХреЗрдЯ 333 рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдиреЗ рдПрдХ HTTP GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ /latest/meta-data/iam/security-credentials, рдФрд░ рдЗрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдЙрд╕реА рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдкрд░, рдПрдХ рдФрд░ GET рдЕрдиреБрд░реЛрдз /latest/meta-data/iam/security-credentials/arn:...

рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдкреВрд░реЗ рдЯреНрд░реЗрд╕ рдореЗрдВ рд╣рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдпрд╣ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ред рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ DNS рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИ (рдЗрд╕ рдШрдЯрдирд╛ рдХрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬреВрдВрдЧрд╛)ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд▓рдВрдмреА рджреЗрд░реА рдХрд╛ рдХрд╛рд░рдг рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ AWS рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рдкрд░ рдХреЙрд▓ рдереАред

рдкрд░рд┐рдХрд▓реНрдкрдирд╛ 2: AWS рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЙрд▓

рджреЛрдиреЛрдВ рд╕рдорд╛рдкрдирдмрд┐рдВрджреБ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ AWS рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдкреАрдЖрдИ. Elasticsearch рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдорд╛рд░реА рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рджреЛрдиреЛрдВ рдХреЙрд▓ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЬрд┐рд╕ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЬреБрдбрд╝реА IAM рднреВрдорд┐рдХрд╛ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред

/ # curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
arn:aws:iam::<account_id>:role/some_role

рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ:

/ # curl http://169.254.169.254/latest/meta-data/iam/security-credentials/arn:aws:iam::<account_id>:role/some_role`
{
    "Code" : "Success",
    "LastUpdated" : "2012-04-26T16:39:16Z",
    "Type" : "AWS-HMAC",
    "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
    "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
    "Token" : "token",
    "Expiration" : "2017-05-17T15:09:54Z"
}

рдЧреНрд░рд╛рд╣рдХ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╕рдордп-рд╕рдордп рдкрд░ рдирдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ (рдЙрдирдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ)ред Expiration). рдореЙрдбрд▓ рд╕рд░рд▓ рд╣реИ: AWS рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдШреБрдорд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рдХреА рднрд░рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рд╣рдХ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

AWS Java SDK рдХреЛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

GitHub рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ #1921. рдЙрд╕рдиреЗ рд╣рдореЗрдВ рдЖрдЧреЗ "рдЦреБрджрд╛рдИ" рдХрд░рдиреЗ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реЛрдиреЗ рдкрд░ AWS SDK рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ:

  • рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ (Expiration) рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ EXPIRATION_THRESHOLD, 15 рдорд┐рдирдЯ рддрдХ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдЕрдВрддрд┐рдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ REFRESH_THRESHOLD, 60 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрдВрдЯреЗрдирд░ рдФрд░ EC2 рдЙрджрд╛рд╣рд░рдг рджреЛрдиреЛрдВ рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдХрд░реНрд▓ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПред рдХрдВрдЯреЗрдирд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рдмрд╣реБрдд рдХрдо рдирд┐рдХрд▓реА: рдареАрдХ 15 рдорд┐рдирдЯред

рдЕрдм рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ: рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред рдЪреВрдБрдХрд┐ рд╡реЗ 15 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╡реИрдз рдирд╣реАрдВ рдереЗ, AWS SDK рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдЧрд╛ред рдФрд░ рдРрд╕рд╛ рд╣рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╣реБрдЖ.

рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рдХрдо рдХреНрдпреЛрдВ рд╣реЛ рдЧрдИ рд╣реИ?

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

KIAM рдкреЙрдбреНрд╕ рдХреЛ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдкреЙрдб рдХрд╛ рдФрд╕рдд рдЬреАрд╡рдирдХрд╛рд▓ EC2 рдЙрджрд╛рд╣рд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реИред рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рд╡рд╣реА 15 рдорд┐рдирдЯ рдХреЗ рдмрд░рд╛рдмрд░.

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рдЖрдк рджреЛрдиреЛрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдУрд╡рд░рд▓реЗ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ 15 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, AWS Java SDK рдХрд┐рд╕реА рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рдирд╡реАрдиреАрдХрд░рдг рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рд╕реЗ рдкрд╣рд▓реЗ 15 рдорд┐рдирдЯ рд╕реЗ рдХрдо рд╕рдордп рдмрдЪрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрд╕реНрдерд╛рдпреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдирд╡реАрдиреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ AWS API рдкрд░ рдХреБрдЫ рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред AWS Java SDK рдореЗрдВ рд╣рдордиреЗ рдкрд╛рдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЗрдЦ рдорд╛рдВрдЧрдирд╛, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИред

рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдирд┐рдХрд▓рд╛. рд╣рдордиреЗ рд▓рдВрдмреА рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рд╡рд╛рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП KIAM рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рд╣реЛрдиреЗ рдкрд░, AWS рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реЛрдиреЗ рд▓рдЧреЗ, рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ EC2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд░ рднреА рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рддрдХ рдЧрд┐рд░ рдЧрдИред

рдирд┐рд╖реНрдХрд░реНрд╖

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

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

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

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕

рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде AWS IAM рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП KIAM рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рд▓реЗрдЦ рдЗрд╕рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рд╕реЗ.

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ