Terraformは、「Infrastructure as Code(IaC)」ツールです。安全で繰り返し可能なインフラストラクチャを構築、管理、変更するために使用されます 方法。
これは、人間が読める自動展開のために、HashiCorp構成言語(HCL)と呼ばれる構成言語で環境を管理するために使用されます。
Terraformを使用して、AWS、GCPなどの複数のクラウド上のインフラストラクチャを管理できます。 Terraformは、リソース構成の信頼できる情報源である状態ファイルを作成します。これは、リソースが作成されるたびに、この状態ファイルが作成中のリソースの状態で更新されることを意味します。
この記事では、UbuntuにTerraformをインストールし、それを使用してAWSクラウドにVPCを作成する手順を説明します。
Terraformの詳細については、ここをクリックしてください。
前提条件
- AWSアカウント(アカウントがない場合は作成します)。
- EC2インスタンス(EC2インスタンスの作成方法については、ここをクリックしてください)
- サーバーへのルートアクセス。
- AWSIAMユーザーの「access_key」と「secret_key」。 (AWSで「access_key」と「secret_key」を使用してIAMユーザーを作成する方法については、ここをクリックしてください)
何をするか
- Terraformをインストールする
- Terraform構成ファイルを作成します。
- Terraform構成ファイルを使用してVPCを作成する
- Terraformを使用して作成されたVPCを削除します
Terraformをインストール
Terraformのインストールは非常に簡単で簡単です。ここから、システムに適したパッケージを見つけることができます。
ファイルをダウンロードする前に、次のコマンドを使用して、システムで使用できない場合は「wget」および「unzip」パッケージをインストールしましょう。
apt-get update -y
apt-get install wget unzip -y
cd / opt /
mkdir terraform
cd terraform /
「wget」コマンドを使用してterraformパッケージをダウンロードし、解凍します。
wget https://releases.hashicorp.com/terraform/0.12.18/terraform_0.12.18_linux_amd64.zip
unzip terraform_0.12.18_linux_amd64.zip
ls -lt
ダウンロードしたパッケージを解凍すると、バイナリの「テラフォーム」が表示されます。このバイナリを/usr/ local /bin/に移動します。
インストールが成功したかどうかを確認するには、terraformコマンドを使用しますが、バージョンを確認します。
mv terraform / usr / local / bin /
terraform -v
Terraform構成ファイルの書き込み
テラフォーム構成ファイルを作成できる専用ディレクトリを作成します
mkdir terraform
cd terraform /
任意のエディターを使用し、次の構成をコピーして貼り付けて、variables.tf、terraform.tfvars、およびmain.tfを作成します
AWSへのVPCの作成を担当する「main.tf」を作成します。次の構成では、VPC、インターネットゲートウェイ、ルートテーブル、アベイラビリティーゾーン、セキュリティグループが作成されます。このmain.tfは、variables.tfとterraform.tfvarsから変数の値を読み取ります。
vim main.tf
provider "aws" {
region = "${var.region}"
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
}
resource "aws_vpc" "vpc" {
cidr_block = "10.0.0.0/16"
}
resource "aws_internet_gateway" "gateway" {
vpc_id = "${aws_vpc.vpc.id}"
}
resource "aws_route" "route" {
route_table_id = "${aws_vpc.vpc.main_route_table_id}"
destination_cidr_block = "0.0.0.0/0"
gateway_id = "${aws_internet_gateway.gateway.id}"
}
data "aws_availability_zones" "available" {}
resource "aws_subnet" "main" {
count = "${length(data.aws_availability_zones.available.names)}"
vpc_id = "${aws_vpc.vpc.id}"
cidr_block = "10.0.${count.index}.0/24"
map_public_ip_on_launch = true
availability_zone = "${element(data.aws_availability_zones.available.names, count.index)}"
}
resource "aws_security_group" "default" {
name = "http-https-allow"
description = "Allow incoming HTTP and HTTPS and Connections"
vpc_id = "${aws_vpc.vpc.id}"
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
変数の宣言を含む「variables.tf」を作成します。
vim変数.tf
variable "access_key" {
description = "Access key to AWS console"
}
variable "secret_key" {
description = "Secret key to AWS console"
}
variable "region" {
description = "Region of AWS VPC"
}
上記のファイルで定義された変数の定義を含む「terraform.tfvars」を作成します。
vim terraform.tfvars
region = "eu-west-3"
access_key = "AKIAQ6GAIA5XDX32PVJ6"
secret_key = "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"
これで、3つのファイル、つまり、variables.tf、terraform.tfvars、main.tfが必要になります
Terraform構成ファイルを使用してVPCを作成する
最初に使用するコマンドは「terraforminit」です。このコマンドは、構成内で使用されるプロバイダーのプラグインをダウンロードしてインストールします。私たちの場合はawsです。
terraform init
使用する2番目のコマンドは「terraformplan」です。このコマンドは、インフラストラクチャで行われる変更を確認するために使用されます。
テラフォームプラン
'terraform apply'コマンドは、main.tfファイルに記載されているawsにリソースを作成します。リソースを作成するための入力を入力するように求められます。
テラフォームが適用されます
AWS VPCコンソールに移動して、VPCが作成されているかどうかを確認できます。
Terraformを使用して作成されたVPCを削除します
main.tfファイルに記載されている構成を使用して作成した必要なリソースがさらにわかっている場合は、「terraformdestroy」コマンドを使用してそれらのリソースをすべて削除できます。
>テラフォーム破壊
結論
この記事では、Terraformをインストールする手順を説明しました。また、VPCを作成するために必要な構成と、それに関連する他のいくつかのリソースも確認しました。これで、変数の宣言と定義にも精通しました。