αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ 10 αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 000

αžŸαž½αžŸαŸ’αžαžΈαž˜αž·αžαŸ’αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆ!

* αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαž·αž€αŸ’αžαžΆαžŸαžΆαž›αžΆαž”αžΎαž€αž…αŸ†αž αžš REBRAIN & Yandex.Cloud αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΌαž›αž…αž·αžαŸ’αžαž˜αžΎαž›αžœαžΈαžŠαŸαž’αžΌ αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαžΆαž“αŸ…αžαŸ†αžŽαž“αŸαŸ‡ - https://youtu.be/cZLezUm0ekE

αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž±αž€αžΆαžŸαžŸαžΆαž€αž›αŸ’αž”αž„αž•αŸ’αž‘αžΆαž›αŸ‹ Yandex.Cloud αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž…αž„αŸ‹αžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž™αžΌαžš αž“αž·αž„αž–αž·αž”αžΆαž€ αž™αžΎαž„αž”αžΆαž“αž”αŸ„αŸ‡αž”αž„αŸ‹αž…αŸ„αž›αž—αŸ’αž›αžΆαž˜αŸ—αž“αžΌαžœαž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αž›αž€αŸ‹ Wordpress αžŸαžΆαž˜αž‰αŸ’αž‰αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž–αž–αž€ - αžœαžΆαž‚αž½αžšαž±αŸ’αž™αž’αž»αž‰αž–αŸαž€αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž‚αž·αžαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž™αžΎαž„αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαŸ‚αž›αžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αž›αž·αžαž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αž‘αž½αž› αž“αž·αž„αžœαž·αž—αžΆαž‚αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ”

αžαŸ’αž‰αž»αŸ†αž”αŸ’αžšαžΆαž€αžŠαžŽαžΆαžŸαŸ‹αžαžΆαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž’αž“αž‘αžΆαž‰ (αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡) αžαŸ’αž›αŸ‡αž”αŸ’αžšαž˜αžΌαž›αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ - αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž αŸ’αž‚αŸαž˜αž’αž“αž‘αžΆαž‰ αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžŸαŸ’αžαž·αžαž·αž“αŸ…αž€αž˜αŸ’αžšαž·αžαžŽαžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„ αž“αž·αž„αž›αž»αž”αž”αŸ’αžšαžŠαžΆαž”αŸ‹αž€αŸ’αž˜αŸαž„αž›αŸαž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž¬αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αžΆαž€αž…αŸαž‰αž–αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αž˜αž·αž“αž‘αž·αž‰αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αžŸαž½αžŸαŸ’αžαžΈ Yandex.Metrica)αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžšαžΏαž„αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž αŸ’αž‚αŸ„αž›αžΆαŸ†αž„ αžŸαžΆαž€αž›αŸ’αž”αž„ kafka vs rabbitmq vs yqs αž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αžΆαžšαž•αŸ’αžŸαžΆαž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ Clickhouse αž“αž·αž„αž˜αžΎαž›αžƒαžΎαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ yandex datalens αŸ” αžαžΆαž˜αž’αž˜αŸ’αž˜αž‡αžΆαžαž· αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžŠαŸ„αž™αž—αžΆαž–αžšαžΈαž€αžšαžΆαž™αž“αŸƒαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆ docker, terraform, gitlab ci αž“αž·αž„αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ prometheus αŸ” αžαŸ„αŸ‡β€‹αž‘αŸ…!

αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž€αž€αŸ‹αž—αŸ’αž›αžΆαž˜αŸ—αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αž˜αž½αž™αž’αž„αŸ’αž‚αž»αž™αž”αžΆαž“αž‘αŸ - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αžαŸ’αžαž”αž‘αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸŠαŸαžšαžΈαŸ” αž”αž“αŸ’αžαž·αž…αž’αŸ†αž–αžΈαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ–

αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1 (αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž’αžΆαž“αžœαžΆ) αŸ” αž™αžΎαž„αž“αžΉαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž›αžΎαž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž“αž·αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž αžΎαž™αž€αŸαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž—αžΆαžŸαžΆαž αŸ’αž‚αŸ„αž›αž‘αžΆαž„αž•αž„αžŠαŸ‚αžšαŸ”
αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2 αŸ” αž™αžΎαž„αž”αž‰αŸ’αž…αŸαž‰αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜ αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“ αž“αž·αž„αžŸαžΆαž€αž›αŸ’αž”αž„αž”αž“αŸ’αž‘αž»αž€αŸ”
αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3 αŸ” αž…αžΌαžšαž™αžΎαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž αžΎαž™αž˜αž·αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš αž αžΎαž™αž€αŸαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ kafka, rabbitmq αž“αž·αž„ yandex αž•αž„αžŠαŸ‚αžšαŸ”
αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 4 αž™αžΎαž„αž“αžΉαž„αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ Clickhouse cluster αžŸαžšαžŸαŸαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž αžΎαž™αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ datalensαŸ”
αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 5 αž…αžΌαžšαž“αžΆαŸ†αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‘αŸ…αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ - αžšαŸ€αž”αž…αŸ† ci/cd αžŠαŸ„αž™αž”αŸ’αžšαžΎ gitlab ci αž—αŸ’αž‡αžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž“αž·αž„αž€αžΆαžšαžšαž€αžƒαžΎαž‰αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎ prometheus αž“αž·αž„αž€αž»αž„αžŸαŸŠαž»αž›αŸ”

Π’Π—

αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž…αžΌαžšαž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαžŸαŸαž…αž€αŸ’αžαžΈαž™αŸ„αž„ - αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αŸ”

  1. αž™αžΎαž„αž…αž„αŸ‹αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžŠαžΌαž…αž‡αžΆ events.kis.im (kis.im αž‚αžΊαž‡αžΆαžŠαŸ‚αž“αžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž‘αžΆαŸ†αž„αž’αžŸαŸ‹) αžŠαŸ‚αž›αž‚αž½αžšαžαŸ‚αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ„αž™αž”αŸ’αžšαžΎ HTTPS αŸ”
  2. αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‚αžΊαž‡αžΆ json αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αž‡αžΆαŸ– {β€œevent”: β€œview”, β€œos”: β€œlinux”, β€œbrowser”: β€œchrome”}αŸ” αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž™αžΎαž„αž“αžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž›αž˜αž½αž™αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αžΉαž„αž˜αž·αž“αžŠαžΎαžšαžαž½αž“αžΆαž‘αžΈαž’αŸ†αž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž”αžΆαž“ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžαžΌαžšαž‘αŸ… protobuf αŸ”
  3. αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ 10 αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαŸ”
  4. αžœαžΆαž‚αž½αžšαžαŸ‚αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž•αŸ’αžŠαŸαž€αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž€αžšαžŽαžΈαžαŸ’αž˜αžΈαž‘αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž αžΎαž™αžœαžΆαž“αžΉαž„αž›αŸ’αž’αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαž‘αŸ…αž‘αžΈαžαžΆαŸ†αž„αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαž•αŸ’αžŸαŸαž„αŸ— αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αŸ”
  5. αž€αžΆαžšαž’αžαŸ‹αž±αž“αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸαŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ αž“αž·αž„αž’αžΆαž…αžšαžŸαŸ‹αžšαžΆαž“αž˜αžΆαž“αž‡αžΈαžœαž·αžαž–αžΈαž€αžΆαžšαžŠαž½αž›αžšαž›αŸ†αž“αŸƒαž•αŸ’αž“αŸ‚αž€αžŽαžΆαž˜αž½αž™ (αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αžšαž αžΌαžαžŠαž›αŸ‹αž…αŸ†αž“αž½αž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹)αŸ”

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜

αž‡αžΆαž‘αžΌαž‘αŸ… αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡ αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž”αž»αžšαžΆαžŽαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ” αžαž½αž›αŸαžαž”αž„αŸ’αž αžΆαž‰αž–αžΈαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ 10 αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 000

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž˜αžΆαž“αŸ–

1. αž“αŸ…αžαžΆαž„αž†αŸ’αžœαŸαž„αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ— αž˜αž·αž“αžαžΆαž‡αžΆαž’αŸ’αž“αž€αž›αŸαž„αžŠαŸ‚αž›αž”αŸ†αž–αŸαž‰αž€αž˜αŸ’αžšαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαžŠαžΆαž”αŸ‹αž€αŸ’αž˜αŸαž„αž›αŸαž„αž“αŸ…αž›αžΎαžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“ αž¬αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž αžΆαž„αž’αž“αž‘αžΆαž‰αžαžΆαž˜αžšαž™αŸˆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž’αž˜αŸ’αž˜αžαžΆαŸ” αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™ αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž‚αžΊαž‡αžΆ json αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„ - events.kis.im αŸ”

2. αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž–αžΈαžšαžŠαŸ†αž”αžΌαž„αž‚αžΊαžŸαž˜αžαž»αž›αŸ’αž™αžŸαžΆαž˜αž‰αŸ’αž‰ αž—αžΆαžšαž€αž·αž…αŸ’αž…αž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‚αžΊαŸ–

  • αž’αžΆαž…αžšαž€αž”αžΆαž“αž‡αžΆαž“αž·αž…αŸ’αž…αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž§αž‘αžΆαž αžšαžŽαŸ Keepalived αžŠαŸ‚αž›αž“αžΉαž„αž”αŸ’αžαžΌαžš IP αž“αž·αž˜αŸ’αž˜αž·αžαžšαžœαžΆαž„αžαŸ’αž“αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”
  • αž”αž‰αŸ’αž…αž”αŸ‹ TLS αŸ” αž”αžΆαž‘/αž…αžΆαžŸ αž™αžΎαž„αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹ TLS αž›αžΎαž–αž½αž€αž‚αŸαŸ” αž‘αžΈαž˜αž½αž™ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž“αž·αž„αž‘αžΈαž–αžΈαžš αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαžΆαž›αž”αž“αŸ’αž‘αž»αž€αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž„αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”
  • αž’αŸ’αžœαžΎαžŸαž˜αžαž»αž›αŸ’αž™αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŠαŸ‚αž›αž˜αžΆαž“αŸ” αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‚αžΊαž’αžΆαž…αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αŸ” αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ αž™αžΎαž„αž˜αž€αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆ load balancers αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αž‰αŸ’αžˆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαž»αž›αŸ’αž™αž—αžΆαž–αž…αžšαžΆαž…αžšαžŽαŸαž‘αŸ…αž€αžΆαž“αŸ‹αžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™αŸ”

3. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ Balancers αž™αžΎαž„αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Servers αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαžΆαž˜αž‰αŸ’αž‰αžŸαž˜αžšαž˜αŸ’αž™αŸ” αžœαžΆαž‚αž½αžšαžαŸ‚αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αžŸαŸ†αžŽαžΎαž…αžΌαž›αžαžΆαž˜αžšαž™αŸˆ HTTP αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž– json αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎ αž“αž·αž„αžŠαžΆαž€αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αŸ”

4. αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž”αž„αŸ’αž αžΆαž‰ kafka αž‡αžΆαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž”αžΎαž‘αŸ„αŸ‡αž‡αžΆαž‡αžΆαž€αžΆαžšαž–αž·αž αžŸαŸαžœαžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αž˜αŸ’αžšαž·αžαž“αŸαŸ‡αž€αŸαžŠαŸ„αž™αŸ” αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” Kafka, rabbitmq αž“αž·αž„ yqs αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž‘αžΈαž”αžΈαŸ”

5. αž…αŸ†αž“αž»αž…αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊ Clickhouse - αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ columnar αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž™αŸ‰αžΆαž„αž…αŸ’αžšαžΎαž“αŸ” αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‘αž»αž€αžŠαŸ„αž™αžαŸ’αž›αž½αž“αžœαžΆ (αž”αž“αŸ’αžαŸ‚αž˜αž›αžΎαž“αŸαŸ‡αž€αŸ’αž“αž»αž„αž˜αžΆαžαŸ’αžšαžΆ 4) αŸ”

αž€αžΆαžšαžšαž…αž“αžΆαž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ„αž™αž―αž€αžšαžΆαž‡αŸ’αž™αžŠαŸ„αž™αž•αŸ’αžŠαŸαž€αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ backend αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž‘αŸ - αžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αžšαžΏαž„αž˜αž½αž™αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž–αž½αž€αžœαžΆαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜ Kafka αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸβ€”αžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αž“αž·αž„αž•αŸ’αž‘αŸαžšαž•αŸ’αž“αŸ‚αž€αžαŸ’αž›αŸ‡αž“αŸƒαž”αŸ’αžšαž’αžΆαž“αž”αž‘αžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ…αž–αž½αž€αž‚αŸαŸ” Clickhouse αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžœαžΆαž”αžΆαž“αž‘αŸ - αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸ :) αžαžΆαž˜αž–αž·αžαž™αžΎαž„αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž”αŸ†αž”αŸ‚αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αž„αžŠαŸ‚αžšαŸ”

αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž’αž“αž»αžœαžαŸ’αžαž•αŸ’αž“αŸ‚αž€αžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž“αŸƒαž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž“αž·αž„αž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαžαžΆαŸ†αž„αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡ αž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαžŸαžΆαž˜αž‰αŸ’αž‰αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸαŸ–

αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ 10 αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 000

αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαžαžΆαŸ†αž„αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαž“αžΈαž˜αž½αž™αŸ— αž™αžΎαž„αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžαž»αž›αŸ’αž™αž—αžΆαž–αž”αž“αŸ’αž‘αž»αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„ kafka αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ 2 αžαŸ’αž“αžΆαŸ†αž„ kafka 3 αž“αž·αž„αž§αž”αž€αžšαžŽαŸαžαž»αž›αŸ’αž™αž—αžΆαž–αž–αž–αž€ αž§αž‘αžΆαž αžšαžŽαŸ cloudflare αž‚αžΊαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™ αžŠαŸ‚αž›αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžŸαŸ†αžŽαžΎαžŸαž˜αžαž»αž›αŸ’αž™αžαžΆαž˜αž‘αžΈαžαžΆαŸ†αž„αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž”αŸ’αžšαž—αž–αžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž•αŸ’αž‰αžΎαžŠαŸ„αž™αž’αžαž·αžαž·αž‡αž“αž’αžΆαž˜αŸαžšαž·αž€αž“αžΉαž„αž…αž»αŸ‡αž…αžαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž’αžΆαž˜αŸαžšαž·αž€αŸ” αž αžΎαž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž‘αŸ’αžœαžΈαž”αž’αžΆαž αŸ’αžšαŸ’αžœαž·αž€αž‚αžΊαž“αŸ…αž’αžΆαž αŸ’αžœαŸ’αžšαž·αž€αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ - αž™αžΎαž„αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž€αž‰αŸ’αž…αž€αŸ‹αž–αžΈαžŸαŸ†αžŽαž»αŸ† Kafka αž αžΎαž™αž…αž˜αŸ’αž›αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαž‚αŸ’αžšαž”αŸ‹αž‘αžΈαžαžΆαŸ†αž„αž‘αŸ…αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžŽαŸ’αžαžΆαž›αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž”αŸ’αžšαž‘αŸαžŸαžšαž»αžŸαŸ’αžŸαŸŠαžΈαŸ” αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ αž™αžΎαž„αž‰αŸ‚αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αžαŸ‹αžαŸ’αžšαžΆαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Clickhouse αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αžαž˜αŸ’αžšαŸ€αž”αž…αŸαž‰αž“αžΌαžœαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ - αžαŸ„αŸ‡αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αž„αŸ’αžšαž½αž“ Yandex.Cloud!

αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ

αž˜αž»αž“αž–αŸαž› Cloud αž’αŸ’αž“αž€αž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž’αžαŸ‹αž’αŸ’αž˜αžαŸ‹αž”αž“αŸ’αžαž·αž… αž αžΎαž™αžŸαžšαžŸαŸαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž…αžΌαž›αž˜αž€αŸ” αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž αŸ’αž‚αŸ„αž›αžΆαŸ†αž„ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž±αŸ’αž™αžƒαžΎαž‰αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž‡αžΆαž—αžΆαžŸαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αŸ†αžŽαžΆαž™αž–αŸαž›αž˜αž½αž™αž˜αŸ‰αŸ„αž„ (αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž–αžΈαžšαž”αžΈαž˜αŸ‰αŸ„αž„) αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡αŸ– https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/main.go.

αžαžΎαž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ–

1. αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αž„αŸ‹αž–αžΈαžšαŸ” αž˜αž½αž™αž‚αžΊαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž…αŸ’αžšαž€αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžŸαŸ’αžαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎ http αž…αžΌαž› (-addr) αŸ” αž‘αžΈαž–αžΈαžšαž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ kafka αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž€αžαŸ‹αžαŸ’αžšαžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„ (-kafka):

addr     = flag.String("addr", ":8080", "TCP address to listen to")
kafka    = flag.String("kafka", "127.0.0.1:9092", "Kafka endpoints”)

2. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ sarama ([] github.com/Shopify/sarama) αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαžŸαžΆαžšαž‘αŸ…αž€αžΆαž“αŸ‹αž…αž„αŸ’αž€αŸ„αž˜ kafka αŸ” αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αž—αŸ’αž›αžΆαž˜αŸ—αž“αžΌαžœαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž‚αŸ„αž›αž”αŸ†αžŽαž„αž€αŸ’αž“αž»αž„αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αžαž·αž”αžšαž˜αžΆαŸ–

config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForLocal
config.Producer.Compression = sarama.CompressionSnappy
config.Producer.Return.Successes = true

3. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž€αŸαž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ prometheus αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž•αž„αžŠαŸ‚αžš αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αžšαž„αŸ’αžœαžΆαžŸαŸ‹αž•αŸ’αžŸαŸαž„αŸ—αžŠαžΌαž…αž‡αžΆαŸ–

  • αž…αŸ†αž“αž½αž“αžŸαŸ†αžŽαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„;
  • αž…αŸ†αž“αž½αž“αž“αŸƒαž€αŸ†αž αž»αžŸαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαžΎ (αž˜αž·αž“αž’αžΆαž…αž’αžΆαž“αžŸαŸ†αžŽαžΎαž”αŸ’αžšαž€αžΆαžŸ, json αžαžΌαž…, αž˜αž·αž“αž’αžΆαž…αžŸαžšαžŸαŸαžšαž‘αŸ… Kafka);
  • αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαž˜αž½αž™αž–αžΈαž’αžαž·αžαž·αž‡αž“ αžšαž½αž˜αž‘αžΆαŸ†αž„αž–αŸαž›αžœαŸαž›αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαžŸαžΆαžšαž‘αŸ… Kafka αŸ”

4. αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž…αŸ†αž“αž½αž“αž”αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

  • / αžŸαŸ’αžαžΆαž“αž—αžΆαž– - αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαž‘αž”αŸ‹ ok αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αžαžΆαž™αžΎαž„αž“αŸ…αžšαžŸαŸ‹αŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž’αŸ’αž“αž€αž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαžΌαž…αž‡αžΆαž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸƒαž…αž„αŸ’αž€αŸ„αž˜ Kafka αž€αŸαžŠαŸ„αž™αŸ”
  • /metrics - αž™αŸ„αž„αžαžΆαž˜ ​​url αž“αŸαŸ‡ αž’αžαž·αžαž·αž‡αž“ prometheus αž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹αž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αžœαžΆαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αŸ”
  • /post αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž› POST αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž‡αžΆαž˜αž½αž™ json αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž› json αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž»αž–αž›αž—αžΆαž– αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αž·αž“αž’αžΈαž‘αŸ αžœαžΆαžŸαžšαžŸαŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αŸ’αžšαž»αž˜ Kafka αŸ”

αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž’αŸ’αžœαžΎαž€αžΆαžšβ€‹αž€αž€αŸ‹β€‹αž‘αž»αž€β€‹αžŠαŸ‚αž›β€‹αž€αžΌαžŠβ€‹αž˜αž·αž“β€‹αž›αŸ’αž’β€‹αž₯αžβ€‹αžαŸ’αž…αŸ„αŸ‡ - αžœαžΆβ€‹αž’αžΆαž… (αž αžΎαž™β€‹αž‚αž½αžšβ€‹!) αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž…αž”αŸ‹αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αžˆαž”αŸ‹αž”αŸ’αžšαžΎ net/http αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αž αžΎαž™αž”αŸ’αžαžΌαžšαž‘αŸ… fasthttp αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“αŸ” αž¬αž’αŸ’αž“αž€αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž’αž“αž’αžΆαž“ cpu αžŠαŸ„αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αž–αž›αž—αžΆαž– json αž‘αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž€αŸ’αžšαŸ„αž™ - αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αŸαžšαž–αžΈαž”αžŽαŸ’αžαž»αŸ†αž‘αŸ… clickhouse αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž•αŸ’αž“αŸ‚αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸƒαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž‚αž·αžαž—αŸ’αž›αžΆαž˜αŸ—αž’αŸ†αž–αžΈαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαžšαž”αžŸαŸ‹αž™αžΎαž„ αž αžΎαž™αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αžαžΆαž˜αžšαž™αŸˆ docker αŸ” Dockerfile αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αžΊ https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/Dockerfile. αž‡αžΆαž‘αžΌαž‘αŸ…αžœαžΆαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ αž…αŸ†αžŽαž»αž…αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž‚αžΊαž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžšαžΌαž”αž—αžΆαž–αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž€αž»αž„αžαžΊαž“αŸαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž‡αŸ†αž αžΆαž“αžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€

αž‡αžΆαžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸ…αž›αžΎ cloud.yandex.ru. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ†αž–αŸαž‰αžœαžΆαž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‚αžŽαž“αžΈαž˜αž½αž™ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αž‘αžΉαž€αž”αŸ’αžšαžΆαž€αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αž–αž€αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž’αŸ’αžœαžΎαž˜αŸ’αžαž„αž‘αŸ€αžαž“αžΌαžœαž‡αŸ†αž αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαž’αžαŸ’αžαž”αž‘αžšαž”αžŸαŸ‹αž™αžΎαž„ αž‡αŸ†αž“αž½αž™αž“αŸαŸ‡αž‚αž½αžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž–αž–αž€αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž“αž·αž„αžαžαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αž„αŸ’αž€αžΎαžαž’αž“αž’αžΆαž“αž–αž–αž€αŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž“αŸƒαž’αž“αž’αžΆαž“αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ 10 αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 000

αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž–αž–αž€αž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αžΈαž˜αž½αž™αŸ” αž αžΎαž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž–αž–αž€ αž”αž„αŸ’αž€αžΎαžαžαžαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš - https://cloud.yandex.ru/docs/resource-manager/concepts/resources-hierarchy. αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž™αŸ„αž„αž‘αŸ…αžœαžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžšαŸ€αž”αž…αŸ†αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž›αžαžΆαŸ†αž„αž–αžΈαžŠαŸ†αž”αžΌαž„ αž―αž€αžŸαžΆαžšαž”αžΆαž“αž‡αž½αž™αžαŸ’αž‰αž»αŸ†αž…αŸ’αžšαžΎαž“αžŠαž„ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αžŽαŸ‚αž“αžΆαŸ†αž’αŸ’αž“αž€αž±αŸ’αž™αžŸαž·αž€αŸ’αžŸαžΆαžœαžΆαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αž–αž€ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž‘αžΆαŸ†αž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžŠαžΆαž‰ αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž»αž„αžŸαžΌαž› - yc αŸ” αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž˜αž½αž™ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Linux αž“αž·αž„ Mac Os)αŸ–

curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž―αž€αž‘αŸαžŸαžŸαž“αŸ’αžαž·αžŸαž»αžαž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžαžΉαž„αžŸαž˜αŸ’αž”αžΆαžšαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αž–αžΈαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž“αŸ„αŸ‡αžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€αžŸαŸ’αž‚αŸ’αžšαžΈαž” αž αžΎαž™αž’αžΆαž“αžœαžΆ αž αžΎαž™αž‘αžΈαž–αžΈαžš αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž‡αžΆ root αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Windows αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· yc initαžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αžœαžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ–

vozerov@mba:~ $ yc init
Welcome! This command will take you through the configuration process.
Please go to https://oauth.yandex.ru/authorize?response_type=token&client_id= in order to obtain OAuth token.

Please enter OAuth token:
Please select cloud to use:
 [1] cloud-b1gv67ihgfu3bp (id = b1gv67ihgfu3bpt24o0q)
 [2] fevlake-cloud (id = b1g6bvup3toribomnh30)
Please enter your numeric choice: 2
Your current cloud has been set to 'fevlake-cloud' (id = b1g6bvup3toribomnh30).
Please choose folder to use:
 [1] default (id = b1g5r6h11knotfr8vjp7)
 [2] Create a new folder
Please enter your numeric choice: 1
Your current folder has been set to 'default' (id = b1g5r6h11knotfr8vjp7).
Do you want to configure a default Compute zone? [Y/n]
Which zone do you want to use as a profile default?
 [1] ru-central1-a
 [2] ru-central1-b
 [3] ru-central1-c
 [4] Don't set default zone
Please enter your numeric choice: 1
Your profile default Compute zone has been set to 'ru-central1-a'.
vozerov@mba:~ $

αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰ - αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αž‘αž½αž›αž”αžΆαž“αžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹ oauth αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αž–αž€ αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž–αž–αž€ αž“αž·αž„αžαžαžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αž”αŸ’αžšαžΎαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž‚αžŽαž“αžΈ αž¬αžαžαž―αž€αžŸαžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€αžαŸ‚αž˜αž½αž™ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž‘αž˜αŸ’αžšαž„αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžαžΆαž˜αžšαž™αŸˆ yc config profile αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž”αŸ’αžαžΌαžšαžšαžœαžΆαž„αž–αž½αž€αžœαžΆαŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαžΆαž„αž›αžΎαž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžš Yandex.Cloud αž”αžΆαž“αžŸαžšαžŸαŸαžšαž›αŸ’αž’αžŽαžΆαžŸαŸ‹ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ terraform αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž“αž’αžΆαž“αž–αž–αž€αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžƒαŸ’αž›αžΆαŸ†αž„ git αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž’αžαŸ’αžαž”αž‘ - https://github.com/rebrainme/yandex-cloud-events/. αž™αžΎαž„αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αžΉαž„αžŸαžΆαžαžΆαž˜αŸ αžŸαžΌαž˜αž€αŸ’αž›αžΌαž“αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αŸ–


vozerov@mba:~ $ git clone https://github.com/rebrainme/yandex-cloud-events/ events
Cloning into 'events'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 100 (delta 37), reused 89 (delta 26), pack-reused 0
Receiving objects: 100% (100/100), 25.65 KiB | 168.00 KiB/s, done.
Resolving deltas: 100% (37/37), done.
vozerov@mba:~ $ cd events/terraform/

αž’αžαŸαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ terraform αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš main.tf αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αžŸαžΌαž˜αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžš private.auto.tfvars αž“αŸ…αž€αŸ’αž“αž»αž„αžαž terraform αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

# Yandex Cloud Oauth token
yc_token = ""
# Yandex Cloud ID
yc_cloud_id = ""
# Yandex Cloud folder ID
yc_folder_id = ""
# Default Yandex Cloud Region
yc_region = "ru-central1-a"
# Cloudflare email
cf_email = ""
# Cloudflare token
cf_token = ""
# Cloudflare zone id
cf_zone_id = ""

αž’αžαŸαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αž€αž…αŸαž‰αž–αžΈαž”αž‰αŸ’αž‡αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ yc αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž™αžΎαž„αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž»αž„αžŸαžΌαž›αžšαž½αž…αž αžΎαž™αŸ” αžαŸ’αž‰αž»αŸ†αžŽαŸ‚αž“αžΆαŸ†αž’αŸ’αž“αž€αž±αŸ’αž™αž”αž“αŸ’αžαŸ‚αž˜ private.auto.tfvars αž‘αŸ… .gitignore αž‡αžΆαž”αž“αŸ’αž‘αžΆαž“αŸ‹ αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž―αž€αž‡αž“αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„ private.auto.tfvars αž™αžΎαž„αž€αŸαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈ Cloudflare - αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆ DNS αž“αž·αž„αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž“αžŸαŸ†αžαžΆαž“αŸ‹ events.kis.im αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž…αž„αŸ‹αž”αŸ’αžšαžΎ cloudflare αž‘αŸαž“αŸ„αŸ‡ αžŸαžΌαž˜αž›αž»αž”αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆ cloudflare αž“αŸ…αž€αŸ’αž“αž»αž„ main.tf αž“αž·αž„αž―αž€αžŸαžΆαžš dns.tf αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆ dns αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž“αžΉαž„αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΆαŸ†αž„αž”αžΈ - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž»αž„αžŸαžΌαž› αž“αž·αž„ terraform αŸ”

αž”αžŽαŸ’αžαžΆαž‰αž“αž·αž˜αŸ’αž˜αž·αž

αž“αž·αž™αžΆαž™αž±αŸ’αž™αžαŸ’αžšαž„αŸ‹αž‘αŸ… αž’αŸ’αž“αž€αž’αžΆαž…αžšαŸ†αž›αž„αž‡αŸ†αž αžΆαž“αž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž–αž–αž€αžαŸ’αž˜αžΈ αž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž αžΎαž™αž”αžŽαŸ’αžαžΆαž‰αžšαž„αž…αŸ†αž“αž½αž“ 3 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„ - αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αžΈαž˜αž½αž™αŸ—αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž“αŸ…αžαŸ‚αž…αž„αŸ‹αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αŸ” αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž‘αžΌαž‘αŸ…αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ (αžŠαŸ„αž™αžŸαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαž„αŸ‹αž™αž€αž–αžΈ https://cloud.yandex.ru/docs/vpc/concepts/)

αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ 10 αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 000

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αžšαž½αž˜αž˜αž½αž™ αžŠαŸ‚αž›αž’αž“αž’αžΆαž“αž’αžΆαž…αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αžΈαž˜αž½αž™αŸ— αž”αžŽαŸ’αžαžΆαž‰αžšαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆ αž“αž·αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž”αžŽαŸ’αžαžΆαž‰αž‘αžΌαž‘αŸ…αŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž’αž“αž’αžΆαž“αž–αž–αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž’αžΆαž…αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž”αžΆαž“ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αžαž»αžŸαŸ—αž‚αŸ’αž“αžΆαž€αŸαžŠαŸ„αž™αŸ” αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž”αžŽαŸ’αžαžΆαž‰αž–αž–αž€αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αžαžΆαž˜αžšαž™αŸˆαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžαžΆαž„αž€αŸ’αžšαŸ…αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž“αž·αž™αžΆαž™αž’αžΈαž‰αŸ’αž…αžΉαž„ αžαžΎαžœαŸαž‘αž˜αž“αŸ’αžαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž™αŸ‰αžΆαž„αž›αŸ’αž’αž“αŸ…αž›αžΎ Habre.

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš network.tf αž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„αŸ” αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αž―αž€αž‡αž“αž‘αžΌαž‘αŸ…αž˜αž½αž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ αž αžΎαž™αž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžšαž„αž…αŸ†αž“αž½αž“αž”αžΈαž‘αŸ…αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ - internal-a (172.16.1.0/24), internal-b (172.16.2.0/24), internal-c (172.16.3.0/24) )

αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ terraform αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αŸ–

vozerov@mba:~/events/terraform (master) $ terraform init
... skipped ..

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_vpc_subnet.internal-a -target yandex_vpc_subnet.internal-b -target yandex_vpc_subnet.internal-c

... skipped ...

Plan: 4 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

yandex_vpc_network.internal: Creating...
yandex_vpc_network.internal: Creation complete after 3s [id=enp2g2rhile7gbqlbrkr]
yandex_vpc_subnet.internal-a: Creating...
yandex_vpc_subnet.internal-b: Creating...
yandex_vpc_subnet.internal-c: Creating...
yandex_vpc_subnet.internal-a: Creation complete after 6s [id=e9b1dad6mgoj2v4funog]
yandex_vpc_subnet.internal-b: Creation complete after 7s [id=e2liv5i4amu52p64ac9p]
yandex_vpc_subnet.internal-c: Still creating... [10s elapsed]
yandex_vpc_subnet.internal-c: Creation complete after 10s [id=b0c2qhsj2vranoc9vhcq]

Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

αž’αžŸαŸ’αž…αžΆαžšαŸ’αž™! αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αžšαž”αžŸαŸ‹αž™αžΎαž„ αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž‡αžΆαžŸαŸ’αžšαŸαž…αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž–αžΈαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ - αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αžΈαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž‘αžΈαž–αžΈαžšαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš kafka αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαžΆαžšαž…αžΌαž›αŸ” αž αžΎαž™αž™αžΎαž„αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž½αž™αž‘αŸ€αžαžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ prometheus αžŠαžΎαž˜αŸ’αž”αžΈαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎ ansible αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ terraform αžŸαžΌαž˜αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαž˜αž½αž™αž“αŸƒ ansible αŸ” αž αžΎαž™αžŠαŸ†αž‘αžΎαž„αžαž½αž“αžΆαž‘αžΈαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‡αžΆαž˜αž½αž™αž€αžΆαž‘αžΆαž€αŸ‹αžŸαŸŠαžΈ ansibleαŸ–

vozerov@mba:~/events/terraform (master) $ cd ../ansible/
vozerov@mba:~/events/ansible (master) $ ansible-galaxy install -r requirements.yml
- cloudalchemy-prometheus (master) is already installed, skipping.
- cloudalchemy-grafana (master) is already installed, skipping.
- sansible.kafka (master) is already installed, skipping.
- sansible.zookeeper (master) is already installed, skipping.
- geerlingguy.docker (master) is already installed, skipping.
vozerov@mba:~/events/ansible (master) $

αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ ansible folder αž˜αžΆαž“αž§αž‘αžΆαž αžšαžŽαŸ .ansible.cfg configuration file αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αŸ’αžšαžΎαŸ” αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαŸ”

αž˜αž»αž“αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“ ssh-agent αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ„ ssh αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸ terraform αž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αž‘αŸαŸ” αž‡αžΆαž€αžΆαžšαž–αž·αž αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αž½αž”αž”αž‰αŸ’αž αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ os xαŸ– https://github.com/ansible/ansible/issues/32499#issuecomment-341578864. αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž€αž»αŸ†αž±αŸ’αž™αžœαžΆαž€αžΎαžαž‘αžΎαž„αž˜αŸ’αžαž„αž‘αŸ€αž αžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αž’αžαŸαžšαžαžΌαž…αž˜αž½αž™αž‘αŸ… env αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ TerraformαŸ–

vozerov@mba:~/events/terraform (master) $ export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž‡αžΆαž˜αž½αž™ terraform αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž’αž“αž’αžΆαž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ–

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_compute_instance.build -target yandex_compute_instance.monitoring -target yandex_compute_instance.kafka
yandex_vpc_network.internal: Refreshing state... [id=enp2g2rhile7gbqlbrkr]
data.yandex_compute_image.ubuntu_image: Refreshing state...
yandex_vpc_subnet.internal-a: Refreshing state... [id=e9b1dad6mgoj2v4funog]

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

... skipped ...

Plan: 3 to add, 0 to change, 0 to destroy.

... skipped ...

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αžœαžΈαŸ—αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ (αž αžΎαž™αžœαžΆαž‚αž½αžšαžαŸ‚αž˜αžΆαž“) αž“αŸ„αŸ‡αž™αžΎαž„αž“αžΉαž„αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž…αŸ†αž“αž½αž“αž”αžΈαŸ–

  1. build - αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” Docker αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™ Ansible αŸ”
  2. αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ - αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ - prometheus & grafana αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž›αžΎαžœαžΆαŸ” αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž…αžΌαž› / αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ– αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ / αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„
  3. kafka αž‚αžΊαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαžΌαž…αž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“ kafka αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ αž’αžΆαž…αž…αžΌαž›αž”αžΆαž“αž“αŸ…αž›αžΎαž…αŸ’αžšαž€ 9092αŸ”

αž…αžΌαžšαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž–αž½αž€αžœαžΆαž“αŸ…αž“αžΉαž„αž€αž“αŸ’αž›αŸ‚αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ–

vozerov@mba:~/events (master) $ yc compute instance list
+----------------------+------------+---------------+---------+---------------+-------------+
|          ID          |    NAME    |    ZONE ID    | STATUS  |  EXTERNAL IP  | INTERNAL IP |
+----------------------+------------+---------------+---------+---------------+-------------+
| fhm081u8bkbqf1pa5kgj | monitoring | ru-central1-a | RUNNING | 84.201.159.71 | 172.16.1.35 |
| fhmf37k03oobgu9jmd7p | kafka      | ru-central1-a | RUNNING | 84.201.173.41 | 172.16.1.31 |
| fhmt9pl1i8sf7ga6flgp | build      | ru-central1-a | RUNNING | 84.201.132.3  | 172.16.1.26 |
+----------------------+------------+---------------+---------+---------------+-------------+

αž’αž“αž’αžΆαž“αž‚αžΊαž“αŸ…αž“αžΉαž„αž€αž“αŸ’αž›αŸ‚αž„ αž αžΎαž™αž–αžΈαž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αžαžΆαž˜αžšαž™αŸˆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αž“αŸ’αž‘αžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αŸ’αžšαžΎαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž˜αžšαž™αŸˆ ssh αž“αž·αž„αžŸαžΆαž€αž›αŸ’αž”αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž‚αžŽαž“αžΈ cloudflare αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… terraform αžŸαžΌαž˜αž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡ DNS αžŠαŸ‚αž›αž‘αžΎαž”αž”αž„αŸ’αž€αžΎαžαžαŸ’αž˜αžΈαŸ—αŸ”
αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž IP αžαžΆαž„αž€αŸ’αž“αž»αž„ αž“αž·αž„αžˆαŸ’αž˜αŸ„αŸ‡ DNS αžαžΆαž„αž€αŸ’αž“αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αžαžΆαž˜αžˆαŸ’αž˜αŸ„αŸ‡αŸ–

ubuntu@build:~$ ping kafka.ru-central1.internal
PING kafka.ru-central1.internal (172.16.1.31) 56(84) bytes of data.
64 bytes from kafka.ru-central1.internal (172.16.1.31): icmp_seq=1 ttl=63 time=1.23 ms
64 bytes from kafka.ru-central1.internal (172.16.1.31): icmp_seq=2 ttl=63 time=0.625 ms
^C
--- kafka.ru-central1.internal ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.625/0.931/1.238/0.308 ms

αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž‘αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™ kafk αŸ”

αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ

αž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αžŽαžΆαžŸαŸ‹ αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™ - αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžœαžΆ αž αžΎαž™αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αžœαžΆαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎ docker build αž’αž˜αŸ’αž˜αžαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αžšαžΌαž”αž—αžΆαž– αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αžΈ Yandex - container registry αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαžΏαž„αžŠαŸ†αž”αžΌαž„αŸ”

αž™αžΎαž„αž…αž˜αŸ’αž›αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαž αž…αžΌαž›αžαžΆαž˜αžšαž™αŸˆ ssh αž αžΎαž™αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžšαžΌαž”αž—αžΆαž–αŸ–

vozerov@mba:~/events/terraform (master) $ cd ..
vozerov@mba:~/events (master) $ rsync -av app/ [email protected]:app/

... skipped ...

sent 3849 bytes  received 70 bytes  7838.00 bytes/sec
total size is 3644  speedup is 0.93

vozerov@mba:~/events (master) $ ssh 84.201.132.3 -l ubuntu
ubuntu@build:~$ cd app
ubuntu@build:~/app$ sudo docker build -t app .
Sending build context to Docker daemon  6.144kB
Step 1/9 : FROM golang:latest AS build
... skipped ...

Successfully built 9760afd8ef65
Successfully tagged app:latest

αž€αžΆαžšαž”αŸ’αžšαž™αž»αž‘αŸ’αž’αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžšαž½αž… - αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž’αžΆαž…αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž˜αž»αžαž„αžΆαžšαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ„αž™αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž αžΎαž™αž•αŸ’αž‰αžΎαžœαžΆαž‘αŸ… kafka:

ubuntu@build:~/app$ sudo docker run --name app -d -p 8080:8080 app /app/app -kafka=kafka.ru-central1.internal:9092</code>

Π‘ локальной машинки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ тСстовый event ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π²Π΅Ρ‚:

<code>vozerov@mba:~/events (master) $ curl -D - -s -X POST -d '{"key1":"data1"}' http://84.201.132.3:8080/post
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 13 Apr 2020 13:53:54 GMT
Content-Length: 41

{"status":"ok","partition":0,"Offset":0}
vozerov@mba:~/events (master) $

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžΆαž“αž†αŸ’αž›αžΎαž™αžαž”αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž“αŸƒαž€αžΆαžšαžαž αž“αž·αž„αž”αž„αŸ’αž αžΆαž‰αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸƒαž—αžΆαž‚αžαžΆαžŸ αž“αž·αž„αž’αž»αž αŸ’αžœαžŸαž·αžαžŠαŸ‚αž›αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αŸ” αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž‚αžΊαž”αž„αŸ’αž€αžΎαžαž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αž αžΎαž™αž”αž„αŸ’αž αŸ„αŸ‡αžšαžΌαž”αž—αžΆαž–αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ (αžšαž”αŸ€αž”αž’αŸ’αžœαžΎαžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αž”αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš registry.tf) αŸ” αž”αž„αŸ’αž€αžΎαžαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αŸ–

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_container_registry.events

... skipped ...

Plan: 1 to add, 0 to change, 0 to destroy.

... skipped ...

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

αž˜αžΆαž“αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž€αž»αž„αžαžΊαž“αŸαžš - αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹ oauth αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆ iam αž¬αžŸαŸ„αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαŸ” https://cloud.yandex.ru/docs/container-registry/operations/authentication. αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαžŸαŸ„αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž‚αžŽαž“αžΈαž˜αž½αž™αŸ–

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_iam_service_account.docker -target yandex_resourcemanager_folder_iam_binding.puller -target yandex_resourcemanager_folder_iam_binding.pusher

... skipped ...

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αžœαžΈαŸ—αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž€αžΌαž“αžŸαŸ„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαŸ–

vozerov@mba:~/events/terraform (master) $ yc iam key create --service-account-name docker -o key.json
id: ajej8a06kdfbehbrh91p
service_account_id: ajep6d38k895srp9osij
created_at: "2020-04-13T14:00:30Z"
key_algorithm: RSA_2048

αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αžšαž”αžŸαŸ‹αž™αžΎαž„ αž•αŸ’αž‘αŸαžšαžŸαŸ„ αž“αž·αž„αž…αžΌαž›αŸ–

vozerov@mba:~/events/terraform (master) $ scp key.json [email protected]:
key.json                                                                                                                    100% 2392   215.1KB/s   00:00

vozerov@mba:~/events/terraform (master) $ ssh 84.201.132.3 -l ubuntu

ubuntu@build:~$ cat key.json | sudo docker login --username json_key --password-stdin cr.yandex
WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
ubuntu@build:~$

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αŸ„αŸ‡αžšαžΌαž”αž—αžΆαž–αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈ αž™αžΎαž„αž™αž€αžœαžΆαž…αŸαž‰αž–αžΈαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ ycαŸ–

vozerov@mba:~ $ yc container registry get events
id: crpdgj6c9umdhgaqjfmm
folder_id:
name: events
status: ACTIVE
created_at: "2020-04-13T13:56:41.914Z"

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ αž™αžΎαž„ tag αžšαžΌαž”αž—αžΆαž–αžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αž˜αžΈ αž αžΎαž™αž”αž„αŸ’αž αŸ„αŸ‡αŸ–

ubuntu@build:~$ sudo docker tag app cr.yandex/crpdgj6c9umdhgaqjfmm/events:v1
ubuntu@build:~$ sudo docker push cr.yandex/crpdgj6c9umdhgaqjfmm/events:v1
The push refers to repository [cr.yandex/crpdgj6c9umdhgaqjfmm/events]
8c286e154c6e: Pushed
477c318b05cb: Pushed
beee9f30bc1f: Pushed
v1: digest: sha256:1dd5aaa9dbdde2f60d833be0bed1c352724be3ea3158bcac3cdee41d47c5e380 size: 946

αž™αžΎαž„αž’αžΆαž…αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžαžΆαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αŸ–

vozerov@mba:~/events/terraform (master) $ yc container repository list
+----------------------+-----------------------------+
|          ID          |            NAME             |
+----------------------+-----------------------------+
| crpe8mqtrgmuq07accvn | crpdgj6c9umdhgaqjfmm/events |
+----------------------+-----------------------------+

αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŠαŸ†αž‘αžΎαž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ yc αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž›αžΈαž“αž»αž… αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž”αžΆαž“αŸ”

yc container registry configure-docker

αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ docker αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž›αŸ†αž”αžΆαž€β€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“ αž αžΎαž™β€‹αž‡αžΆβ€‹αž›αž‘αŸ’αž’αž•αž›αŸ–

  1. αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”
  2. αž™αžΎαž„αž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ golang αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”
  3. αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αžœαžΆαž αžΎαž™αž…αžΆαž€αŸ‹αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž’αž»αž„αž―αž€αž‡αž“αŸ”

αž“αŸ…αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αž™αžΎαž„αž“αžΉαž„αž”αž“αŸ’αžαž‘αŸ…αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ - αž™αžΎαž„αž“αžΉαž„αž”αž‰αŸ’αž…αŸαž‰αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜ αž αžΎαž™αž‘αžΈαž”αŸ†αž•αž»αžαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžœαžΆαŸ” αž€αž»αŸ†αž”αŸ’αžαžΌαžš!

αžŸαž˜αŸ’αž—αžΆαžšαŸˆαž“αŸαŸ‡αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαžαžœαžΈαžŠαŸαž’αžΌαž“αŸƒαžŸαž·αž€αŸ’αžαžΆαžŸαžΆαž›αžΆαž”αžΎαž€αž…αŸ†αž  REBRAIN & Yandex.Cloud: αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αžŸαŸ†αžŽαžΎ 10 αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαž“αŸ…αž›αžΎ Yandex Cloud - https://youtu.be/cZLezUm0ekE

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž“αž·αž„αžŸαž½αžšαžŸαŸ†αžŽαž½αžšαž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αžŸαžΌαž˜αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… DevOps αžŠαŸ„αž™αž†αžΆαž“αŸ‚αž› REBRAIN.

αž™αžΎαž„αžŸαžΌαž˜αžαŸ’αž›αŸ‚αž„αž’αŸ†αžŽαžšαž‚αž»αžŽαž™αŸ‰αžΆαž„αž‡αŸ’αžšαžΆαž›αž‡αŸ’αžšαŸ…αž…αŸ†αž–αŸ„αŸ‡ Yandex.Cloud αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž±αž€αžΆαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αŸ” αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž–αž½αž€αž‚αŸ - https://cloud.yandex.ru/prices

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž–αž–αž€ αž¬αž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαž’αŸ†αž–αžΈαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŸαŸαžšαžΈαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ†αžŽαžΎ.

PS αž™αžΎαž„αž˜αžΆαž“αžŸαžœαž“αž€αž˜αŸ’αž˜αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž…αŸ†αž“αž½αž“ 2 αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ‚ αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αž‚αŸαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹