0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Terraform 】Terraform でS3のバケットを構築してみるハンズオン

Posted at

はじめに

本記事はTerraformについて初心者の私が、新規にS3のバケットを構築した際の手順をまとめたハンズオン形式の記事になります。
手探り状態で作成したのでより良い書き方等はまた勉強しておきます。

Terraformとは?

Terraformは、インフラストラクチャをコード(Infrastructure as Code、IaC)として管理するためのツールです。マルチクラウド(AWS、GCP、Azureなど)に対応しています。

本記事のゴール

TerraformでS3のバケットを構築してみる

前提

本記事ではTerraformでの環境構築が終わっている事を想定しています。
まだ終わってない方は下記の記事から環境構築をお願いします。

環境

  • Terraform v1.7.4
  • PowerShell

IAMアカウントを準備する

リソースを作成する用のIAMアカウントを準備します。
コンソールからIAMを選択し、アクセス管理 > ユーザ > ユーザの作成 を選択します。
アタッチするポリシーとしては、S3のフルアクセス権限(AmazonS3FullAccess)を設定しておきます。

image.png

続いてプロファイル名を設定するため、作成したIAMアカウントのアクセスキーとシークレットキー情報を取得します。

セキュリティ認証情報タブからアクセスキー > アクセスキーを作成 > ローカルコードにチェックを入れアクセスキーを作成します。

image.png

アクセスキーが作成出来たら、アクセスキーとシークレットキーをメモしておいてください。

アクセスキー、シークレットキーについては表示画面を閉じると再度確認はできないので、忘れないように保存しておく事に注意してください。

プロファイルの設定

続いてAWSのcredentialsファイルにアクセスキーとシークレットキーの情報を追記していきます。
本記事で使用する用のプロファイル名を新たに作成します。
プロファイル名はなんでもよいですがここでは terraform_ttとし、以下のように先ほど取得したアクセスキーとシークレットキーを記載しておきます。

credentials
~~~

[terraform_tt]
aws_access_key_id = XXXXX
aws_secret_access_key = WWWWW

~~~

記載が完了したら保存してファイルをとじておき、以下のコマンドで問題なくプロファイル名の設定を追記できているか確認します。

cat ~/.aws/credentials

新しく追記したプロファイルが表示される事を確認し、次にソースの作成を進めていきます。

ソース

詳細はコメントアウトの通りです。
sample-bucket-terrafomr-test-0524という名前のバケットを作成します。

main.tf
terraform {
  // terraformのバージョンを指定
  required_version = ">= 1.5.1"

  // awsプロバイダーのバージョンを指定
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }
}

// awsプロバイダーの設定
provider "aws" {
  // 東京リージョンを指定
  region = "ap-northeast-1"
  // 上記で作成したプロファイル名を指定
  profile = "terraform_tt"
}

// s3バケットを作成
resource "aws_s3_bucket" "sample" {
  bucket = "sample-bucket-terrafomr-test-0524"
}

vscodeの拡張機能について
vscodeを使用している場合は、HashiCorp Terraformという拡張機能をインストールしておくと、シンタックスハイライトや補完機能を使えて便利です。

image.png

実行 & 結果確認

ここまでできたら、下記のコマンドを順に実行しS3バケットのリソースを作成します。

Terraformプロジェクトの初期化を行います。

terraform init

変更内容を確認します。今回はS3バケットを新規構築するので、想定通りの内容になっているか確認いたします。

terraform plan

最後に下記コマンドでリソースを構築します。

terraform apply

上記コマンドを実行した後に、AWSのコンソールからS3のバケットを確認すると対象のリソースが作成されていることを確認できました。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?