Terraform入門 AWS VPC リソースコードを作成する手順
環境
AWS Cloud9
概要
AWS Cloud9 は統合開発環境、または IDE です。
この AWS Cloud9 IDE では、リッチなコード編集エクスペリエンスを実現しており、複数のプログラミング言語、ランタイムデバッガ、 および組み込みターミナルがサポートされています。
操作手順
1.AdministratorAccess権限を持ったIAMユーザでAWSマネジメントコンソールにログインします。
2.Cloud9画面に遷移します。
3.画面右上のCreate environmentをクリックします。
4.環境名を入力し、Next Stepをクリックします。
5.Configure settingsは特に何も変更せずにNext Stepをクリックし、設定内容を確認後、Create environmentをクリックします。
6.Cloud9が立ち上がります。
Cloud9には最初からTerraformがインストールされています。
7.Terraformのバージョンを確認します。
$ terraform -v
作業用のディレクトリを作成します。
$ mkdir terraform && cd terraform
以下のコマンドでtfファイルを作成します。
$ touch provider.tf $ touch aws_vpc.tf
8.provider.tf
provider "aws" { region = "ap-northeast-1" }
regionには、リソース構築先のAWSリージョンを指定します。今回は東京リージョン(ap-northeast-1)を指定しています。
リソースを記述する書式
resource "リソースの種類" "リソース名" { 設定項目1 = 設定値 設定項目2 = 設定値 設定項目3 = 設定値 }
9.VPCの作成コード
#---------------------------------------- # VPCの作成 #---------------------------------------- resource "aws_vpc" "test_vpc" { cidr_block = "10.172.11.0/22" enable_dns_hostnames = true } #---------------------------------------- # パブリックサブネットの作成 #---------------------------------------- resource "aws_subnet" "test_subnet" { vpc_id = aws_vpc.test_vpc.id cidr_block = "10.172.11.0/24" availability_zone = "ap-northeast-1a" map_public_ip_on_launch = true } #---------------------------------------- # インターネットゲートウェイの作成 #---------------------------------------- resource "aws_internet_gateway" "test_igw" { vpc_id = aws_vpc.test_vpc.id } #---------------------------------------- # ルートテーブルの作成 #---------------------------------------- resource "aws_route_table" "test_rtb" { vpc_id = aws_vpc.test_vpc.id route { cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.test_igw.id } } #---------------------------------------- # サブネットにルートテーブル #---------------------------------------- resource "aws_route_table_association" "test_rt_assoc" { subnet_id = aws_subnet.test_subnet.id route_table_id = aws_route_table.test_rtb.id } #---------------------------------------- # セキュリティグループの作成 #---------------------------------------- resource "aws_security_group" "test_sg" { name = "test-sg" vpc_id = aws_vpc.test_vpc.id ingress { from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } }
10.実行コマンド
$ terraform init
結果にTerraform has been successfully initialized!と表示されていれば成功です
$ terraform validate
結果にSuccess! The configuration is valid.と表示されていれば成功です。
$ terraform fmt
コードのインデントを自動で整形する
$ terraform apply
実環境上にリソースを構築します。
11.リソースを削除する
$ terraform destroy