AWS - Создание виртуальной машины EC2

Thank you for reading this post, don't forget to subscribe!

В двух сло­вах, EC2 (Elastic Compute Cloud) — это вир­ту­аль­ная маши­на у хосте­ра AWS (Amazon Web Services). Попро­бу­ем подроб­нее рас­смот­реть про­цесс ее созда­ния и после­ду­ю­ще­го запус­ка на при­ме­ре систе­мы Ubuntu Server.

Мы долж­ны быть заре­ги­стри­ро­ва­ны на сер­ви­се — это дела­ет­ся в несколь­ко шагов, если перей­ти по кноп­ке создать акка­унт AWS (Create an AWS Account).

В пане­ли управ­ле­ния пер­вым делом мож­но выбрать кон­крет­ный реги­он, в кото­ром по умол­ча­нию будут созда­вать­ся и рабо­тать вир­ту­аль­ные машины:

Мы долж­ны уви­деть спи­сок всех сер­ви­сов, пред­ла­га­е­мых ком­па­ни­ей Ама­зон — выби­ра­ем EC2:

Нахо­дим оран­же­вую кноп­ку Launch instance и кли­ка­ем по ней — в открыв­шем­ся кон­текст­ном меню сно­ва нажи­ма­ем по Launch instance:

Загру­зит­ся окно со спис­ком опе­ра­ци­он­ных систем. Выби­ра­ем тре­бу­е­мую — в нашем при­ме­ре, это Ubuntu Server 20.04:

* для удоб­ства мож­но исполь­зо­вать стро­ку поиска.

Так­же выби­ра­ем плат­фор­му, под кото­рой будет запус­кать­ся опе­ра­ци­он­ная систе­ма и ее раз­ряд­ность. Нажи­ма­ем Select:

* все совре­мен­ные систе­мы, как пра­ви­ло, запус­ка­ем под 64-бит. Стан­дарт­ная архи­тек­ту­ра — x86.

На сле­ду­ю­щей стра­ни­це мы уви­дим вари­ан­ты для аппа­рат­ной состав­ля­ю­щей сер­ве­ра. Нам необ­хо­ди­мо выбрать подходящий:

* где:

  • vCPUs — коли­че­ство вир­ту­аль­ных про­цес­со­ров для вир­ту­аль­ной машины.
  • Memory (GiB) — объ­ем опе­ра­тив­ной памя­ти в гигабайтах.
  • Instance Storage (GB) — дис­ко­вое хра­ни­ли­ще для экзем­пля­ра. У Amazon исполь­зу­ет­ся тер­мин EBS или Elastic Block Store.
  • EBS-Optimized Available — под­дер­жи­ва­ет­ся ли для EBS опти­ми­за­ция, бла­го­да­ря кото­рой дис­ко­вые нако­пи­те­ли могут рабо­тать быстрее.
  • Network Performance — ука­зы­ва­ет уро­вень про­из­во­ди­тель­но­сти ско­ро­сти пере­да­чи данных.
  • IPv6 Support — есть ли под­держ­ка IPv6.

После нажи­ма­ем по Next: Configure Instance Details:

Сле­ду­ю­щая стра­ни­ца пред­ла­га­ет боль­шой набор опций для настрой­ки вир­ту­аль­ной маши­ны. Рас­смот­рим частя­ми. Мож­но их, вооб­ще, не тро­гать и оста­вить зна­че­ния по умол­ча­нию, а мож­но сде­лать настрой­ку более тонкой.

Настра­и­ва­ем Number of instances, Purchasing option, Network, Subnet, Auto-assign Public IP:

где:

  • Number of instances — сколь­ко запус­кать дан­ных вир­ту­аль­ных машин одновременно.
  • Purchasing option — воз­мож­ность исполь­зо­вать спо­то­вые вир­ту­аль­ные маши­ны. Это такие экзем­пля­ры, кото­рые запус­ка­ют­ся по цене, уста­нов­лен­ной нами. Так мож­но полу­чить сер­ве­ры по силь­но зани­жен­ной цене. Но если у Ама­зо­на закон­чат­ся сво­бод­ные мощ­но­сти, он про­сто уни­что­жит дан­ные сер­ве­ры. Поэто­му дан­ную воз­мож­ность нуж­но при­ме­нять для некри­тич­ных сер­ве­ров без необ­хо­ди­мо­сти хра­не­ния на них важ­ной информации.
  • Network — выби­ра­ем сеть. По умол­ча­нию созда­ет­ся Ама­зо­ном, но у нас есть воз­мож­ность создать VPC с соб­ствен­ным диа­па­зо­ном IP-адресов.
  • Subnet — для выбран­ной сети может быть доступ­но несколь­ко под­се­тей. Нам нуж­но выбрать подходящую.
  • Auto-assign Public IP спо­соб при­вяз­ки к нашей вир­ту­аль­ной машине IP-адре­са. Полу­чен­ный адрес будет исполь­зо­вать­ся до ее уда­ле­ния. Так­же мож­но задать свой адрес с помо­щью EIP.

Спус­ка­ем­ся ниже и видим опции Placement group, Capacity Reservation, Domain join directory, IAM role:

* где:

  • Placement group — поз­во­ля­ет запу­стить экзем­пляр в груп­пе раз­ме­ще­ния, что­бы полу­чить пре­иму­ще­ства от боль­шей избы­точ­но­сти или более высо­кой про­пуск­ной спо­соб­но­сти сети. Мож­но создать новую груп­пу или выбрать ранее созданную.
  • Capacity Reservation — резер­ви­ро­ва­ние емко­сти для экзем­пля­ров EC2 в опре­де­лен­ной зоне доступности.
  • Domain join directory — поз­во­ля­ет при­со­еди­нить вир­ту­аль­ную маши­ну к служ­бе ката­ло­гов AWS Directory Service.
  • IAM role — поз­во­ля­ет раз­вер­нуть внут­ри вир­ту­аль­ных машин учет­ные запи­си из роли IAM.

Пере­хо­дим к настрой­ке CPU options, Shutdown behavior, Stop - Hibernate behavior, Enable termination protection, Monitoring, Tenancy, Elastic Inference:

* где:

  • CPU options — коли­че­ство ядер и пото­ков на ядро. Дан­ные пара­мет­ры нель­зя изме­нить после запус­ка экзем­пля­ра EC2.
  • Shutdown behavior — пове­де­ние экзем­пля­ра при завер­ше­нии рабо­ты опе­ра­ци­он­ной систе­мы. По умол­ча­нию он оста­нав­ли­ва­ет­ся, мож­но задать удаление.
  • Stop - Hibernate behavior — в режи­ме гибер­на­ции экзем­пляр оста­нав­ли­ва­ет­ся, а содер­жи­мое ОЗУ экзем­пля­ра сохра­ня­ет­ся в кор­не­вом томе.
  • Enable termination protection — поз­во­ля­ет защи­тить экзем­пля­ры от слу­чай­но­го завер­ше­ния. После вклю­че­ния вы не смо­же­те завер­шить рабо­ту это­го экзем­пля­ра через API или Кон­соль управ­ле­ния AWS, пока защи­та завер­ше­ния не будет отключена.
  • Monitoring — поз­во­ля­ет отсле­жи­вать состо­я­ние экзем­пля­ра с помо­щью Amazon CloudWatch. По умол­ча­нию исполь­зу­ет­ся бес­плат­ный базо­вый мони­то­ринг, при кото­ром дан­ные доступ­ны за 5-минут­ные пери­о­ды. Вы може­те вклю­чить подроб­ный мони­то­ринг, где дан­ные доступ­ны за 1-минут­ные периоды.
  • Tenancy — мы можем настро­ить, что­бы наш экзем­пляр запус­кал­ся на пол­но­стью выде­лен­ном физи­че­ском сер­ве­ре. По умол­ча­нию он запус­ка­ет­ся на общем сер­ве­ре с дру­ги­ми вир­ту­аль­ны­ми машинами.
  • Elastic Inference — обес­пе­чи­ва­ет эко­но­мич­ное аппа­рат­ное ускорение.

Завер­ша­ем настройку:

* где:

  • Enclave — защи­та и обра­бот­ка высо­ко­чув­стви­тель­ных дан­ных с помо­щью Nitro Enclaves.
  • Metadata accessible — отклю­че­ние досту­па к мета­дан­ным ваше­го экземпляра.
  • Metadata version — выби­ра­ем вер­сию методанных.
  • Metadata token response hop limit — чис­ло сете­вых пере­хо­дов, кото­рые может прой­ти токен мета­дан­ных. По умол­ча­нию 1. Мак­си­мум 64.
  • User data — воз­мож­ность запус­ка сво­е­го сце­на­рия настрой­ки экзем­пля­ра после его запуска.

Идем даль­ше — кли­ка­ем по Next: Add Storage:

На сле­ду­ю­щей стра­ни­це нам необ­хо­ди­мо настро­ить дис­ко­вую подсистему:

* ука­зы­ва­ем раз­мер дис­ка в гига­бай­тах, тип носи­те­ля, дол­жен ли диск пол­но­стью уда­лять­ся после уда­ле­ния экзем­пля­ра, необ­хо­ди­мо ли шиф­ро­ва­ние дан­ных на диске.

Сре­ди типов мож­но выбрать:

  • GP2 SSD дис­ки с лими­том по ско­ро­сти в 250 MiB/s и 16 000 опе­ра­ций в секунду.
  • GP3 — SSD дис­ки с лими­том по ско­ро­сти в 1 000 MiB/s и 16 000 опе­ра­ций в секунду.
  • IO1 — SSD дис­ки со ско­ро­стью 1 000 MiB/s и 64 000 опе­ра­ций в секунду.
  • IO2 — SSD дис­ки повы­шен­ной надеж­но­сти со ско­ро­стью 1 000 MiB/s и 64 000 опе­ра­ций в секунду.
  • Magnetic — обыч­ный HDD.

Так­же мы можем доба­вить допол­ни­тель­ные дис­ки. Сре­ди их типов будут так­же доступ­ны sc1 и st1 — HDD дис­ки соот­вет­ствен­но 5400 и 7200 обо­ро­тов в минуту.

Кли­ка­ем по Nexr: Add Tags:

Теги могут ока­зать­ся полез­ны­ми при рабо­те с сер­ве­ра­ми из кон­со­ли или быст­ро­го поис­ка. Для их добав­ле­ния кли­ка­ем по кноп­ке Add Tag:

Добав­ля­ем столь­ко тегов, сколь­ко нам нужно:

… и кли­ка­ем по Next: Configure Security Group:

По сути, это пра­ви­ла бранд­мау­э­ра на уровне AWS. Как мини­мум, нам сто­ит доба­вить порт для управ­ле­ния вир­ту­аль­ной маши­ной, напри­мер, SSH:

Нажи­ма­ем на Review and Launch:

Запус­ка­ем вир­ту­аль­ную маши­ну, клик­нув по Launch:

Необ­хо­ди­мо создать крип­то­гра­фи­че­ский ключ для экзем­пля­ра EC2:

* если мы ранее созда­ва­ли ключ, мы можем выбрать его, а не созда­вать новый.

Кли­ка­ем по Launch Instances для запус­ка экзем­пля­ров вир­ту­аль­ных машин:

Для про­смот­ра создан­но­го экзем­пля­ра, кли­ка­ем по View Instances: