Управление AWS VPC с помощью aws-cli
На этой странице
- Предварительные условия
- Что будем делать?
- Проверьте клиентский интерфейс aws и экспортируйте доступ и секретный ключ aws на свой локальный компьютер.
- Управление VPC с помощью aws-cli
- Заключение
Управление VPC и другими ресурсами, такими как подсеть, таблица маршрутов, интернет-шлюз, с терминала с помощью aws-cli может быть немного запутанным, если вы плохо разбираетесь в VPC. В этой статье мы создадим VPC с 2 подсетями, таблицей маршрутов и интернет-шлюзом, эти подсети будут общедоступными. После создания VPC мы попытаемся подключиться к инстансу EC2, созданному в этом VPC. Цель этой статьи — познакомить вас с командами, используемыми для управления VPC из терминала.
Рекомендуется сначала очень хорошо понять VPC, в этой статье основное внимание уделяется не объяснению VPC. Чтобы узнать об операциях, которые можно выполнять в VPC, посетите официальную документацию здесь.
Предпосылки
- Аккаунт AWS (создайте, если у вас его нет).
- Основное понимание VPC (здесь вы узнаете, как создать VPC из консоли AWS).
- Пользователь AWS IAM, создайте пользователя IAM).
- AWS CLI установлен на вашем локальном компьютере.
- Основные сведения об инстансе EC2 (нажмите здесь, чтобы узнать, как создать инстанс EC2 в Ubuntu)
Что мы будем делать?
- Проверьте aws cli и экспортируйте доступ и секретный ключ AWS на свой локальный компьютер.
- Управление 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 таблицей маршрутов, интернет-шлюзом и маршрутом к интернет-шлюзу из таблицы маршрутов. Мы также увидели, что экземпляр, созданный в любой из подсетей, делает экземпляр общедоступным, поскольку обе подсети являются общедоступными подсетями.