Wenn Sie wie ich sind, haben Sie einige Hobbyprojekte, die Sie auf AWS (Amazon Web Services) ausführen. Normalerweise führe nur ich diese Projekte aus. Es ist also völlig in Ordnung, sich bei der AWS-Web-Konsole anzumelden und auf Schaltflächen zu klicken, um neue Ressourcen zu erstellen. Ich bin nur eine Person, die nur mir selbst gegenüber rechenschaftspflichtig ist. Wenn ich vergesse, wie ich etwas eingerichtet habe, oder einen Fehler mache, steht nicht viel auf dem Spiel.
Warum IaC?
Abseits meiner bequemen Couch sind die Bedürfnisse eines Unternehmens so unterschiedlich, umso mehr in der FinTech-Welt (Finanztechnologie). Rechenschaftspflicht ist äußerst wichtig, ebenso wie wiederholbare Prozesse und Personalentlassungen. Wenn ich krank bin oder einen Urlaubstag genieße, sollte keiner meiner Kollegen jemals in eine Situation geraten, in der er mich anrufen möchte, um zu fragen, wie etwas eingerichtet wurde. Und wenn die Saison der freiwilligen Prüfungen vor der Tür steht, fordern unsere Drittanbieter alle Arten von Protokollen und Nachweisen an, dass diese Systeme vorhanden und lückenlos sind. Stellen Sie unseren Helden in diesem Beitrag vor, eine Praxis bekannt als Infrastruktur als Code- (IaC, „Auge-auge-see“). In IaC drücken wir all die Dinge, die wir sonst von Hand tun könnten, in Code aus. Jetzt kann jeder Ingenieur im Unternehmen (oder ein Prüfer:in) in der Codebasis nachschauen und genau verstehen, wie etwas funktioniert und, wenn ich meinen Code gut dokumentiert habe, warum er so funktioniert.
Welcher Iac?
Es gibt viele IaC-Optionen — CloudFormation und Chef, um nur einige zu nennen, und die, die wir für den Einsatz bei FloQast ausgewählt haben, ist Terraform. Es ist ein Schwergewicht in dem Bereich, der auch von Unternehmen wie Slack und Instacart genutzt wird. Wir lieben es, weil es Open Source und unabhängig von der öffentlichen Cloud ist und über leistungsstarke Anbieter verfügt, mit denen wir viele Dinge verwalten, die nicht von AWS stammen! Vielleicht habe ich jetzt Ihr Interesse geweckt und Sie möchten Terraform testen. Das einfache Beispiel unten verwendet Terraform, um eine EC2-Instance in Ihrem AWS-Konto mit einem EBS-Volume (persistenter Speicher) zu starten.
Eine Demo
Zuerst wirst du wollen installiere Terraform, haben Sie ein AWS-Konto und erstellen Sie auf Ihrem lokalen Computer ein temporäres Verzeichnis mit einer Datei, die wir benennen test.tf
. Fügen Sie den folgenden Inhalt in diese Datei ein:
# You can generate the access_key and secret_key below in your AWS account -> IAM -> Users.
# See https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/ for help
provider "aws" {
region = "us-west-2"
access_key = "AKIA..."
secret_key = "..."
}
variable "aws_amazonlinux_ami_id" {
type = "string"
default = "ami-0c13873ede4682a27"
}
resource "aws_instance" "web" {
ami = "${var.aws_amazonlinux_ami_id}"
availability_zone = "us-west-2a"
instance_type = "t1.micro"
tags = {
Name = "Terraform-Test"
}
}
resource "aws_ebs_volume" "example" {
availability_zone = "us-west-2a"
size = 10 # Ten GBs
}
# Attaches the two resources created above, the EC2 instance and the EBS volume
resource "aws_volume_attachment" "ebs_att" {
device_name = "/dev/sdh"
volume_id = "${aws_ebs_volume.example.id}"
instance_id = "${aws_instance.web.id}"
}
Hier ist ein Screenshot von mir, wie ich diese Terraform in einem Terminalfenster ausführe, beschleunigt zu Ihrem Vergnügen:

Hier ist, was passiert. Ich renne:
Terraform Init
um Terraform im Verzeichnis unseres kleinen Projekts zu initialisieren. Es geht und lädt den AWS-Anbieter herunter, der in der ersten Zeile ohne Kommentar in unserem obigen Beispielcode deklariert ist.Terraform-Plan
um zu sehen, welche Maßnahmen sie zu ergreifen gedenkt. Wenn das gut aussieht, tippe ichJa
und drücken Sie die Eingabetaste, und die Ressourcen werden in meinem AWS-Konto erstellt.Terraform zerstören
wenn wir bereit sind, unser Projekt abzureißen. WiePlanen
, es schlägt seine Absichten vor und wenn ich entscheide, dass sie gut aussehen, antworte ich mitJa
.
Und das war's für heute! Ich hoffe, diese einfache Terraform-Demo zeigt, wie einfach IaC sein kann, und ist vielleicht sogar der Anstoß, den einige von uns brauchen, um unsere Hobbyprojekte in den Code zu überführen... Setze deine Terraform-Reise fort, indem du in ihre Offizielles Handbuch für die ersten Schritte.