【Cloud9】TerraformでAWSのVPC環境を構築する手順

devops

当ブログでは過去の記事で、ローカル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から作れるようにしてみたいと思います。

タイトルとURLをコピーしました