Beheer AWS VPC met aws-cli

Het beheren van een VPC en andere middelen zoals Subnet, Route Tabel, Internet Gateway vanaf de terminal met aws-cli kan een beetje verwarrend zijn als je niet goed bent in VPC. In dit artikel zullen we een VPC aanmaken met 2 Subnets, Route Table, en Internet Gateway, deze subnets zullen publieke subnets zijn. Nadat de VPC is aangemaakt, zullen we proberen verbinding te maken met de in deze VPC aangemaakte EC2 instantie. Het doel van dit artikel is je kennis te laten maken met de commando’s die gebruikt worden om VPC vanaf de terminal te beheren.

Het is aan te raden eerst de VPC goed te begrijpen, de nadruk van dit artikel ligt niet op het uitleggen van de VPC. Om de bewerkingen te kennen die op VPC kunnen worden uitgevoerd, bezoek je de officiële documentatie hier.

Pre-requisites

  1. AWS Account(Maak aan als je er geen hebt).
  2. Basiskennis van VPC(Klikhier om te leren hoe je een VPC maakt vanuit de AWS Console).
  3. AWS IAM gebruiker metAmazonVPCFullAccess beleid eraan gekoppeld en zijn toegangs- en geheime sleutels (Klik hier om te leren een IAM gebruiker te maken ).
  4. AWS CLI geïnstalleerd op je lokale machine.
  5. Basiskennis van EC2 Instance (Klikhier om te leren een Ubuntu EC2 Instance te maken)

Wat zullen we doen?

  1. Controleer aws cli en exporteer de AWS access & secret key op je lokale machine.
  2. VPC beheren met aws cli.

Controleer aws cli en exporteer aws access & secret key op je lokale machine.

Als je het hulpprogramma aws-cli niet op je machine geïnstalleerd hebt, raadpleeg dan de officiële documentatie hier om het op je lokale machine te installeren en controleer dan de versie ervan met het volgende commando.

aws --version

Als je het volgende commando uitvoert, krijg je een foutmelding omdat je de toegang tot je AWS account niet in de terminal hebt geconfigureerd.

aws sts get-caller-identity

Exporteer AWS IAM gebruikerstoegang en geheime sleutels op je terminal met de volgende commando’s.

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

Deze keer kun je je identiteit controleren door het volgende commando uit te voeren

aws sts get-caller-identity

VPC beheren met aws-cli

Maak een VPC met het volgende commando, er wordt geen standaard VPC gemaakt. 10.0.0.0/16 wordt de CIDR voor de VPC die gemaakt zal worden. Je kunt een geldige CIDR naar eigen keuze en behoefte opgeven.

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

Maak VPC

Let op de VpcId in de bovenstaande schermafbeelding. Je zult in je uitvoer een andere VpcId zien. Noteer het VpcId, we zullen het nodig hebben in de volgende stappen.

Om alle VPC’s uit je huidige regio te beschrijven, voer je het volgende commando uit.

aws ec2 describe-vpcs

Door het VpcId te specificeren, kun je de specifieke VPC beschrijven

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

Laten we nu 2 Subnets aanmaken in de VPC die we gemaakt hebben. Hierbij moeten beide Subnets unieke CIDR blokken in de VPC hebben.

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

Subnetten maken

Om Subnets Public te maken, moeten we een Internet Gateway maken

aws ec2 create-internet-gateway

Koppel de Internet Gateway aan de VPC die we eerder maakten.

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

Maak een Internet gateway

Laten we nu een Route Tabel maken.

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

Verbind de Route tabel met de beide Subnets

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

Route tabel maken

Door een Route aan te maken van de Route tabel naar de Internet Gateway worden de Subnets die met de Route Tabel geassocieerd zijn openbaar

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

Kreta Route

We hebben nu een VPC met 2 Subnets, 1 Routetabel, en een route van Routetabel naar Internet Gateway.

Als we een EC2 instantie in deze VPC maken en een van de Subnets, zal de instantie publiek bereikbaar zijn vanaf het Internet. Raadpleeg het document dat in de eerste vereiste genoemd wordt om te leren hoe je een Ubuntu EC2 instance maakt. Geef tijdens het maken van een instantie de VPC op die we zojuist gemaakt hebben.

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 [email protected]

Verbind met EC2

Conclusie

In dit artikel zagen we de stappen om een VPC te maken met 2 Subnets, 1 Route Table, Internet Gateway, en een route naar de Internet Gateway vanuit de Route Table. We zagen ook dat de instantie die in een van de Subnets gemaakt wordt de instantiepubliekelijk beschikbaar omdat de beide subnets Public Subnets zijn.