Die Verwaltung einer VPC und anderer Ressourcen wie Subnetz, Routing-Tabelle, Internet-Gateway über das Terminal mit aws-cli kann etwas verwirrend sein, wenn Sie nicht gut mit VPC umgehen können. In diesem Artikel erstellen wir eine VPC mit 2 Subnetzen, Routing-Tabelle und Internet-Gateway, diese Subnetze sind öffentliche Subnetze. Nachdem die VPC erstellt wurde, versuchen wir, eine Verbindung zu der EC2-Instanz herzustellen, die in dieser VPC erstellt wurde. Das Ziel dieses Artikels ist es, Ihnen die Befehle vorzustellen, die zum Verwalten von VPC vom Terminal aus verwendet werden.
Es wird empfohlen, die VPC zunächst sehr gut zu verstehen, der Fokus dieses Artikels liegt nicht auf der Erklärung der VPC. Informationen zu Vorgängen, die auf VPC ausgeführt werden können, finden Sie hier in der offiziellen Dokumentation.
Voraussetzungen
- AWS-Konto (erstellen, falls Sie noch keines haben).
- Grundlegendes Verständnis von VPC (Klicken Sie hier, um zu erfahren, wie Sie eine VPC über die AWS-Konsole erstellen).
- AWS-IAM-Benutzer mit angehängter AmazonVPCFullAccess-Richtlinie und seinen Zugriffs- und Geheimschlüsseln (Klicken Sie hier, um zu erfahren, wie Sie einen IAM-Benutzer erstellen).
- AWS CLI auf Ihrem lokalen Computer installiert.
- Grundlegendes Verständnis der EC2-Instanz (Klicken Sie hier, um zu erfahren, wie Sie eine Ubuntu EC2-Instanz erstellen)
Was werden wir tun?
- Überprüfen Sie aws CLI und exportieren Sie den AWS-Zugriff und den geheimen Schlüssel auf Ihrem lokalen Computer.
- VPC mit aws CLI verwalten.
Überprüfen Sie aws cli und exportieren Sie aws access &secret key auf Ihrem lokalen Computer.
Wenn Sie das Dienstprogramm aws-cli nicht auf Ihrem Computer installiert haben, lesen Sie die offizielle Dokumentation hier, um es auf Ihrem lokalen Computer zu installieren, und überprüfen Sie dann die Version davon mit dem folgenden Befehl.
aws --version
Wenn Sie den folgenden Befehl ausführen, erhalten Sie eine Fehlermeldung, da Sie den Zugriff auf Ihr AWS-Konto im Terminal nicht konfiguriert haben.
aws sts get-caller-identity
Exportieren Sie den AWS IAM-Benutzerzugriff und die geheimen Schlüssel auf Ihrem Terminal mit den folgenden Befehlen.
export AWS_ACCESS_KEY_ID=<aws-user-access-key>
export AWS_SECRET_ACCESS_KEY=<aws-user-secret-key>
Diesmal können Sie Ihre Identität überprüfen, indem Sie den folgenden Befehl ausführen
aws sts get-caller-identity
VPC mit aws-cli verwalten
Erstellen Sie eine VPC mit dem folgenden Befehl, es wird keine Standard-VPC erstellt. 10.0.0.0/16 ist die CIDR für die zu erstellende VPC. Sie können eine gültige CIDR nach Ihrer Wahl und Anforderung angeben.
aws ec2 create-vpc --cidr-block 10.0.0.0/16
Beachten Sie die VpcId im obigen Screenshot. In Ihrer Ausgabe wird eine andere VpcId angezeigt. Notieren Sie sich die VpcId, wir benötigen sie in den nächsten Schritten.
Führen Sie den folgenden Befehl aus, um alle VPCs aus Ihrer aktuellen Region zu beschreiben.
aws ec2 describe-vpcs
Durch Angabe der VpcId können Sie die spezifische VPC beschreiben
aws ec2 describe-vpcs --vpc-ids vpc-03c4278f3b75efd77
Lassen Sie uns nun 2 Subnetze in der von uns erstellten VPC erstellen. Hier müssen beide Subnetze eindeutige CIDR-Blöcke in der VPC haben.
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
Um Subnetze öffentlich zu machen, müssen wir ein Internet-Gateway erstellen
aws ec2 create-internet-gateway
Verbinden Sie das Internet-Gateway mit der zuvor erstellten VPC.
aws ec2 attach-internet-gateway --internet-gateway-id igw-04f1e4f13f92599c3 --vpc-id vpc-03c4278f3b75efd77
Lassen Sie uns nun eine Routing-Tabelle erstellen.
aws ec2 create-route-table --vpc-id vpc-03c4278f3b75efd77
Verknüpfen Sie die Routing-Tabelle mit beiden Subnetzen
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
Das Erstellen einer Route von der Routing-Tabelle zum Internet-Gateway macht die mit der Routing-Tabelle verknüpften Subnetze öffentlich
aws ec2 create-route --route-table-id rtb-0878d652f460dbf50 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-04f1e4f13f92599c3
Wir haben jetzt eine VPC mit 2 Subnetzen, 1 Routing-Tabelle und einer Route von der Routing-Tabelle zum Internet-Gateway.
Wenn wir eine EC2-Instanz in dieser VPC und einem der Subnetze erstellen, ist die Instanz öffentlich über das Internet erreichbar. Informationen zum Erstellen einer Ubuntu EC2-Instance finden Sie in dem in der Voraussetzung genannten Dokument. Geben Sie beim Erstellen einer Instanz die gerade erstellte VPC an.
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]
Schlussfolgerung
In diesem Artikel haben wir die Schritte zum Erstellen einer VPC mit 2 Subnetzen, 1 Routing-Tabelle, Internet-Gateway und einer Route zum Internet-Gateway aus der Routing-Tabelle gesehen. Wir haben auch gesehen, dass die in einem der Subnetze erstellte Instanz die Instanz öffentlich macht verfügbar, da beide Subnetze öffentliche Subnetze sind.