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

© 2026 · All rights reserved.

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

Источник: Gruntwork

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

Источник: Gruntwork

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

25 сентября 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 и так далее.

Все эти сервисы предлагают оплату по факту использования (pay-as-you-go). Например, EC2 позволяет арендовать виртуальные серверы всего за 0,0059 долл. в час; также существует щедрый бесплатный уровень (free tier). Более того, большинство сервисов являются эластичными, что означает возможность быстрого масштабирования вверх или вниз: например, при скачке трафика вы можете запустить сотни экземпляров 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, известные как управляемые политики (Managed Policies).

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

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

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

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

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

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

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

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

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

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

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

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

Затем перейдите на страницу экземпляров (instances) в консоли EC2 и нажмите кнопку Launch Instances:

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

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

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

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

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

Создайте группу безопасности, которая разрешает 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) вернитесь на страницу инстансов в консоли EC2, установите флажок слева от вашего инстанса, нажмите кнопку 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: одна для предоставления плоскости управления кластера 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:

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

  • 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 сетевыми интерфейсами (ENI), все из которых будут заняты системными службами Kubernetes (например, kube-proxy), не оставляя ресурсов для фактического развертывания каких-либо подов, поэтому наименьшим типом инстанса, который работает с 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 из командной строки, используя сохраненные ранее учетные данные командной строки (Access Key ID, Secret Access Key). Один из самых простых способов сделать это — настроить эти учетные данные с помощью переменных окружения 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:

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

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

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

Затем выполните get 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, которые вам понадобятся для использования в producción (например, контроллеры ingress, шифрование секретов, группы безопасности, аутентификация OIDC, сопоставление RBAC, VPC CNI, kube-proxy, CoreDNS и т. д.) и многое другое. Если вы хотите углубить свои знания, вот несколько рекомендуемых ресурсов:

  • Библиотека基础设施 как код Gruntwork (Infrastructure as Code Library): Готовые, коммерчески поддерживаемые и обслуживаемые модули для настройки сервисов AWS для production, включая модули промышленного уровня для EKS, EC2, ELB, RDS, VPC и многое другое.
  • Продкшн-фреймворк Gruntwork (Production Framework): Четкий пошаговый фреймворк для успешного выхода в production в публичном облаке.
  • Как построить сквозную архитектуру production-уровня в AWS (How to Build an End to End Production-Grade Architecture on AWS): Экскурсия по современной архитектуре production-уровня для AWS, включающей Kubernetes, AWS VPC, хранилища данных, CI/CD, управление секретами и многое другое.
  • Обучение AWS (AWS Training): Учебные программы и сертификаты, созданные AWS.
  • Курсы AWS на edX (AWS edX courses): Бесплатные онлайн-курсы от самой AWS.
  • Открытое руководство по Amazon Web Services (The Open Guide to Amazon Web Services): Бесплатное руководство по AWS с открытым исходным кодом, созданное инженерами, которые используют AWS, и для них.
  • Terraform: Up & Running. Большая часть материалов из этой серии публикаций взята из 3-го издания этой книги.

Заключение

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

← Все статьи