{"id":307584,"date":"2020-07-28T09:00:18","date_gmt":"2020-07-28T09:00:18","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=307584"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=307584","title":{"rendered":"\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c 10 000 \u0438\u0432\u0435\u043d\u0442\u043e\u0432 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435. \u0427\u0430\u0441\u0442\u044c 2"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512670\/\">\u0418 \u0441\u043d\u043e\u0432\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0449\u0443\u043f\u0430\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u043e.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043f\u043b\u0430\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f:<br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512206\/\"><b>1 \u0447\u0430\u0441\u0442\u044c<\/b><\/a>. \u041c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u0441 \u0422\u0417 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 golang.<br \/>  <b>2 \u0447\u0430\u0441\u0442\u044c<\/b> (\u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0434\u0435\u0441\u044c). \u0412\u044b\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0434, \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443.<br \/>  <b>3 \u0447\u0430\u0441\u0442\u044c.<\/b> \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0431\u0443\u0444\u0435\u0440\u0435, \u0430 \u043d\u0435 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 kafka, rabbitmq \u0438 yandex queue service.<br \/>  <b>4 \u0447\u0430\u0441\u0442\u044c.<\/b> \u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c Clickhouse \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0443\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 datalens.<br \/>  <b>5 \u0447\u0430\u0441\u0442\u044c.<\/b> \u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0432\u0441\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0434\u043e\u043b\u0436\u043d\u044b\u0439 \u0432\u0438\u0434 \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c ci\/cd, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f gitlab ci, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0438 service discovery \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e consul \u0438 prometheus.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dw\/k4\/ya\/dwk4yakuwlwlmyyvieqr35m8epg.png\"><\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043d\u0430\u0448\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u043a\u0430\u043c.<a name=\"habracut\"><\/a><\/p>\n<h2>\u0412\u044b\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 production<\/h2>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512206\/\">1 \u0447\u0430\u0441\u0442\u0438<\/a> \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043e\u0442\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0432 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 container registry, \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c\u0438 \u2014 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c load balancer \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c DNS \u0438\u043c\u044f \u0441 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430 cloudflare. \u041d\u043e \u0431\u043e\u044e\u0441\u044c, \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044e. \u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u043c\u0435\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u0431\u0438\u0442\u044b\u0435 \u043d\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>  \u0414\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u043c\u0430\u0448\u0438\u043d (instance groups), \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432 compute cloud. \u041e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438 \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443, \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e health check\u2019\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/cloud.yandex.ru\/docs\/compute\/concepts\/instance-groups\/\">https:\/\/cloud.yandex.ru\/docs\/compute\/concepts\/instance-groups\/<\/a><\/p>\n<p>  \u0412\u0441\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u043a\u0430\u043a\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b? \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c linux, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0433\u043e, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0438 \u0437\u0430\u043b\u0438\u0442\u044c \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435. \u041d\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u044d\u0442\u043e \u0434\u043e\u043b\u0433\u0438\u0439 \u0438 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0443\u0442\u044c. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438, \u043c\u044b \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u2014 container optimized image (<a href=\"https:\/\/cloud.yandex.ru\/docs\/cos\/concepts\/\">https:\/\/cloud.yandex.ru\/docs\/cos\/concepts\/<\/a>). \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u0438\u043d docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 host. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0437\u0430 container optimized image:  <\/p>\n<pre><code class=\"bash\">spec:   containers:     - name: api       image: vozerov\/events-api:v1       command:         - \/app\/app       args:         - -kafka=kafka.ru-central1.internal:9092       securityContext:         privileged: false       tty: false       stdin: false       restartPolicy: Always<\/code><\/pre>\n<p>  \u0418 \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0430\u043d \u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f:<\/p>\n<ol>\n<li>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c instance group \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 60% cpu usage.<\/li>\n<li>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 \u043e\u0431\u0440\u0430\u0437\u043e\u043c container optimized image \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430\u0448\u0435\u0433\u043e Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u043c load balancer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0430\u0448\u0443 instance group \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.<\/li>\n<li>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c\u0441\u044f \u0438 \u043a\u0430\u043a instance group, \u0438 \u0441\u0430\u043c\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043a\u0438\u043d\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438 \u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<\/li>\n<\/ol>\n<p>  \u0417\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a \u043f\u043b\u0430\u043d!<\/p>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c instance group \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e terraform. \u0412\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 instance-group.tf, \u043f\u0440\u043e\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:  <\/p>\n<ol>\n<li>service account id \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a. \u041a\u0441\u0442\u0430\u0442\u0438, \u043d\u0430\u043c \u0435\u0433\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c.<br \/> \n<pre><code class=\"bash\">service_account_id = yandex_iam_service_account.instances.id<\/code><\/pre>\n<\/li>\n<li>\u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b spec.yml, \u0433\u0434\u0435 \u043f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 registry \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u0430 \u0433\u0438\u0442-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u044f \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u0432 \u043f\u0430\u0431\u043b\u0438\u043a \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431 \u2014 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0442\u0430\u043c \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d \u043e\u0431\u0440\u0430\u0437 \u0441 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e docker hub. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0434\u043e \u043d\u0435\u0433\u043e \u2014\n<pre><code class=\"bash\">\t             metadata = { \t  docker-container-declaration = file(&quot;spec.yml&quot;) \t  ssh-keys = &quot;ubuntu:${file(&quot;~\/.ssh\/id_rsa.pub&quot;)}&quot; \t}<\/code><\/pre>\n<\/li>\n<li>\u0423\u043a\u0430\u0436\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d service account id, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u043c container optimized image, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0439\u0442\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0432 container registry \u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a registry \u043c\u044b \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e:\n<pre><code class=\"bash\">service_account_id = yandex_iam_service_account.docker.id<\/code><\/pre>\n<\/li>\n<li>Scale policy. \u0421\u0430\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c:<br \/> \n<pre><code class=\"bash\">autoscale {   initialsize = 3   measurementduration = 60   cpuutilizationtarget = 60   minzonesize = 1   maxsize = 6   warmupduration = 60   stabilizationduration = 180 }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u2014 \u043b\u0438\u0431\u043e fixed_scale \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u043b\u0438\u0431\u043e auth_scale. <\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0442\u0430\u043a\u0438\u0435:<br \/>  <i>initial size<\/i> \u2014 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b;<br \/>  <i>measurement_duration<\/i> \u2014 \u043f\u0435\u0440\u0438\u043e\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f;<br \/>  <i>cpu_utilization_target<\/i> \u2014 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f, \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443;<br \/>  <i>min_zone_size<\/i> \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0434 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0437\u043e\u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u2014 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u043e\u0434\u044b, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u043b\u043e \u043d\u0438\u0436\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f;<br \/>  <i>max_size<\/i> \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0434 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435;<br \/>  <i>warmup_duration<\/i> \u2014 \u043f\u0435\u0440\u0438\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0435\u0432\u0430, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u043d\u043e\u0434\u044b, \u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435;<br \/>  <i>stabilization_duration<\/i> \u2014 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 \u043f\u043e\u0441\u043b\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u043e\u0434 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043e \u043d\u0430\u0448\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445. \u041d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c 3 \u043c\u0430\u0448\u0438\u043d\u043a\u0438 (initial_size), \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u043e\u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 (min_zone_size). \u0418\u0437\u043c\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c cpu \u0440\u0430\u0437 \u0432 \u043c\u0438\u043d\u0443\u0442\u0443 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043c\u0430\u0448\u0438\u043d\u043a\u0430\u0445 (measurement_duration). \u0415\u0441\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 60% (cpu_utilization_target), \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438, \u043d\u043e \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0448\u0435\u0441\u0442\u0438 (max_size). \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 60 \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441 \u043d\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043a\u0438 (warmup_duration), \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e cpu. \u0410 120 \u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043a\u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e (stabilization_duration), \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u0442\u0430\u043b\u043e \u043d\u0438\u0436\u0435 60% (cpu_utilization_target).<\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u2014 <a href=\"https:\/\/cloud.yandex.ru\/docs\/compute\/concepts\/instance-groups\/policies#auto-scale-policy\">https:\/\/cloud.yandex.ru\/docs\/compute\/concepts\/instance-groups\/policies#auto-scale-policy<\/a><\/li>\n<li>Allocation policy. \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0437\u043e\u043d\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0441\u0435 \u0442\u0440\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0437\u043e\u043d\u044b.\n<pre><code class=\"bash\"> allocationpolicy {   zones = [&quot;ru-central1-a&quot;, &quot;ru-central1-b&quot;, &quot;ru-central1-c&quot;] } <\/code><\/pre>\n<\/li>\n<li>\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0434\u0435\u043f\u043b\u043e\u044f \u043c\u0430\u0448\u0438\u043d\u043e\u043a:<br \/> \n<pre><code class=\"bash\"> deploy_policy {   maxunavailable = 1   maxcreating = 1   maxexpansion = 1   maxdeleting = 1 }<\/code><\/pre>\n<p>  max_creating \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u043c\u0430\u0448\u0438\u043d;<br \/>  max_deleting \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0445 \u043c\u0430\u0448\u0438\u043d;<br \/>  max_expansion \u2014 \u043d\u0430 \u043a\u0430\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438;<br \/>  max_unavailable \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 RUNNING, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u044b;<\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u2014 <a href=\"https:\/\/cloud.yandex.ru\/docs\/compute\/concepts\/instance-groups\/policies#deploy-policy\">https:\/\/cloud.yandex.ru\/docs\/compute\/concepts\/instance-groups\/policies#deploy-policy<\/a><\/li>\n<li>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430:<br \/> \n<pre><code class=\"bash\"> load_balancer {   target_group_name = &quot;events-api-tg&quot; }<\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 instance group \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0434\u043b\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u043d\u0435\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0430 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f.<\/li>\n<\/ol>\n<p>  \u0412\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u2014 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0434\u043b\u044f instance group \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c\u0443 \u0433\u0440\u0443\u043f\u043f\u0443.  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ terraform apply -target yandex_iam_service_account.instances -target yandex_resourcemanager_folder_iam_binding.editor  ... skipped ...  Apply complete! Resources: 2 added, 0 changed, 0 destroyed.  vozerov@mba:~\/events\/terraform (master *) $ terraform apply -target yandex_compute_instance_group.events_api_ig  ... skipped ...  Apply complete! Resources: 1 added, 0 changed, 0 destroyed.<\/code><\/pre>\n<p>  \u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0430\u0441\u044c \u2014 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ yc compute instance-group list +----------------------+---------------+------+ |          ID          |     NAME      | SIZE | +----------------------+---------------+------+ | cl1s2tu8siei464pv1pn | events-api-ig |    3 | +----------------------+---------------+------+  vozerov@mba:~\/events\/terraform (master *) $ yc compute instance list +----------------------+---------------------------+---------------+---------+----------------+-------------+ |          ID          |           NAME            |    ZONE ID    | STATUS  |  EXTERNAL IP   | INTERNAL IP | +----------------------+---------------------------+---------------+---------+----------------+-------------+ | ef3huodj8g4gc6afl0jg | cl1s2tu8siei464pv1pn-ocih | ru-central1-c | RUNNING | 130.193.44.106 | 172.16.3.3  | | epdli4s24on2ceel46sr | cl1s2tu8siei464pv1pn-ipym | ru-central1-b | RUNNING | 84.201.164.196 | 172.16.2.31 | | fhmf37k03oobgu9jmd7p | kafka                     | ru-central1-a | RUNNING | 84.201.173.41  | 172.16.1.31 | | fhmh4la5dj0m82ihoskd | cl1s2tu8siei464pv1pn-ahuj | ru-central1-a | RUNNING | 130.193.37.94  | 172.16.1.37 | | fhmr401mknb8omfnlrc0 | monitoring                | ru-central1-a | RUNNING | 84.201.159.71  | 172.16.1.14 | | fhmt9pl1i8sf7ga6flgp | build                     | ru-central1-a | RUNNING | 84.201.132.3   | 172.16.1.26 | +----------------------+---------------------------+---------------+---------+----------------+-------------+  vozerov@mba:~\/events\/terraform (master *) $<\/code><\/pre>\n<p>  \u0422\u0440\u0438 \u043d\u043e\u0434\u044b \u0441 \u043a\u0440\u0438\u0432\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u2014 \u044d\u0442\u043e \u043d\u0430\u0448\u0430 \u0433\u0440\u0443\u043f\u043f\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s http:\/\/130.193.44.106:8080\/status HTTP\/1.1 200 OK Date: Mon, 13 Apr 2020 16:32:04 GMT Content-Length: 3 Content-Type: text\/plain; charset=utf-8  ok vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s http:\/\/84.201.164.196:8080\/status HTTP\/1.1 200 OK Date: Mon, 13 Apr 2020 16:32:09 GMT Content-Length: 3 Content-Type: text\/plain; charset=utf-8  ok vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s http:\/\/130.193.37.94:8080\/status HTTP\/1.1 200 OK Date: Mon, 13 Apr 2020 16:32:15 GMT Content-Length: 3 Content-Type: text\/plain; charset=utf-8  ok vozerov@mba:~\/events\/terraform (master *) $<\/code><\/pre>\n<p>  \u041a \u0441\u043b\u043e\u0432\u0443, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c ubuntu \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043b\u043e\u0433\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u043a\u0430\u043a \u043e\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d.<\/p>\n<p>  \u0414\u043b\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0430\u0441\u044c \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ yc load-balancer target-group list +----------------------+---------------+---------------------+-------------+--------------+ |          ID          |     NAME      |       CREATED       |  REGION ID  | TARGET COUNT | +----------------------+---------------+---------------------+-------------+--------------+ | b7rhh6d4assoqrvqfr9g | events-api-tg | 2020-04-13 16:23:53 | ru-central1 |            3 | +----------------------+---------------+---------------------+-------------+--------------+  vozerov@mba:~\/events\/terraform (master *) $<\/code><\/pre>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a! \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 load-balancer.tf, \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:  <\/p>\n<ol>\n<li>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043f\u043e\u0440\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438 \u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u0440\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0430\u0448\u0438\u043d\u0430\u043c. \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0438\u043f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u2014 ip v4. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e tcp \/ udp \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c ssl \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0430\u0445, \u043b\u0438\u0431\u043e \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 https, \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, cloudflare. <br \/> \n<pre><code class=\"bash\"> listener { \t  name = &quot;events-api-listener&quot; \t  port = 80 \t  target_port = 8080 \t  external_address_spec { \t    ipversion = &quot;ipv4&quot; \t  } \t}<\/code><\/pre>\n<\/li>\n<li>\n<pre><code class=\"bash\">healthcheck { \t  name = &quot;http&quot; \t  http_options { \t    port = 8080 \t    path = &quot;\/status&quot; \t  }         }<\/code><\/pre>\n<p>  Healthchecks. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u0448\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e http url \/status \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 8080. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u0430, \u0442\u043e \u043c\u0430\u0448\u0438\u043d\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u0430 \u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<br \/>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u2014 <a href=\"https:\/\/cloud.yandex.ru\/docs\/load-balancer\/concepts\/\">cloud.yandex.ru\/docs\/load-balancer\/concepts<\/a>. \u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 DDOS \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435. \u0422\u043e\u0433\u0434\u0430 \u043d\u0430 \u0432\u0430\u0448\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0443\u0436\u0435 \u043e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a.<\/li>\n<\/ol>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c:   <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ terraform apply -target yandex_lb_network_load_balancer.events_api_lb  ... skipped ...  Apply complete! Resources: 1 added, 0 changed, 0 destroyed.<\/code><\/pre>\n<p>  \u0412\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c ip \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ yc load-balancer network-load-balancer get events-api-lb id: folder_id: created_at: &quot;2020-04-13T16:34:28Z&quot; name: events-api-lb region_id: ru-central1 status: ACTIVE type: EXTERNAL listeners: - name: events-api-listener   address: 130.193.37.103   port: &quot;80&quot;   protocol: TCP   target_port: &quot;8080&quot; attached_target_groups: - target_group_id:   health_checks:   - name: http     interval: 2s     timeout: 1s     unhealthy_threshold: &quot;2&quot;     healthy_threshold: &quot;2&quot;     http_options:       port: &quot;8080&quot;       path: \/status<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043a\u0438\u0434\u0430\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s -X POST -d '{&quot;key1&quot;:&quot;data1&quot;}' http:\/\/130.193.37.103\/post HTTP\/1.1 200 OK Content-Type: application\/json Date: Mon, 13 Apr 2020 16:42:57 GMT Content-Length: 41  {&quot;status&quot;:&quot;ok&quot;,&quot;partition&quot;:0,&quot;Offset&quot;:1} vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s -X POST -d '{&quot;key1&quot;:&quot;data1&quot;}' http:\/\/130.193.37.103\/post HTTP\/1.1 200 OK Content-Type: application\/json Date: Mon, 13 Apr 2020 16:42:58 GMT Content-Length: 41  {&quot;status&quot;:&quot;ok&quot;,&quot;partition&quot;:0,&quot;Offset&quot;:2} vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s -X POST -d '{&quot;key1&quot;:&quot;data1&quot;}' http:\/\/130.193.37.103\/post HTTP\/1.1 200 OK Content-Type: application\/json Date: Mon, 13 Apr 2020 16:43:00 GMT Content-Length: 41  {&quot;status&quot;:&quot;ok&quot;,&quot;partition&quot;:0,&quot;Offset&quot;:3} vozerov@mba:~\/events\/terraform (master *) $<\/code><\/pre>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0442\u0440\u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u0431\u044b\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e https \u2014 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c cloudflare \u0441 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 cloudflare, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0433.  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ terraform apply -target cloudflare_record.events  ... skipped ...  Apply complete! Resources: 1 added, 0 changed, 0 destroyed.<\/code><\/pre>\n<p>  \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0447\u0435\u0440\u0435\u0437 HTTPS:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/terraform (master *) $ curl -D - -s -X POST -d '{&quot;key1&quot;:&quot;data1&quot;}' https:\/\/events.kis.im\/post HTTP\/2 200 date: Mon, 13 Apr 2020 16:45:01 GMT content-type: application\/json content-length: 41 set-cookie: __cfduid=d7583eb5f791cd3c1bdd7ce2940c8a7981586796301; expires=Wed, 13-May-20 16:45:01 GMT; path=\/; domain=.kis.im; HttpOnly; SameSite=Lax cf-cache-status: DYNAMIC expect-ct: max-age=604800, report-uri=&quot;https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct&quot; server: cloudflare cf-ray: 5836a7b1bb037b2b-DME  {&quot;status&quot;:&quot;ok&quot;,&quot;partition&quot;:0,&quot;Offset&quot;:5} vozerov@mba:~\/events\/terraform (master *) $<\/code><\/pre>\n<p>  \u0412\u0441\u0435 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h2>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443<\/h2>\n<p>  \u041d\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u0441\u044f, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0448\u0430\u0433 \u2014 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 95 \u043f\u0435\u0440\u0441\u0435\u043d\u0442\u0438\u043b\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0443\u0437\u043b\u043e\u0432.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0448\u0442\u0443\u043a\u0443 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0438 application \u043d\u043e\u0434\u044b \u0432 prometheus, \u0447\u0442\u043e\u0431\u044b \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e service discovery (\u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432 5 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u0435\u0440\u0438\u0438), \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0438\u0448\u0435\u043c static_configs \u043d\u0430 \u043d\u0430\u0448\u0435\u043c monitoring \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0423\u0437\u043d\u0430\u0442\u044c \u0435\u0433\u043e ip \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0447\u0435\u0440\u0435\u0437 yc compute instance list, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \/etc\/prometheus\/prometheus.yml \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:  <\/p>\n<pre><code class=\"bash\">  - job_name: api     metrics_path: \/metrics     static_configs:     - targets:       - 172.16.3.3:8080       - 172.16.2.31:8080       - 172.16.1.37:8080<\/code><\/pre>\n<p>  IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430\u0448\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u043e\u043a \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0438\u0437 yc compute instance list. \u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0443\u0435\u043c prometheus \u0447\u0435\u0440\u0435\u0437 systemctl restart prometheus \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043d\u043e\u0434\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0437\u0430\u0439\u0434\u044f \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 9090 (84.201.159.71:9090).<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0432 \u0433\u0440\u0430\u0444\u0430\u043d\u0443 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 grafana. \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 Grafana \u043f\u043e \u043f\u043e\u0440\u0442\u0443 3000 (84.201.159.71:3000) \u0438 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \/ \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u2014 admin \/ Password. \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 prometheus \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c dashboard. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u2014 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c yandex tank (<a href=\"https:\/\/yandex.ru\/dev\/tank\/\">https:\/\/yandex.ru\/dev\/tank\/<\/a>) \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c \u0434\u043b\u044f <a href=\"https:\/\/overload.yandex.net\/\">overload.yandex.net<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u043d\u043a\u043e\u043c. \u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 load \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0438\u0442-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. <\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c:  <\/p>\n<ol>\n<li>token.txt \u2014 \u0444\u0430\u0439\u043b \u0441 API \u043a\u043b\u044e\u0447\u0438\u043a\u043e\u043c \u043e\u0442 overload.yandex.net \u2014 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0435.<\/li>\n<li>load.yml \u2014 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0442\u0430\u043d\u043a\u0430, \u0442\u0430\u043c \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d \u0434\u043e\u043c\u0435\u043d \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 events.kis.im, \u0442\u0438\u043f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 rps \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 15 000 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 3-\u0445 \u043c\u0438\u043d\u0443\u0442.<\/li>\n<li>data \u2014 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ammo.txt. \u0412 \u043d\u0435\u043c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0438\u043f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, url, \u0433\u0440\u0443\u043f\u043f\u0443 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c.<\/li>\n<li>makeammo.py \u2014 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 ammo.txt \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 data-\u0444\u0430\u0439\u043b\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u2014 <a href=\"https:\/\/yandextank.readthedocs.io\/en\/latest\/ammo_generators.html\">yandextank.readthedocs.io\/en\/latest\/ammo_generators.html<\/a><\/li>\n<li>ammo.txt \u2014 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 ammo \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/li>\n<\/ol>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f \u0432\u0437\u044f\u043b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0443 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0430 (\u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u0447\u0435\u0441\u0442\u043d\u043e) \u0438 \u0441\u043e\u0437\u0434\u0430\u043b \u0435\u0439 DNS \u0437\u0430\u043f\u0438\u0441\u044c load.kis.im. \u041d\u0430\u043a\u0430\u0442\u0438\u043b \u0442\u0443\u0434\u0430 docker, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043d\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u0431\u0440\u0430\u0437 <a href=\"https:\/\/hub.docker.com\/r\/direvius\/yandex-tank\/\">https:\/\/hub.docker.com\/r\/direvius\/yandex-tank\/<\/a>. <\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0443 \u043f\u0430\u043f\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043a\u0435\u043d \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0442\u0430\u043d\u043a:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events (master *) $ rsync -av load\/ cloud-user@load.kis.im:load\/  ... skipped ...  sent 2195 bytes  received 136 bytes  1554.00 bytes\/sec total size is 1810  speedup is 0.78  vozerov@mba:~\/events (master *) $ ssh load.kis.im -l cloud-user cloud-user@load:~$ cd load\/ cloud-user@load:~\/load$ echo &quot;TOKEN&quot; &gt; token.txt cloud-user@load:~\/load$ sudo docker run -v $(pwd):\/var\/loadtest --net host --rm -it direvius\/yandex-tank -c load.yaml ammo.txt No handlers could be found for logger &quot;netort.resource&quot; 17:25:25 [INFO] New test id 2020-04-13_17-25-25.355490 17:25:25 [INFO] Logging handler &lt;logging.StreamHandler object at 0x7f209a266850&gt; added 17:25:25 [INFO] Logging handler &lt;logging.StreamHandler object at 0x7f209a20aa50&gt; added 17:25:25 [INFO] Created a folder for the test. \/var\/loadtest\/logs\/2020-04-13_17-25-25.355490 17:25:25 [INFO] Configuring plugins... 17:25:25 [INFO] Loading plugins... 17:25:25 [INFO] Testing connection to resolved address 104.27.164.45 and port 80 17:25:25 [INFO] Resolved events.kis.im into 104.27.164.45:80 17:25:25 [INFO] Configuring StepperWrapper... 17:25:25 [INFO] Making stpd-file: \/var\/loadtest\/ammo.stpd 17:25:25 [INFO] Default ammo type ('phantom') used, use 'phantom.ammo_type' option to override it  ... skipped ...<\/code><\/pre>\n<p>  \u0412\u0441\u0435, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mh\/5h\/lc\/mh5hlcz3n8kumygdgbguebrrxfs.png\"><\/p>\n<p>  \u0410 \u043c\u044b \u0436\u0434\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u0442\u0432\u0435\u0442\u0430, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0435\u0441\u0442\u044c \u0432\u043a\u043b\u0430\u0434\u043a\u0430 \u00ab\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ue\/6s\/nv\/ue6snvk5udqwkrste823rsln7qq.png\"><\/p>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u2014 \u043d\u0430\u0448\u0438 \u043d\u043e\u0434\u044b \u043d\u0435 \u0434\u043e\u0433\u0440\u0443\u0437\u0438\u043b\u0438\u0441\u044c \u0434\u0430\u0436\u0435 \u0434\u043e 50% CPU, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u0441\u0442 \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c. \u0410 \u043f\u043e\u043a\u0430 \u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 Grafana:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/-4\/xs\/la\/-4xslawx1bkebzetjrhny3rctik.png\"><\/p>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u2014 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 3000 \u043d\u0430 \u043e\u0434\u043d\u0443 \u043d\u043e\u0434\u0443 \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e 10 000 \u043d\u0435 \u0434\u043e\u0433\u0440\u0443\u0437\u0438\u043b\u0438. \u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u0440\u0430\u0434\u0443\u0435\u0442 \u2014 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 11 ms \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439, \u043a\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f, \u2014 172.16.1.37 \u2014 \u0443 \u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043c\u0435\u043d\u044c\u0448\u0435. \u041d\u043e \u044d\u0442\u043e \u0438 \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u2014 \u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0437\u043e\u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 ru-central1-a, \u0447\u0442\u043e \u0438 kafka, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u043e\u0442\u0447\u0435\u0442 \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435: <a href=\"https:\/\/overload.yandex.net\/265967\">https:\/\/overload.yandex.net\/265967<\/a>.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0442\u0435\u0441\u0442 \u043f\u043e\u0432\u0435\u0441\u0435\u043b\u0435\u0435 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 instances: 2000, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f 15 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043c \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u0430 \u0434\u043e 10 \u043c\u0438\u043d\u0443\u0442. \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"bash\">overload:   enabled: true   package: yandextank.plugins.DataUploader   token_file: &quot;token.txt&quot; phantom:   address: 130.193.37.103   load_profile:     load_type: rps     schedule: const(15000, 10m)   instances: 2000 console:   enabled: true telegraf:   enabled: false<\/code><\/pre>\n<p>  \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044f \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u0430\u0434\u0440\u0435\u0441 \u043d\u0430 IP \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u2014 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u044d\u0442\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e cloudflare \u043d\u0430\u0447\u0430\u043b \u043c\u0435\u043d\u044f \u0431\u043b\u043e\u0447\u0438\u0442\u044c \u0437\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e ip. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0430\u0442\u0440\u0430\u0432\u0438\u0442\u044c tank \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0430. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cz\/mf\/_r\/czmf_robrgfrl8kyfmhgyu74tlm.png\"><\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 CPU \u0432\u044b\u0440\u043e\u0441\u043b\u043e, \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u0440\u0438\u043d\u044f\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0434 \u0432 \u0437\u043e\u043d\u0435 B, \u0447\u0442\u043e \u0438 \u0441\u0434\u0435\u043b\u0430\u043b. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e \u043b\u043e\u0433\u0430\u043c instance group:  <\/p>\n<pre><code class=\"bash\">vozerov@mba:~\/events\/load (master *) $ yc compute instance-group list-logs events-api-ig 2020-04-13 18:26:47    cl1s2tu8siei464pv1pn-ejok.ru-central1.internal  1m AWAITING_WARMUP_DURATION -&gt; RUNNING_ACTUAL 2020-04-13 18:25:47    cl1s2tu8siei464pv1pn-ejok.ru-central1.internal 37s OPENING_TRAFFIC -&gt; AWAITING_WARMUP_DURATION 2020-04-13 18:25:09    cl1s2tu8siei464pv1pn-ejok.ru-central1.internal 43s CREATING_INSTANCE -&gt; OPENING_TRAFFIC 2020-04-13 18:24:26    cl1s2tu8siei464pv1pn-ejok.ru-central1.internal  6s DELETED  -&gt; CREATING_INSTANCE 2020-04-13 18:24:19    cl1s2tu8siei464pv1pn-ozix.ru-central1.internal  0s PREPARING_RESOURCES -&gt; DELETED 2020-04-13 18:24:19    cl1s2tu8siei464pv1pn-ejok.ru-central1.internal  0s PREPARING_RESOURCES -&gt; DELETED 2020-04-13 18:24:15    Target allocation changed in accordance with auto scale policy in zone ru-central1-a: 1 -&gt; 2 2020-04-13 18:24:15    Target allocation changed in accordance with auto scale policy in zone ru-central1-b: 1 -&gt; 2  ... skipped ...  2020-04-13 16:23:57    Balancer target group b7rhh6d4assoqrvqfr9g created 2020-04-13 16:23:43    Going to create balancer target group <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0440\u0435\u0448\u0438\u043b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u043e\u043d\u0430\u0445, \u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u043b\u0438\u043c\u0438\u0442 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 ip-\u0430\u0434\u0440\u0435\u0441\u0430 \ud83d\ude42 \u0418\u0445, \u043a\u0441\u0442\u0430\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443, \u0443\u043a\u0430\u0437\u0430\u0432 \u043a\u0432\u043e\u0442\u044b \u0438 \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041d\u0435\u043b\u0435\u0433\u043a\u043e\u0439 \u0432\u044b\u0434\u0430\u043b\u0430\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043c\u0443, \u0438 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041d\u043e \u0441\u0430\u043c\u044b\u0439 \u0442\u0440\u0443\u0434\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ol>\n<li>\u041f\u043e\u0434\u043d\u044f\u043b\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0438 \u043a\u0430\u0444\u043a\u0443.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/li>\n<li>\u041f\u043e\u0434\u0432\u044f\u0437\u0430\u043b\u0438 \u043a load balancer\u2019\u0443 cloudflare \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f ssl \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432.<\/li>\n<\/ol>\n<p>  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c rabbitmq \/ kafka \/ yandex queue service. Stay tuned!<br \/>  <i>*\u042d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0435\u0441\u0442\u044c \u0432 \u0432\u0438\u0434\u0435\u043e\u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u043c\u0430 REBRAIN &amp; Yandex.Cloud: \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c 10 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0430 \u042f\u043d\u0434\u0435\u043a\u0441 \u041e\u0431\u043b\u0430\u043a\u043e \u2014 <a href=\"https:\/\/youtu.be\/cZLezUm0ekE\">https:\/\/youtu.be\/cZLezUm0ekE<\/a><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0441\u0435\u0449\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u043a <a href=\"https:\/\/rebrainme.com\/channel\">\u043a\u0430\u043d\u0430\u043b\u0443 DevOps by REBRAIN<\/a>.<\/p>\n<p>  \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0445\u043e\u0442\u0438\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c Yandex.Cloud \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0435\u0440\u043f\u043e\u0440\u0438\u044f\u0442\u0438\u044f. \u0421\u0441\u044b\u043b\u043e\u0447\u043a\u0430 \u043d\u0430 \u043d\u0438\u0445 \u2014 <a href=\"https:\/\/cloud.yandex.ru\/prices\">https:\/\/cloud.yandex.ru\/prices<\/a><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u0435\u0437\u0434 \u0432 \u043e\u0431\u043b\u0430\u043a\u043e \u0438\u043b\u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435, <a href=\"https:\/\/fevlake.com\/\">\u0441\u043c\u0435\u043b\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0437\u0430\u044f\u0432\u043a\u0443<\/a>.<\/p>\n<p>  P.S. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c 2 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0430\u0443\u0434\u0438\u0442\u0430 \u0432 \u043c\u0435\u0441\u044f\u0446, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0438\u0445 \u0447\u0438\u0441\u043b\u0435.<\/i><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512670\/\"> https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512670\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512670\/\">\u0418 \u0441\u043d\u043e\u0432\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0449\u0443\u043f\u0430\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u043e.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043f\u043b\u0430\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f:<br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/512206\/\"><b>1 \u0447\u0430\u0441\u0442\u044c<\/b><\/a>. \u041c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u0441 \u0422\u0417 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 golang.<br \/>  <b>2 \u0447\u0430\u0441\u0442\u044c<\/b> (\u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0434\u0435\u0441\u044c). \u0412\u044b\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0434, \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443.<br \/>  <b>3 \u0447\u0430\u0441\u0442\u044c.<\/b> \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0431\u0443\u0444\u0435\u0440\u0435, \u0430 \u043d\u0435 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 kafka, rabbitmq \u0438 yandex queue service.<br \/>  <b>4 \u0447\u0430\u0441\u0442\u044c.<\/b> \u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c Clickhouse \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0443\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 datalens.<br \/>  <b>5 \u0447\u0430\u0441\u0442\u044c.<\/b> \u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0432\u0441\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0434\u043e\u043b\u0436\u043d\u044b\u0439 \u0432\u0438\u0434 \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c ci\/cd, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f gitlab ci, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0438 service discovery \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e consul \u0438 prometheus.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dw\/k4\/ya\/dwk4yakuwlwlmyyvieqr35m8epg.png\"><\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043d\u0430\u0448\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u043a\u0430\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-307584","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=307584"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307584\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}