TerraformでS3バケットを作成・変更・削除してみた

  •  
 
MAXIMUM が に投稿

Terraformを使ってAWSのS3バケットを作成し、設定変更から削除まで一連の流れを試してみましたので、やり方を後から追えるようにコマンドなどを記事として残します。

0. 前提

今回の操作では、TerraformとAWS CLIを使用します。

事前にそれぞれインストールしておきます。

1. AWSへログイン

まず、Macのターミナルを開いてAWS CLIからAWSへログインします。

aws login --profile personal --region ap-northeast-1

ログインできていることを確認します。

aws sts get-caller-identity --profile personal

Terraformでも同じプロファイルを使用するように設定します。

export AWS_PROFILE=personal

2. Terraformの設定ファイルを作成

作業用ディレクトリとmain.tfを作成します。

mkdir -p ~/terraform-study
cd ~/terraform-study
touch main.tf

main.tfには、AWS ProviderとS3バケットを定義しました。

terraform {
  # 使用するProviderを設定
  required_providers {
    aws = {
      # AWS Providerを使用
      source  = "hashicorp/aws"

      # AWS Providerのバージョンを指定
      version = "~> 6.0"
    }
  }
}

provider "aws" {
  # 東京リージョンを使用
  region = "ap-northeast-1"
}

resource "aws_s3_bucket" "study" {
  # terraform-study-から始まるバケット名を作成
  bucket_prefix = "terraform-study-"
}

3. S3バケットを作成

最初にTerraformを初期化します。

terraform init

続いて、作成されるリソースを確認します。

terraform plan

今回は下記結果になりました。

Plan: 1 to add, 0 to change, 0 to destroy.

それぞれ、追加するリソースが1個、変更するリソースが0個、削除するリソースが0個という意味です。

今回はS3バケットを新しく作成するため、1 to addとなっています。

問題がなかったため、AWSへ反映します。

terraform apply

確認画面でyesを入力すると、S3バケットが作成されました。

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

AWS CLIからも確認できます。

aws s3 ls --profile personal

AWSコンソールからも、作成されたS3バケットを確認できました。

4. Terraformの管理状態を確認

Terraformが管理しているリソースは以下で確認できます。

terraform state list

今回は下記が表示されました。

aws_s3_bucket.study

詳細も確認できます。

terraform state show aws_s3_bucket.study

5. タグを追加

次に、S3バケットのリソース構成を変更してみます。

今回はS3バケットへタグを追加しました。

resource "aws_s3_bucket" "study" {
  # terraform-study-から始まるバケット名を作成
  bucket_prefix = "terraform-study-"

  # S3バケットにタグを追加
  tags = {
    Name        = "Terraform Study"
    Environment = "study"
  }
}

変更内容を確認します。

terraform plan

今回は既存リソースの変更なので、下記結果になりました。

Plan: 0 to add, 1 to change, 0 to destroy.

それぞれ、追加するリソースが0個、変更するリソースが1個、削除するリソースが0個という意味です。

今回は作成済みのS3バケットにタグを追加するため、1 to changeとなっています。

反映します。

terraform apply
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
(0追加、1変更)

AWSコンソールからも、追加したタグを確認できました。

6. S3バケットを削除

最後に、今回作成したリソースを削除します。

terraform destroy

確認画面でyesを入力すると削除されました。

Destroy complete! Resources: 1 destroyed.

これは、Terraformで管理しているリソースが1個削除されたことを表しています。

AWSコンソールからも、S3バケットが削除されていることを確認できました。

7. まとめ

今回はTerraformを使って、S3バケットの作成、変更、削除までを試してみました。

基本的な流れは以下になります。

terraform init(前準備)
↓
terraform plan(確認)
↓
terraform apply(実行)
↓
terraform destroy(削除)

実際に操作してみることで、TerraformでAWSのリソースをコードから管理する基本的な流れを確認できました。

次回は、EC2やVPCなどの構築も試してみたいと思います。

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像
S3コンソール追加
AWSユーザ定義タグ