Запуск первого экземпляра EC2
Пройдите мастер запуска, выберите AMI и тип экземпляра, настройте пары ключей и подключитесь через SSH.
«Запуск первого экземпляра EC2» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.
Что такое Amazon EC2
Amazon Elastic Compute Cloud (EC2) предоставляет в облаке виртуальные машины с изменяемыми параметрами, которые называются экземплярами. Вы выбираете операционную систему, CPU, память, хранилище и сетевые ресурсы. EC2 — базовая служба вычислений AWS: почти каждая архитектура, которой нужны постоянные вычислительные ресурсы с состоянием, использует EC2 напрямую или через созданные на его основе службы (ECS, EKS, EMR). Экземпляры работают внутри вашей VPC, и их можно запускать, останавливать, перезагружать или завершать по требованию.
Образы машин Amazon (AMI)
Образ машины Amazon (AMI) — это шаблон, который определяет операционную систему, программное обеспечение и конфигурацию экземпляра EC2. AWS предоставляет тысячи AMI (Amazon Linux 2023, Ubuntu, Windows Server), поставщики из Marketplace публикуют AMI с предварительно настроенным программным обеспечением, а вы можете создавать собственные AMI, сохраняя запущенный экземпляр. При запуске экземпляра вы выбираете AMI — оно определяет содержимое корневого тома и архитектуру (x86_64 или ARM).
# Find latest Amazon Linux 2023 AMI in us-east-1
aws ec2 describe-images \
--owners amazon \
--filters 'Name=name,Values=al2023-ami-*-x86_64' \
--query 'sort_by(Images, &CreationDate)[-1].ImageId' \
--output textМастер запуска EC2: пошаговое руководство
Мастер запуска EC2 в консоли проводит вас через следующие шаги: 1) имя и теги; 2) выбор AMI; 3) тип экземпляра (сочетание CPU и памяти); 4) пара ключей для доступа по SSH; 5) сетевые настройки (VPC, подсеть, группа безопасности); 6) хранилище (размер и тип корневого тома EBS); 7) расширенные настройки (роль IAM, сценарий пользовательских данных, параметры метаданных). Понимание каждого шага поможет вам уверенно отвечать на экзаменационные вопросы о конфигурации.
# Equivalent CLI launch
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name MyKeyPair \
--security-group-ids sg-12345678 \
--subnet-id subnet-12345678 \
--iam-instance-profile Name=MyEC2Role \
--user-data file://user-data.shПары ключей для аутентификации SSH
Пара ключей состоит из открытого ключа (его хранит AWS) и закрытого ключа (его скачиваете вы — только один раз). При запуске экземпляра EC2 AWS добавляет открытый ключ в ~/.ssh/authorized_keys пользователя по умолчанию (например, ec2-user для Amazon Linux и ubuntu для Ubuntu). Подключение выполняется с помощью закрытого ключа: ssh -i my-key.pem ec2-user@<public-ip>. Если закрытый ключ утерян, вы не сможете подключиться к экземпляру по SSH, если только не воспользуетесь Systems Manager Session Manager как альтернативой.
# Generate a new key pair and save the private key
aws ec2 create-key-pair \
--key-name MyKeyPair \
--query 'KeyMaterial' \
--output text > MyKeyPair.pem
chmod 400 MyKeyPair.pem
# Connect to the instance
ssh -i MyKeyPair.pem ec2-user@54.123.45.67Состояния жизненного цикла экземпляра
Экземпляр EC2 проходит через несколько состояний. Ожидание: экземпляр запускается (плата не взимается). Работает: экземпляр активен (оплата начисляется посекундно или почасово). Останавливается: выполняется переход в остановленное состояние (только для экземпляров с хранилищем на основе EBS). Остановлен: экземпляр выключен — вы платите только за подключенное хранилище EBS. Завершен: экземпляр безвозвратно удален — перезапустить его нельзя. Понимание этих состояний важно для учета расходов (плата по модели On-Demand начисляется только в состоянии «Работает») и проектирования архитектуры (экземпляры Spot завершаются, не переходя в состояние «Остановлен»).
# Stop and start an instance
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
aws ec2 start-instances --instance-ids i-0abcdef1234567890
# Terminate permanently
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890Публичные и частные IP-адреса EC2
По умолчанию экземпляры в публичных подсетях получают публичный адрес IPv4 (динамический — изменяется после остановки и запуска) и частный адрес IPv4 (сохраняется после остановки и запуска внутри VPC). Чтобы получить постоянный публичный IP-адрес, выделите Elastic IP (EIP) — статический публичный адрес IPv4, который принадлежит вам, пока вы его не освободите. EIP бесплатен, если подключен к работающему экземпляру, но оплачивается, если не подключен или если у вас больше одного EIP на работающий экземпляр.
# Allocate an Elastic IP and associate it with an instance
aws ec2 allocate-address --domain vpc
aws ec2 associate-address \
--instance-id i-0abcdef1234567890 \
--allocation-id eipalloc-12345678Пользовательские данные: сценарии начальной настройки
Пользовательские данные — это сценарий оболочки (или конфигурация cloud-init), который выполняется один раз при первом запуске экземпляра. Используйте их для установки пакетов, настройки программного обеспечения или получения кода приложения из S3. Пользовательские данные выполняются с правами корневого пользователя и по умолчанию не запускаются повторно после перезагрузки. Они передаются в виде текста, закодированного в base64, через конфигурацию запуска. Короткие пользовательские данные и предварительно подготовленные AMI для сложной настройки ускоряют запуск при автоматическом масштабировании.
#!/bin/bash
# user-data.sh — runs on first boot
yum update -y
yum install -y httpd
echo '<h1>Hello from EC2</h1>' > /var/www/html/index.html
systemctl start httpd
systemctl enable httpdПодключение: SSH и Systems Manager
Есть два основных способа доступа к экземплярам EC2. SSH: требует открыть порт 22 в группе безопасности и иметь файл закрытого ключа. AWS Systems Manager Session Manager: предоставляет доступ к оболочке через браузер или CLI без открытия портов, без пары ключей и с полным журналом аудита через CloudTrail. Для Session Manager требуются агент SSM (предварительно установленный в AMI Amazon Linux и Windows Server) и роль IAM с политикой AmazonSSMManagedInstanceCore. Session Manager — предпочтительный способ доступа к рабочим экземплярам.
# Start a Session Manager session (no SSH needed)
aws ssm start-session --target i-0abcdef1234567890Метаданные экземпляра EC2
Служба метаданных экземпляра EC2 (IMDS) — это HTTP-конечная точка по адресу 169.254.169.254, доступная только изнутри экземпляра. Она предоставляет сведения, необходимые во время работы: идентификатор экземпляра, идентификатор AMI, публичный IP-адрес, учетные данные роли IAM, зону доступности и многое другое. IMDSv2 (текущая рекомендуемая практика) требует токен, связанный с сеансом, и предотвращает атаки подделки запросов на стороне сервера (SSRF), при которых уязвимое приложение может прочитать метаданные. Всегда настраивайте экземпляры так, чтобы они требовали IMDSv2.
# Get instance ID using IMDSv2
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600' -s)
curl -H "X-aws-ec2-metadata-token: $TOKEN" -s \
http://169.254.169.254/latest/meta-data/instance-idГруппы размещения
Группы размещения определяют, как экземпляры распределяются по базовому оборудованию. Кластерная: размещает экземпляры близко друг к другу в одной AZ для минимальной задержки сети и высокой пропускной способности — идеально для HPC. Распределенная: размещает каждый экземпляр на отдельном оборудовании, чтобы уменьшить вероятность связанных отказов — идеально для небольших критически важных наборов экземпляров (не более 7 на AZ). Секционированная: делит экземпляры на логические секции на отдельных стойках — идеально для крупных распределенных систем, таких как Hadoop или Cassandra, где важно учитывать расположение стоек.
# Create a cluster placement group
aws ec2 create-placement-group \
--group-name HighPerfCluster \
--strategy clusterЗащита от завершения EC2
Защита от завершения предотвращает случайное завершение экземпляра через консоль, CLI или API. Включайте ее при запуске критически важных экземпляров. Обратите внимание: даже при включенной защите группы автоматического масштабирования могут завершать экземпляры во время уменьшения масштаба, если отдельно не настроить защиту экземпляров. Атрибут DeleteOnTermination корневого тома EBS определяет, будет ли том автоматически удален при завершении экземпляра. Рекомендуется использовать значение true для корневых томов и false для томов с данными, которые вы хотите сохранить.
# Enable termination protection
aws ec2 modify-instance-attribute \
--instance-id i-0abcdef1234567890 \
--disable-api-terminationБыстрая проверка
Проверьте, насколько хорошо вы усвоили концепции AWS «Архитектор решений» (SAA-C03) из этого урока.
Итоги урока
В этом уроке вы узнали, что экземпляры EC2 запускаются из AMI с выбранными типом экземпляра, парой ключей, группой безопасности и необязательными пользовательскими данными, Elastic IP обеспечивают постоянные публичные адреса, а стандартные публичные IP изменяются после остановки и запуска, а Systems Manager Session Manager является предпочтительным способом доступа к рабочим экземплярам по сравнению с SSH. Далее мы сравним типы экземпляров и модели ценообразования.
Часто задаваемые вопросы
Урок «Запуск первого экземпляра EC2» бесплатный?
Да — полный текст урока «Запуск первого экземпляра EC2» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.
Чему я научусь в уроке «Запуск первого экземпляра EC2»?
Пройдите мастер запуска, выберите AMI и тип экземпляра, настройте пары ключей и подключитесь через SSH. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AWS Solutions Architect?
Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Запуск первого экземпляра EC2»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AWS Solutions Architect?
Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Запуск первого экземпляра EC2
- Типы экземпляров и модели ценообразования
- Группы безопасности и пары ключей
- Хранилище EC2: локальное хранилище экземпляра и EBS