Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Uskorennyy kurs po aws obuchenie na praktike 2
Dev48

© 2026 · All rights reserved.

Ускоренный курс по AWS: обучение на практике

Источник: Gruntwork

Ускоренный курс по AWS: обучение на практике

Источник: Gruntwork

Ускоренный курс по AWS, где вы учитесь на практике: создайте аккаунт, разверните виртуальный сервер и запустите кластер Kubernetes в AWS для продакшена всего за несколько минут.

27 сентября 2026 г.•Обновлено: 27 сентября 2026 г.

Освойте AWS за считанные минуты с помощью молниеносного практического экспресс-курса, где вы учитесь на практике.

Это часть 3 серии экспресс-курсов по Docker, Kubernetes, Terraform и AWS. Во второй части вы узнали, как запускать Kubernetes локально, что отлично подходит для обучения и тестирования. В этой статье вы узнаете основы AWS, включая то, как запустить Kubernetes в AWS для производственных сценариев, пройдя молниеносный экспресс-курс на практике. Этот курс предназначен для новичков, начиная с нуля, и шаг за шагом формирует ваше ментальное представление с помощью простых примеров, которые вы запускаете на своем компьютере, чтобы сделать что-то полезное с помощью AWS — за считанные минуты. Если вы хотите углубить свои знания, в конце статьи также есть ссылки на более продвинутые ресурсы.

  • Что такое AWS (версия за 60 секунд)
  • Создание аккаунта AWS
  • Развертывание виртуального сервера
  • Развертывание кластера Kubernetes
  • Развертывание приложений в кластере Kubernetes
  • Дополнительная литература
  • Заключение

Что такое AWS (версия за 60 секунд)

Amazon Web Services (AWS) — это платформа облачных вычислений по требованию. Вместо того чтобы строить собственный дата-центр, что требует огромных затрат времени и средств (как первоначальных, так и текущих) на настройку серверов, сети, охлаждения и т. д., вы можете запустить свое программное обеспечение в облаке: то есть в одном из сотен дата-центров по всему миру, управляемых провайдером публичного облака, таким как AWS.

Самый базовый способ использования AWS — аренда виртуальных серверов: всего за несколько кликов в консоли AWS вы можете запустить сервер Linux или Windows в Elastic Compute Cloud (EC2), подключиться к нему по сети (например, через SSH или RDP) и использовать этот сервер для запуска любого нужного вам программного обеспечения. Тем не менее, AWS выходит далеко за рамки простой замены серверов, предлагая также десятки сервисов более высокого уровня: например, вместо запуска собственного балансировщика нагрузки вы можете использовать Elastic Load Balancer; вместо создания собственных хранилищ данных вы можете использовать RDS, Redshift или ElastiCache; вместо создания собственных файловых хранилищ вы можете использовать S3, EBS или EFS; вместо написания собственных алгоритмов машинного обучения вы можете использовать Rekognition, Textract или Transcribe; вместо создания собственного кластера Kubernetes вы можете использовать EKS; и так далее.

Все эти сервисы предлагают оплату по факту использования. Например, EC2 позволяет арендовать виртуальные серверы всего за 0,0059 долл. США в час; также существует щедрый бесплатный уровень. Более того, большинство сервисов являются эластичными, что означает возможность быстрого масштабирования вверх или вниз: например, при скачке трафика вы можете запустить сотни инстансов EC2 всего за несколько минут; когда трафик падает, вы можете сократить их количество до считанных инстансов для экономии средств. Таким образом, AWS не только дешевле создания собственного дата-центра, но и мощные высокоуровневые сервисы и эластичность позволяют выйти далеко за рамки того, что большинство компаний могут сделать в собственных дата-центрах.

AWS по праву считается лидером в облачных вычислениях: у них наибольшая доля рынка, самое зрелое предложение (AWS был первым современным облачным провайдером), самое полное предложение (больше сервисов с большим количеством функций, чем у любого другого провайдера), самое безопасное предложение и самое крупное сообщество. Так что ваше время, потраченное на изучение того, как этим пользоваться, окупится сполна. Давайте начнем!

Создание аккаунта AWS

Если у вас еще нет аккаунта AWS, перейдите по адресу https://aws.amazon.com и зарегистрируйтесь. Когда вы впервые регистрируетесь в AWS, вы сначала входите в систему как корневой пользователь (root user). Этот аккаунт имеет права доступа на выполнение абсолютно любых действий в аккаунте, поэтому с точки зрения безопасности использовать корневого пользователя для повседневных задач не рекомендуется. Фактически, единственное, для чего следует использовать корневого пользователя — это создание других учетных записей пользователей с более ограниченными правами, после чего нужно немедленно переключиться на одну из таких учетных записей.

Чтобы создать учетную запись пользователя с более ограниченными правами, вам потребуется использовать сервис Identity and Access Management (IAM). IAM — это место, где вы управляете учетными записями пользователей, а также правами доступа для каждого пользователя. Чтобы создать нового пользователя IAM, перейдите в консоль IAM, нажмите «Users» (Пользователи), а затем кнопку «Add Users» (Добавить пользователей). Введите имя пользователя и убедитесь, что выбраны оба пункта: «Access key — Programmatic access» (Ключ доступа — Программный доступ) и «Password — AWS Management Console access» (Пароль — Доступ к Консоли управления AWS) (обратите внимание, что AWS периодически вносит изменения в свою веб-консоль, поэтому то, что вы видите, может немного отличаться от скриншотов в этой статье блога).

Нажмите кнопку «Next» (Далее). AWS попросит вас добавить разрешения для пользователя. По умолчанию новые пользователи IAM не имеют никаких разрешений и не могут ничего делать в аккаунте AWS. Чтобы дать пользователю IAM возможность что-либо делать, необходимо связать с его учетной записью одну или несколько политик IAM (IAM Policies). Политика IAM — это документ JSON, который определяет, что пользователю разрешено или не разрешено делать. Вы можете создавать собственные политики IAM или использовать некоторые из предопределенных политик IAM, встроенных в ваш аккаунт AWS и известных как управляемые политики (Managed Policies).

Чтобы запустить примеры из этой статьи блога, проще всего добавить управляемую политику AdministratorAccess к вашему пользователю IAM (найдите ее и установите флажок рядом с ней):

Нажмите кнопку «Next» еще пару раз, а затем кнопку «Create user» (Создать пользователя). AWS покажет вам учетные данные безопасности для этого пользователя, которые включают:

  • Учетные данные веб-консоли: URL консоли, имя пользователя и пароль.
  • Учетные данные командной строки: Идентификатор ключа доступа (Access Key ID), Секретный ключ доступа (Secret Access Key).

Вы должны сохранить их немедленно, так как они больше никогда не будут показаны, а оба набора учетных данных понадобятся вам позже в этом руководстве. Помните, что эти учетные данные дают доступ к вашему аккаунту AWS, поэтому храните их в надежном месте (например, в менеджэре паролей вроде 1Password, LastPass или в связке ключей macOS) и никогда ни с кем ими не делитесь.

После сохранения учетных данных нажмите кнопку «Close» (Закрыть). Выйдите из своего аккаунта AWS в качестве корневого пользователя и войдите снова в качестве пользователя IAM, используя только что сохраненные URL консоли, имя пользователя и пароль.

Развертывание виртуального сервера

Чтобы прочувствовать использование AWS, давайте начнем с одного из самых популярных сервисов, EC2, и используем его для запуска виртуального сервера.

Замечание о стоимости: Примеры в этой части руководства используют бесплатный уровень AWS, поэтому, если вы не исчерпали все свои кредиты и выполните очистку в соответствии с инструкциями, это не должно стоить вам ничего.

Сначала перейдите на EC2 Console и в правом верхнем углу выберите Огайо (us-east-2) в качестве используемого региона AWS (это относительно новый регион, который удобен для данного руководства):

Затем создайте пару ключей (Key Pair), которая позволит вам подключаться по SSH к вашему виртуальному серверу. Перейдите к и нажмите кнопку «Create Key Pair» (Создать пару ключей):

Придумайте уникальное имя для пары ключей и нажмите «Create Key Pair» (Создать пару ключей):

AWS сохранит открытый ключ и предложит вам сохранить закрытый ключ: обязательно сохраните закрытый ключ в надежном месте на вашем компьютере.

Затем перейдите на и нажмите кнопку «Launch Instances» (Запустить инстансы):

На следующей странице настройте свой инстанс EC2 следующим образом (примечание: интерфейс консоли AWS недавно объединил весь этот контент на одной странице; если вы все еще используете старый интерфейс консоли, он может быть распределен по нескольким страницам):

Добавьте тег Name (Имя). Это полезно, чтобы с первого взгляда понимать, для чего используется этот сервер.

Выберите Ubuntu в качестве AMI. AMI (Amazon Machine Image) определяет операционную систему и другое ПО, которое будет установлено на ваш виртуальный сервер. Для этого руководства я рекомендую выбрать AMI Ubuntu от Canonical, которая бесплатна в использовании и предоставляет отличную операционную систему Linux для экспериментов:

Выберите t2.micro в качестве типа инстанса. Тип инстанса определяет процессор, память, сетевые возможности и другое (виртуализированное) аппаратное обеспечение, которое будет доступно на вашем сервере, а также цену, которую вы будете платить за этот сервер (см. эту страницу для получения дополнительной информации). Для этого руководства я рекомендую выбрать t2.micro, который входит в бесплатный уровень AWS (возможно, он уже выбран для вас по умолчанию):

Выберите созданную ранее пару ключей (Key Pair). AWS добавит публичный ключ для выбранной вами пары ключей в файл known_hosts на вашем сервере, так что вы сможете подключаться к нему по SSH с помощью своего приватного ключа:

Создайте группу безопасности (security group), которая разрешает SSH-трафик. По умолчанию инстансы EC2 не разрешают никакой входящий или исходящий сетевой трафик. Группа безопасности — это брандмауэр, который контролирует, какой сетевой трафик может поступать на ваш сервер и уходить с него. Для этого руководства я рекомендую создать новую группу безопасности для вашего сервера, которая разрешает входящий трафик на порт 22 (порт SSH по умолчанию) со всех IP-адресов (0.0.0.0/0 в нотации CIDR). Обратите внимание, что для использования в продакшене вам потребуется гораздо сильнее ограничить SSH-доступ, но для этого простого и недолговечного учебного упражнения этого будет достаточно, и это упростит подключение по SSH к вашему серверу с вашего собственного компьютера:

Оставьте все остальные настройки по умолчанию и нажмите Launch Instance (Запустить инстанс). На следующей странице нажмите View All Instances (Просмотреть все инстансы), и вы увидите, как ваш новый сервер запускается:

Дайте ему минуту или около того на загрузку, затем нажмите на галочку слева от сервера и нажмите кнопку Connect (Подключиться). Вы должны увидеть инструкции по SSH:

Скопируйте пример команды, откройте терминал, перейдите в папку, где вы сохранили приватный ключ из вашей пары ключей, и выполните команду (обратите внимание, что если вы используете Windows, вам может потребоваться использовать SSH-клиент, такой как PuTTY):

Ваш SSH-клиент сообщит вам, что не может установить подлинность хоста, и спросит, хотите ли вы продолжить. Введите yes, и вы увидите примерно следующее:

Итак, теперь вы подключены к виртуальному серверу, работающему в AWS! Попробуйте выполнить такие команды, как ls или tree, или используйте apt-get install для установки и запуска любого нужного вам программного обеспечения (у вас есть права root как у пользователя ubuntu).

Когда вы закончите экспериментировать с сервером, чтобы очистить все (и убедиться, что вам случайно не выставят счет от AWS), вернитесь в , установите флажок слева от вашего инстанса, нажмите кнопку Instance State (Состояние инстанса) и выберите Terminate Instance (Завершить инстанс):

И вот так, вы теперь можете запустить и выключить виртуальный сервер в облаке за считанные минуты!

Развертывание кластера Kubernetes

Теперь вы увидели, как можно запустить базовые службы AWS в несколько кликов. Давайте теперь попробуем что-то более сложное и запустим кластер Kubernetes. Если вы не знакомы с Kubernetes, обязательно ознакомьтесь с частью 2 этой серии для краткого погружения. Самый простой способ запустить Kubernetes в AWS — использовать управляемый сервис Elastic Kubernetes Service (EKS) от Amazon. Давайте попробуем.

Примечание о стоимости: EKS не входит в бесплатный уровень AWS. Более того, рабочие ноды (worker nodes), которые вы развернете в этом руководстве, также не входят в бесплатный уровень AWS. Поэтому эта часть руководства может стоить вам денег, хотя и не слишком больших: по состоянию на июль 2022 года EKS стоит 0,10 доллара в час, а две рабочие ноды, которые вы запустите в этом руководстве, стоят около 0,01 доллара в час каждая, так что даже если вы запустите этот код на 4 часа, это все равно обойдется вам менее чем в 50 центов.

Первый шаг — создать две роли IAM: одну, чтобы дать контрольной плоскости (control plane) кластера Kubernetes разрешения на выполнение определенных вызовов API в вашем аккаунте AWS, и другую, чтобы дать рабочим нодам кластера разрешения на выполнение другого подмножества вызовов API. Чтобы создать роль IAM для контрольной плоскости, перейдите на страницу ролей IAM и нажмите Создать роль (Create Role):

Выберите «Служба AWS» (AWS service) в качестве типа доверенной сущности, выберите «EKS» в качестве варианта использования в выпадающем списке, а затем выберите переключатель «EKS — Cluster»:

Пару раз нажмите кнопку «Далее» (Next), введите имя для этой роли IAM, например aws-learning-eks-cluster-role, а затем нажмите «Создать роль» (Create Role):

Теперь пройдите тот же процесс во второй раз, чтобы создать роль IAM для рабочих нод. На этот раз выберите «Служба AWS» в качестве типа сущности и «EC2» в качестве варианта использования и нажмите «Далее» (Next):

На странице добавления разрешений вам потребуется добавить три политики:

  • AmazonEKSWorkerNodePolicy
  • AmazonEC2ContainerRegistryReadOnly
  • AmazonEKS_CNI_Policy

Работа с этой страницей немного неудобна: вам нужно ввести каждое из этих имен политик в поле фильтра, нажать Enter, установить флажок слева от политики, затем нажать «Очистить фильтры» (Clear Filters) и повторить процесс со следующим именем политики. В итоге у вас должно быть выбрано 3 политики:

Нажмите «Далее» (Next), введите имя для этой роли IAM, например aws-learning-eks-nodes-role, и нажмите «Создать роль» (Create Role):

После того как вы создали эти две роли IAM, вы можете перейти к использованию EKS для запуска полностью управляемой контрольной плоскости Kubernetes. Перейдите в консоль EKS, нажмите «Добавить кластер» (Add Cluster), а затем нажмите «Создать» (Create):

Введите имя кластера, например aws-learning, выберите созданную ранее роль IAM для контрольной плоскости (aws-learning-eks-cluster-role) в выпадающем списке роли службы кластера (Cluster Service Role) и нажмите «Далее» (Next):

Оставьте настройки сети и ведения журналов по умолчанию, еще несколько раз нажмите «Далее» (Next), а затем нажмите кнопку «Создать» (Create), чтобы создать контрольную плоскость:

AWS может потребоваться 5–10 минут на запуск контрольной плоскости, поэтому наберитесь терпения и подождите, пока статус не изменится с Creating (Создание) на Active (Активен).

Как только контрольная плоскость перейдет в статус Active, следующим шагом будет развертывание рабочих нод. EKS поддерживает несколько различных типов рабочих нод: в этом руководстве вы будете использовать управляемую группу нод (Managed Node Group), где AWS развертывает набор инстансов EC2 и управляет ими за вас. Перейдите на вкладку Compute (Вычислительные ресурсы) и нажмите кнопку Add Node Group (Добавить группу нод):

Введите имя группы нод, например aws-learning, выберите роль IAM, созданную для рабочих нод (aws-learning-eks-nodes-role), и нажмите «Далее» (Next):

На следующей странице используйте Amazon Linux 2 в качестве AMI, выберите t3.small в качестве типа инстанса и установите минимальный/максимальный/желаемый размер кластера равным двум (в идеале мы бы использовали t2.micro в качестве типа инстанса, так как он входит в бесплатный уровень AWS, но типы инстансов micro ограничены 4 ENIs, все из которых будут заняты системными службами Kubernetes (например, kube-proxy), не оставляя ресурсов для фактического развертывания каких-либо подов (Pods), поэтому наименьший тип инстанса, который работает с EKS, — это t3.small):

Оставьте все остальные настройки (включая сетевые настройки) по умолчанию, несколько раз нажмите «Далее» (Next) и нажмите «Создать» (Create), чтобы создать группу нод:

AWS может потребоваться 2–3 минуты на запуск рабочих узлов, поэтому наберитесь терпения и подождите, пока статус не изменится с Creating на Active.

Как только статус изменится на Active, вы сможете приступить к развертыванию приложений в вашем кластере Kubernetes, как описано ниже.

Развертывание приложений в кластере Kubernetes

Давайте теперь развернем то же самое приложение «Hello, World» из части 2 этой серии в кластере EKS. Первый шаг — настроить аутентификацию kubectl для кластера EKS, а не для вашего локального кластера Kubernetes, запущенного в Docker Desktop.

Для этого сначала установите aws CLI. Затем вам нужно выполнить аутентификацию в AWS из командной строки, используя сохраненные ранее учетные данные командной строки (Идентификатор ключа доступа, Секретный ключ доступа). Один из самых простых способов сделать это — настроить эти учетные данные с помощью переменных среды AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY (другие способы аутентификации в AWS из CLI см. здесь). Например, вот как это сделать в терминале Unix/Linux/macOS:

А вот как это сделать в командной строке Windows:

Примечание об аутентификации: Изначально EKS предоставляет доступ к кластеру EKS исключительно тому объекту IAM, который его создал, и никому больше. Поэтому, когда вы только начинаете работать с кластером, вы должны пройти аутентификацию в командной строке как тот же самый объект IAM*, который вы использовали в консоли AWS Web Console (после аутентификации вы можете предоставить доступ другим пользователям): например, если при создании кластера EKS в консоли вы выполняли аутентификацию как пользователь IAM, вам нужно выполнить аутентификацию в командной строке как тот же самый пользователь IAM; если вы использовали MFA в консоли, вы должны использовать MFA в командной строке; если вы использовали SSO в консоли, вы должны использовать SSO в командной строке и т. д. Если есть хоть малейшее различие в способе аутентификации, приведенные ниже команды kubectl не будут работать и выдадут примерно такую ошибку:* error: You must be logged in to the server (Unauthorized).

Теперь вы можете использовать команду aws eks update-kubeconfig для автоматического обновления файла $HOME/.kube/config для аутентификации в вашем кластере EKS. Базовый вид команды:

Где REGION — это регион AWS, в который вы выполнили развертывание, а EKS_CLUSTER_NAME — имя вашего кластера EKS. В начале учебного руководства вы выбрали Огайо в качестве региона, который использует идентификатор us-east-2. Следовательно, для аутентификации в кластере EKS с именем aws-learning нужно выполнить:

Чтобы проверить, работает ли всё, используйте команду get nodes для изучения вашего кластера EKS:

Если всё работает, вы должны увидеть два рабочих узла, развернутых в группе узлов.

Теперь вы можете использовать файлы deployment.yml и service.yml из части 2 этой серии для развертывания приложения «Hello, World» в вашем кластере EKS:

Через несколько секунд используйте команду get deployments для проверки статуса развертывания (Deployment):

Затем выполните get pods, чтобы посмотреть Pods:

Как и ожидалось, запущены два Pods. Выполните get services, чтобы посмотреть Service:

Скопируйте значение EXTERNAL-IP для simple-webapp и протестируйте его с помощью curl или веб-браузера:

Вот и всё! Ваше приложение, упакованное в Docker, работает в полностью управляемом кластере Kubernetes в AWS, а балансировщик нагрузки распределяет трафик между двумя репликами приложения.

Когда вы закончите эксперименты, обязательно выполните очистку, чтобы AWS не продолжала взимать плату за кластер EKS и рабочие узлы. Сначала завершите работу рабочих узлов, перейдя на вкладку Compute в кластере EKS, установив переключатель слева от группы узлов и нажав кнопку Delete. После завершения этой операции нажмите кнопку Delete Cluster в верхней части страницы:

Дополнительное чтение

Этот интенсив дает лишь поверхностное представление об AWS. Есть множество других вещей, которые стоит изучить: десятки других сервисов AWS (например, VPC, S3, ELB, RDS и т. д.), лучшие практики AWS (например, Well Architected, CIS AWS Foundations Benchmark и т. д.), функции EKS, которые вам понадобятся для использования в продакшене (например, контроллеры ingress, шифрование секретов, группы безопасности, аутентификация OIDC, сопоставление RBAC, VPC CNI, kube-proxy, CoreDNS и т. д.), и многое другое. Если вы хотите углубить свои знания, вот несколько рекомендуемых ресурсов:

  • Библиотека инфраструктуры как кода Gruntwork: готовые, коммерчески поддерживаемые и обслуживаемые модули для настройки сервисов AWS для продакшена, включая модули продакшн-уровня для EKS, EC2, ELB, RDS, VPC и многого другого.
  • Продкшн-фреймворк Gruntwork: четкий пошаговый фреймворк для успешного выхода в продакшен в публичном облаке.
  • Как построить архитектуру продакшн-уровня End-to-End на AWS: пошаговое руководство по современной архитектуре продакшн-уровня для AWS, включающей Kubernetes, AWS VPC, хранилища данных, CI/CD, управление секретами и многое другое.
  • AWS Training: учебные программы и сертификаты, созданные AWS.
  • Курсы AWS на edX: бесплатные онлайн-курсы от самой компании AWS.
  • Открытое руководство по Amazon Web Services: бесплатное руководство по AWS с открытым исходным кодом, созданное инженерами, которые используют AWS, и для них же.
  • Terraform: Up & Running. Большая часть контента из этой серии блог-постов взята из 3-го издания этой книги.

Заключение

Теперь вы увидели, как использовать AWS для развертывания инстансов EC2 и даже кластера Kubernetes. Но все эти развертывания вы выполнили вручную, кликая по консоли AWS (ClickOps), что отлично подходит для обучения и тестирования, но имеет много недостатков для продакшена: это медленно, подвержено ошибкам и сложно воспроизводимо, проверяемо или тестируемо. Давайте теперь перейдем к части 4 этой серии, где вы узнаете, как решить эти проблемы с помощью Terraform для развертывания и управления всей вашей инфраструктурой как кодом.

← Все статьи

Ещё в разделе «Облака и инфраструктура»

Все →
Новый навык обнаруживает риски ИИ-агентов, устраняет их и доказывает эффективность исправлений
Microsoft

Новый навык обнаруживает риски ИИ-агентов, устраняет их и доказывает эффективность исправлений

Сообщества вокруг дата-центров Amazon: что происходит рядом с центрами обработки данных по всей территории США
Amazon

Сообщества вокруг дата-центров Amazon: что происходит рядом с центрами обработки данных по всей территории США

Приложение GitHub Copilot для начинающих: как создавать собственные рабочие процессы с помощью холстов
GitHub Actions

Приложение GitHub Copilot для начинающих: как создавать собственные рабочие процессы с помощью холстов

Microsoft объединяет бизнес-ИИ в единое приложение в попытке конкурировать с AnthropicПресса
Microsoft

Microsoft объединяет бизнес-ИИ в единое приложение в попытке конкурировать с Anthropic

Повышение производительности сайта за счет отправки большего объема CSS
GitHub Actions

Повышение производительности сайта за счет отправки большего объема CSS

От Opus 5 к Opus 5.5: более качественные исправления при снижении затрат на 58% в SonarQube Remediation Agent
SonarSource

От Opus 5 к Opus 5.5: более качественные исправления при снижении затрат на 58% в SonarQube Remediation Agent

Ещё от Gruntwork

Gruntwork Blog | Terragrunt: Более быстрые запуск с пулом воркеров и кэшированием провайдеров
Gruntwork

Gruntwork Blog | Terragrunt: Более быстрые запуск с пулом воркеров и кэшированием провайдеров

Управление секретами в вашем коде Terraform
Gruntwork

Управление секретами в вашем коде Terraform

5 лет Gruntwork: от старта с нуля до $4,5 млн ARR
Gruntwork

5 лет Gruntwork: от старта с нуля до $4,5 млн ARR

Код инфраструктуры: 5 уроков из 300 000 строк
Gruntwork

Код инфраструктуры: 5 уроков из 300 000 строк

5 лет Gruntwork: от самофинансирования до $4,5 млн ARR
Gruntwork

5 лет Gruntwork: от самофинансирования до $4,5 млн ARR