当ブログでは過去の記事で、ローカルPCからTerraformでAWSのVPC環境を作成しました。今回は、Cloud9からTerraformを実行してみたいと思います。
目次
Cloud9+TerraformでAWSのVPC環境を構築
前提条件
・Terraformの定義をCodeCommitからCloud9にクローンする
・Cloud9と同一のAWSアカウント内でVPC環境を構築する
Cloud9の起動
1.AWSにログインしてAWS Cloud9のコンソールを開く
2.左ペインの「Your environments」を開き、作成済みenvironmentsの「Open IDE」ボタンをクリックする
Cloud9でCodeCommitのリポジトリをクローンする
Ansible用のディレクトリを作成
$ mkdir terrafom
作成したディレクトリに移動する
$ cd terraform
下記コマンドでCodeCommitのリポジトリからクローンする
$ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/<リポジトリ名>
Terraformの実行環境
Terraformがインストールされていることを確認
$ terraform -v
Terraform v1.1.2
on linux_amd64
+ provider registry.terraform.io/hashicorp/aws v3.71.0
main.tfは下記の通り
variable "aws_access_key" {}
variable "aws_secret_key" {}
variable "region" {
default = "ap-northeast-1"
}
variable "images" {
default = {
us-east-1 = ""
us-west-2 = ""
us-west-1 = ""
eu-west-1 = ""
eu-central-1 = ""
ap-southeast-1 = ""
ap-southeast-2 = ""
ap-northeast-1 = "ami-0218d08a1f9dac831"
sa-east-1 = ""
}
}
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "${var.region}"
}
resource "aws_vpc" "sample_vpc" {
cidr_block = "10.10.0.0/16"
enable_dns_support = "true"
enable_dns_hostnames = "true"
instance_tenancy = "default"
assign_generated_ipv6_cidr_block = "false"
tags = {
Name = "sample_vpc"
}
}
Terraformを実行
下記コマンドにて、ワークスペースの初期化を行います。
$ terraform init
Initializing the backend...
Initializing provider plugins...
- Reusing previous version of hashicorp/aws from the dependency lock file
- Using previously-installed hashicorp/aws v3.71.0
Terraform has been successfully initialized!
下記コマンドにて、ドライランを実行します。
$ terraform plan
ドライランの結果が問題無ければ下記を実行します。
$ terraform apply
AWS環境にてVPCが新規作成できたので、下記コマンドでVPCを削除します。
$ terraform destroy
まとめ
今回はCloud9からTerraformを実行し、VPC環境を作成することができました。また、ローカルPCで実施した時と同じTerraformの定義で動作することも確認できました。今後は、EC2サーバとDBサーバの冗長化構成や、S3などもTerraformから作れるようにしてみたいと思います。