【Terraform】Linuxで実行環境を構築してAWSのVPCを作成してみた

AWS全般

前回の記事で、CodeCommitのリポジトリを作りました。 CodeCommit ではTerraformの定義を管理したいと思います。今回はローカルPCでTerraformの定義を作成して、動作検証を行いたいと思います。具体的には、VS Code と Remote WSLでLinuxのUbuntu20.04を動かし、Terraformのインストールを行い、main.tfを実行してAWS環境にVPCを作成します。

TerraformでAWSのVPCを構築

Terraformの準備

下記コマンドにてTerraformのダウンロードを行います。

sudo apt-get update
sudo apt-get install unzip
wget https://releases.hashicorp.com/terraform/1.1.3/terraform_1.1.3_linux_amd64.zip

下記コマンドにてファイルを解凍し、パスが通っている場所に移動します。

unzip terraform_1.1.3_linux_amd64.zip
sudo mv terraform /usr/local/bin

下記コマンドにてバージョンが確認できれば、Terraformの準備は完了です。

terraform -v

Terraform実行ファイルの設定

下記コマンドにてTerraform実行ファイルを格納するフォルダを作成します。

mkdir terraform_aws

作成したディレクトリに移動して、main.tfファイルを作成します。

cd terraform_aws
vi main.tf

main.tfは下記のように記述しました。terraform applyを実行するときに、IAMのシークレットキーとアクセスキーを入力するようにしております。

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をUbuntu20.04にて実行

下記コマンドにて、ワークスペースの初期化を行います。

terraform init

下記コマンドにて、ドライランを実行します。

terraform plan

ドライランの結果が問題無ければ下記を実行します。

terraform apply

AWS環境にてVPCが新規作成できたので、下記コマンドでVPCを削除します。

terraform destroy

まとめ

今回は、ローカルPCにてTerraformを実行して、AWS環境に新規VPCを作成すること成功しました。次回は、作成したmain.tfを前回作成したCodeCommitにpushしてみたいと思います。

合わせて読みたい

【ご案内】クラウド部のAWS詳細設計書テンプレート

クラウド部ではnoteにてAWS詳細設計書テンプレートの販売を行っております。詳細設計書の作成経験が浅い方向けのテンプレートとなっております。販売実績もございますので、よろしければ下記よりご利用ください。

AWS全般
クラウド部
タイトルとURLをコピーしました