Skip to content

Latest commit

 

History

History
136 lines (99 loc) · 5.76 KB

File metadata and controls

136 lines (99 loc) · 5.76 KB

ステップ1 Terraformを使う

まずはTerraformを使って簡単なリソースをデプロイしてみましょう。Terraform CLIを端末にインストールし、サンプルのコードを使ってリソースをデプロイしてみます。

実行準備

Terraformを使えるように準備します。前提として作業端末はインターネットに繋がっている必要があります。(HashicorpおよびAWSへアクセスします。)

Terraform CLIのインストール

Terraformコマンドはシングルバイナリで実行できます。こちらの公式ページにアクセスし、端末にあった方法でインストールしてください。

たとえば、v1.12.2(2025/8時点の最新)をUbuntuにインストールする場合は以下のようにします。

$ wget https://releases.hashicorp.com/terraform/1.12.2/terraform_1.12.2_linux_amd64.zip
$ unzip terraform_1.3.7_linux_amd64.zip
$ chmod +x terraform
$ mv terraform /usr/local/bin/

Terraform CLIをインストールしたら以下でコマンドが使用できることを確認します。

$ terraform version

AWSプロファイルの準備

本プラクティスではAWSを使用します。AWS CLIの設定をしておいてください。使用するIAMユーザーにはAdministratorAccess等の強い権限を与えておくと楽ですが、組織のポリシーに従い権限を付与してください。

AWS CLIのインストールおよび設定は公式のドキュメントを参照してください。

基礎的なTerraformの使い方

コードの準備

以下コマンドで作業用にstep1ディレクトリを作成し、そのディレクトリ下にtest.tfを作成します。このコードは東京リージョンに10.1.0.0/16のCIDRブロックを持つtf-testという名前のVPCを作成するものです。(リージョンは変えても構いません)

$ mkdir step1
$ cd step1
$ cat <<EOF > test.tf
terraform {
  required_providers {
    aws = {
      version = ">= 6.6.0"
    }
  }
}

provider "aws" {
  region  = "ap-northeast-1"
}

resource "aws_vpc" "tf_test" {
  cidr_block = "10.1.0.0/16"

  tags = {
    Name = "tf-test"
  }
}
EOF

Terraformでリソースをデプロイ

Terraformを使ってリソースをデプロイするにはinitplanapplyを行います。

まずはterraform initコマンドでTerraformを実行するディレクトリの初期化を行います。Terraform has been successfully initialized!が出れば成功です。initは実行ディレクトリで1回行えば後は実行する必要はありません。(プロバイダーやモジュールを変更した場合はinitし直しが必要です。)

$ terraform init
...
Terraform has been successfully initialized!
...

続いてterraform planでコードによりデプロイされるリソースの内容を確認します。planは省略可能ですがplanで確認するクセをつけた方がいいです。

$ terraform plan
...

最後にterraform applyをするとリソースがデプロイされます。applyするとplanの結果も表示され、確認メッセージでyesを入力するとデプロイされます。問題を見つけた場合はnoなど入力すればデプロイされません。最終的にApply complete!のメッセージが出ればデプロイ完了です。

$ terraform apply
...
Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: # yesを入力
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

マネージメントコンソールや以下コマンドでTerraformコードのリソースがデプロイされていることを確認できます。

$ aws ec2 describe-vpcs --filters "Name=tag-value,Values=tf-test"

Terraformでデプロイしたリソースを削除

terraform destroyでデプロイしたリソースを削除可能です。destroyを実行するとapplyと同様に最終確認メッセージの入力が求められ、yesを入力するとリソースを削除します。
destroyはディレクトリ内の全てのTerraformでデプロイしたリソースを削除します。危険なコマンドなため注意して扱いましょう。Destroy complete!のメッセージが出れば削除完了です。

$ pwd # step1ディレクトリにいることを確認
$ terraform destroy
...
Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: # yesを入力
...
Destroy complete! Resources: 1 destroyed.

applyの時と同様、マネージメントコンソールやAWSコマンドでTerraformコードのリソースが削除されていることを確認できます。