Поиск по сайту:

Управление AWS VPC с помощью aws-cli


На этой странице

  1. Предварительные условия
  2. Что будем делать?
  3. Проверьте клиентский интерфейс aws и экспортируйте доступ и секретный ключ aws на свой локальный компьютер.
  4. Управление VPC с помощью aws-cli
  5. Заключение

Управление VPC и другими ресурсами, такими как подсеть, таблица маршрутов, интернет-шлюз, с терминала с помощью aws-cli может быть немного запутанным, если вы плохо разбираетесь в VPC. В этой статье мы создадим VPC с 2 подсетями, таблицей маршрутов и интернет-шлюзом, эти подсети будут общедоступными. После создания VPC мы попытаемся подключиться к инстансу EC2, созданному в этом VPC. Цель этой статьи — познакомить вас с командами, используемыми для управления VPC из терминала.

Рекомендуется сначала очень хорошо понять VPC, в этой статье основное внимание уделяется не объяснению VPC. Чтобы узнать об операциях, которые можно выполнять в VPC, посетите официальную документацию здесь.

Предпосылки

  1. Аккаунт AWS  (создайте, если у вас его нет).
  2. Основное понимание VPC (здесь вы узнаете, как создать VPC из консоли AWS).
  3. Пользователь AWS IAM, создайте пользователя IAM).
  4. AWS CLI установлен на вашем локальном компьютере.
  5. Основные сведения об инстансе EC2 (нажмите здесь, чтобы узнать, как создать инстанс EC2 в Ubuntu)

Что мы будем делать?

  1. Проверьте aws cli и экспортируйте доступ и секретный ключ AWS на свой локальный компьютер.
  2. Управление VPC с помощью aws cli.

Проверьте aws cli и экспортируйте доступ и секретный ключ aws на свой локальный компьютер.

Если на вашем компьютере не установлена утилита aws-cli, обратитесь к официальной документации здесь, чтобы установить ее на свой локальный компьютер, а затем проверьте ее версию с помощью следующей команды.

aws --version

Если вы выполните следующую команду, вы получите сообщение об ошибке, поскольку вы не настроили доступ к своей учетной записи AWS в терминале.

aws sts get-caller-identity

Экспортируйте пользовательский доступ и секретные ключи AWS IAM на свой терминал с помощью следующих команд.

export AWS_ACCESS_KEY_ID=<aws-user-access-key>
export AWS_SECRET_ACCESS_KEY=<aws-user-secret-key>

На этот раз вы можете проверить свою личность, выполнив следующую команду

aws sts get-caller-identity

Управление VPC с помощью aws-cli

Создайте VPC с помощью следующей команды, она не создаст VPC по умолчанию. 10.0.0.0/16 будет CIDR для создаваемого VPC. Вы можете указать действительный CIDR по своему выбору и требованию.

aws ec2 create-vpc --cidr-block 10.0.0.0/16

Обратите внимание на VpcId на скриншоте выше. В выходных данных вы увидите другой идентификатор VpcId. Запишите VpcId, он понадобится нам на следующих шагах.

Чтобы описать все VPC из вашего текущего региона, выполните следующую команду.

aws ec2 describe-vpcs

Указав VpcId, вы можете описать конкретное VPC

aws ec2 describe-vpcs --vpc-ids vpc-03c4278f3b75efd77

Теперь давайте создадим 2 подсети в созданном нами VPC. Здесь обе подсети должны иметь уникальные блоки CIDR в VPC.

aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.1.0/24
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.2.0/24

Чтобы сделать подсети общедоступными, нам нужно создать интернет-шлюз.

aws ec2 create-internet-gateway

Подключите интернет-шлюз к VPC, который мы создали ранее.

aws ec2 attach-internet-gateway --internet-gateway-id igw-04f1e4f13f92599c3 --vpc-id vpc-03c4278f3b75efd77

Теперь давайте создадим таблицу маршрутов.

aws ec2 create-route-table --vpc-id vpc-03c4278f3b75efd77

Свяжите таблицу маршрутов с обеими подсетями

aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0748ef7a26aefc7cc
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0375b656eb64962e8

Создание маршрута из таблицы маршрутов к интернет-шлюзу сделает общедоступными подсети, связанные с таблицей маршрутов.

aws ec2 create-route --route-table-id rtb-0878d652f460dbf50 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-04f1e4f13f92599c3

Теперь у нас есть VPC с 2 подсетями, 1 таблицей маршрутов и маршрутом от таблицы маршрутов к интернет-шлюзу.

Если мы создадим экземпляр EC2 в этом VPC и любой из подсетей, экземпляр будет общедоступен из Интернета. Обратитесь к документу, указанному в предварительных требованиях, чтобы научиться создавать экземпляр Ubuntu EC2. При создании экземпляра укажите только что созданный VPC.

aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep VpcId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep SubnetId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep PublicIpAddress
ssh -i ~/Downloads/aws-cli.pem 

Заключение

В этой статье мы рассмотрели шаги по созданию VPC с 2 подсетями, 1 таблицей маршрутов, интернет-шлюзом и маршрутом к интернет-шлюзу из таблицы маршрутов. Мы также увидели, что экземпляр, созданный в любой из подсетей, делает экземпляр общедоступным, поскольку обе подсети являются общедоступными подсетями.