Um die Aufgaben zu erfüllen, brauchst Zugriff auf einen AWS Account. Du solltest aus den vorherigen Kapiteln bereits Zugriff zu einem Account haben.
Außerdem solltest du den hier erstellten Code in einem Git Repository pflegen. Bitte erstelle für die einzelnen Aufgaben jeweils Merge Requests und weise diese deinem Mentor zu.
Provider
ist AWSinput
kann die AWS Region
angegeben werdeneu-west-1
anFüge zu deinem Modul das managen eines VPC hinzu. Das VPC soll jeweils 3 Public und 3 Private Subnetze (je eines für 1 AZ) aber nur 1 public NAT Gateway haben. Die 3 Private Subnetze sollen Internet Zugriff haben.
Erweitere dein Terraform modul um einen input
mit type map
und dem Namen ec2_instances
, welcher folgendes Schema aufweist:
{
"name1" = {
instance_type = <ec2_instance_type>
disk_size = <disk_size>
}
}
Stelle sicher, dass man bei instance_type
nur t3
und t3a
Instanzen konfigurieren kann und dass es die Instanztypen auch wirklich gibt. Aus der ec2_instances
configmap werden mehrere EC2 Instanzen erstellt und die entsprechenden Konfigurationsparameter für instance_type
und disk_size
unterstützt. Verwende ein Amazon Linux 2 AMI und starte die Instanzen in einem Private Subnet des zuvor erstellten VPCs.
Da dein Modul das Konfigurieren von unterschiedlichen Regionen erlaubt, sollte die richtige AMI ID automatisch ausgewählt werden. Du kannst dafür die aws_ami Show archive.org snapshot datasource verwenden.
Füge eine neue Role hinzu, die eine Policy erhält damit du den
SSM Session Manager
Show archive.org snapshot
verwenden kannst. Außerdem erstellst du eine Policy, die r/w
Zugriff auf das zuvor erstellte S3 Bucket erlaubt und weist sie der Role zu. Die Role soll an die von dir erstellten EC2 Instanzen zugewiesen werden.
Anschließend verbindest du dich per SSM auf deine Instanzen und testest den S3 Zugriff mit der aws-cli
.
Deprovisioniere deine Infrastruktur mit terraform destroy
.