Сервис Amazon Elastic Compute Cloud ( Amazon EC2 ) позволяет вам создавать, использовать и управлять виртуальными серверами в облаке Amazon Web Services (AWS). В терминологии AWS виртуальный сервер называется Amazon EC2 Instance . Amazon EC2 позволяет быстро гибко управлять конфигурацией ВМ и быстро масштабировать ресурсы для обработки возросшей нагрузки. Такой виртуальный сервер предполагает почасовую оплату. В этой статье мы рассмотрим особенности создания и управления виртуальной машины EC2 с Windows Server 2019 в облаке AWS.
Создание виртуальной машины EC2 в Amazon Web Services
Для создания сервера вам необходимо перейти в раздел Compute , выбрать EC2 , затем Instances , нажать кнопку Launch Instance . В появившемся списке операционных систем нужно определиться с выбором, в нашем случае это Windows Server 2019. После этого появится таблица с выбором параметров сервера: семейство, тип (nano, micro, small, medium, large, xlarge, 2xlarge), количество процессоров vCPU , памяти, тип дисков (в AWS используется термин EBS, Elastic Block Store), сетевая карта. Нажмите кнопку Next: Configure Instance Details и перейдите к следующему шагу.
На 3м шаге устанавливается количество разворачиваемых серверов (можно и 2, и 5 одновременно), выбираются сетевые параметры, параметры для подключения к домену, способ выключения (простой или с удалением сервера) и другое. Нажмите кнопку Next: Add Storage .
Теперь нужно добавить виртуальные диски. Здесь Root означает, что на него будет устанавливаться система. По нажатию на кнопку Add New Volume добавляете ещё диски, выбираете тип (SSD/HDD), устанавливаете размер (рис. 2).
Следующий этап – настройка файрвола. Здесь достаточно добавить группу безопасности и создать необходимые исключения для портов. Выберите опцию Create new security group , укажите имя группы. Нажав кнопку Add Rule можно добавить правила доступа к серверу. Например, для веб-сервера можно создали 3 правила для доступа через RDP ( порт 3389 ) и браузер (HTTP/HTTPS):
- тип RDP , протокол TCP , порт 3389 , источник Anywhere ;
- тип HTTP , протокол TCP , порт 80 , источник Anywhere ;
- тип HTTPS , протокол TCP , порт 443 , источник Anywhere .
Теперь требуется создать пару ключей для доступа к серверам. В первом выпадающем поле вам необходимо выбирать пункт Create a new key pair , а во втором – ввести имя, затем сохранить файл. Нажмите кнопку Launch и наблюдайте за процессом развёртывания серверов.
Для подключения к серверу вам необходимо нажать кнопку Connect (по умолчанию подключение происходит под учётной записью Administrator), в появившемся окне нажать кнопку Get Password , затем Browse , выбрать ранее созданный файл-ключ (рис. 3), нажать кнопку Decrypt Password, скопировать пароль.
После этого пытайтесь подключиться по RDP, введя публичное DNS имя (IP-адрес), логин и пароль.
Управление дисками в AWS EC2
Иногда ситуация требует произвести манипуляции с дисками: изменить размер, тип, подключить новые диски. Например, через некоторое время место на диске заканчивается, соответственно, его нужно увеличить. Для этого перейдите в пункт меню Volumes, выделите нужный диск, нажмите кнопку Actions и в выпадающем списке выберете пункт Modify Volume , в текстовом поле введите другую цифру (большего размера) и нажмите кнопку Modify . Вам необходимо дождаться завершения процесса расширения диска. Затем расширьте место через стандартную консоль управления дисками Windows. Перезагружать сервер не нужно.
Другой пример, когда требуется диск от одного сервера подсоединить другому. В этом случае выделите диск, нажмите кнопку Actions и в выпадающем списке выберете пункт Detach Volume . Отключили. Затем Actions -> Attach Volume , выберете нужный Instance (сервер) и нажмите кнопку Attach . Подключили. Перезагружать сервер не нужно.
AWS поддерживает как снапшоты всего инстанса, так и отдельных дисков. Если необходимо сделать резервную копию диска, то выделяете диск Actions -> Create Snapshot , вписываете имя, нажимаете кнопку Create. Резервные копии появятся в пункте меню Snapshots . Из них можно создать диск и подключить к серверу. Для этого вы выделяете резервную копию диска, Actions -> Create Volume , выбираете регион, тип диска, указываете размер.
Bootstrapping: Быстрая настройка гостевой ОС в EC2
Для быстрой настройки гостевой ОС в инстансе EC2 можно использовать Bootstrapping (самонастройка). Она заключается в применении скрипта PowerShell. Вы сами определяете действия, которые нужно выполнить в скрипте PowerShell. Например, установить роли Windows , задать имя компьютера, запустить службы и т.д. Скрипт вставляется или пишется в текстовом поле параметра Advanced Detail на 3м шаге создания сервера.
Один из вариантов скрипта PowerShell выглядит так:
<powershell>_x000D_Write-Host “---------START-----------”_x000D_Add-WindowsFeature web-server_x000D_Set-Content C:UsersAdministratorDesktoptest.txt “UserData Executed on $(Get-Date)”_x000D_Rename-Computer -NewName CloudWebSRV1_x000D_Add-Content C:UsersAdministratorDesktoptest.txt “----Test File---”_x000D_ Get-Service | Out-File C:UsersAdministratorDesktoptest.txt -Append | Format-Table_x000D_Test-Connection www.google.com | Out-File C:UsersAdministratorDesktoptest.txt -Append | Format-Table_x000D_Write-Host “---------FINISh----------”_x000D_</powershell>
С помощью данного скрипта устанавливается роль IIS, создаётся текстовый файл на рабочем столе, переименовывается сервер, записываются в файл доступные сервисы операционной системы, проверяется соединение с сервером Google, и снова результат записывается в файл.
Управление серверами с помощью AWS Simple System Manager
Для централизованного управления серверами в AWS можно использовать Simple System Manager (SSM). Он поддерживает управления как серверами в облаке Amazon, так и on-prem серверами в гибридной среде. Агент SSM устанавливается на Windows-инстансы автоматически.
Session Manager позволяет вам через запущенную службу SSM Agent интерактивно подключится к консоли гостевой ОС (Bash в Linux, или PowerShell в Linux) через веб-портал AWS или the AWS CLI
Зайдите в пункт меню System Manager -> Managed Instances, где серверов вы не увидите, так как не настроена соответствующая роль для работы с агентами. Для создания необходимых прав откройте главную консоль, в разделе Security, Identity, & Compliance нажмите на IAM , перейдите в Roles , затем Create role -> EC2 -> EC2 -> Next: Permissions . В списке выберете AmazonEC2RoleforSSM , AmazomS3FullAccess иили другие, впишите название.
Теперь данную роль вам нужно назначить на сервер. Перейдите в Instances -> Actions -> Instance Settings -> Attach Role , в появившемся списке выберете созданную роль. Затем вам нужно перейти в Managed Instances , где увидите Windows-сервер. Значит агент активен и доступен.
После этого перейдите к пункту меню Run Command . Появится список различных командлетов PowerShell, которые можно использовать для управления вашей гостевой ОС из AWS. Например, доступны: AWS-ConfigureWindowsUpdate
, AWS-InstallApplication
, AWS-InstallPowerShellModule
, AWS-RunDocument
, AWS-JoinDirectoryServiceDomain
. Например, можете выбрать запуск скриптов AWS-RunPowerShellScript
. Затем следует активировать один или несколько серверов для запуска скрипта и в текстовом поле ввести команды, нажать кнопку Run . AWS отправит эти команды агенты SSM на сервере и они будут выполнены, как будто вы локально выполнили эти команды в консоли PowerShell.