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変更)
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などの構築も試してみたいと思います。
- 閲覧数 61
コメントを追加