チュートリアル:Terraform を使用して AWS S3 バケットをデプロイする
WebStorm は Terraform を使ったコードとしてのインフラストラクチャ管理をサポートし、IDE から離れることなくクラウドリソースの定義、レビュー、更新ができます。 機能のためのストレージ作成や環境設定、構成のマシンや CI パイプライン間の一貫性維持のようなタスクは、クラウドコンソールを使わず直接コードで処理することができます。
このチュートリアルでは、WebStorm で Terraform を使って AWS S3 バケット を作成する方法を説明します。 IDE の機能を使って構成の作成とレビューを行い、それを適用してリソースをプロビジョニングし、その後リソースを削除します。
始める前に
チュートリアルを始める前に、次の前提条件が満たされていることを確認してください:
AWS アカウント。 AWS アカウントを作成して有効化します。 このチュートリアルでは AWS 無料利用枠で十分ですが、アカウント作成時には有効な支払い方法が必要です。 詳細については、 公式ドキュメントを参照してください。
プログラムによるアクセス権を持つ IAM ユーザー。 セキュリティ上の理由から、このチュートリアルではルートアカウントを使用しないでください。 代わりに、 AWS マネジメントコンソールでプログラムによるアクセス権を持つ新規ユーザーを作成し、
AmazonS3FullAccess権限ポリシーをアタッチします。AWS CLI。 マシンに AWS CLIをインストールします。 これを使用してローカルで AWS 資格情報を構成し、アカウントへのアクセスを確認します。
環境のセットアップ
IAM ユーザーの作成と AWS CLI のインストール後、資格情報をローカルで構成してください:
AWS 資格情報の構成
システムターミナルで次のコマンドを実行して名前付きプロファイルを構成してください:
aws configure --profile terraform-user名前付きプロファイルを使うことで、同一マシン上で複数の AWS アカウントや構成を管理できます。 ここで指定したプロファイル名は後で Terraform 構成で使用されます。
プロンプトが表示されたら、次の詳細を入力してください:
AWS アクセスキー ID:作成した IAM ユーザーから取得します。
AWS シークレットアクセスキー:作成した IAM ユーザーから取得します。
デフォルトリージョン名:リソースが作成されるリージョンです。 例:
us-east-1またはeu-central-1。 サポートされているリージョンの詳細については、 公式ドキュメントを参照してください。デフォルト出力形式: Enter を押してデフォルト形式(JSON)を使用します。
次を実行して資格情報が正しく構成されているか確認してください:
aws sts get-caller-identity --profile terraform-user構成が成功すると、コマンドは IAM ユーザーの詳細を返します。
AWS 資格情報の構成と確認が完了したら、WebStorm を起動して開発環境をセットアップします。
Terraform および HCL プラグインをインストールする
この機能は、インストールして有効にする必要がある Terraform と HCL(英語) プラグインに依存しています。
Ctrl+Alt+S を押して設定を開き、 を選択します。
マーケットプレース タブを開き、 Terraform と HCL プラグインを見つけて、 インストール をクリックします (プロンプトが表示されたら、IDE を再起動します)。
Terraform 実行パスを指定する
実行構成を使用して IDE から Terraform コマンドを実行するには、マシンに Terraform がインストールされている必要があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
ほとんどの場合、WebStorm は Terraform 実行可能ファイルへのパスを自動的に検出します。 IDE が実行ファイルのバージョンとパスを検出しない場合は、 検出とテスト をクリックしてください。
マシンに Terraform がインストールされていない場合は、 インストール をクリックします。

必要に応じて、 Terraform 実行可能パス フィールドに Terraform へのパスを手動で指定できます。
新規プロジェクトの作成
Terraform 構成を保存するために、新しい空のプロジェクトを作成しましょう。
これは、事前定義された SDK なしでさまざまな言語や Java、Kotlin クラスを操作できるベーシックなプロジェクトです。アドホック開発やモックアップ作成、テストにも便利です。
WebStorm を起動します。
新しいプロジェクトを開始するには、次のいずれかを実行してください:
'ようこそ' 画面で 新規プロジェクト をクリックします。
メインメニューから を選択します。
メインウィンドウのヘッダーにあるプロジェクトウィジェットをクリックし、 新規プロジェクト を選択します。
左側のリストから 空のプロジェクト を選択します。
名前 フィールドにプロジェクト名を入力します。
ロケーション フィールドで、プロジェクトの保存場所へのパスを入力または選択します。
新規プロジェクトをバージョン管理下に置くには、 Git リポジトリの作成 オプションを選択します。
後でいつでもそれを行うことができます。
作成 をクリックしてください。
Terraform 構成の作成
プロジェクトの準備ができたら、インフラストラクチャの定義を開始できます。 Terraform では、インフラストラクチャは HashiCorp Configuration Language(HCL)で書かれた構成ファイルで記述されます。 AWS S3 バケットを定義するシンプルな Terraform 構成を作成しましょう。
新規 Terraform ファイルの作成
プロジェクト ツールウィンドウ(Alt+1 )で、プロジェクトルートを右クリックし、 を選択します。
新規ファイル ダイアログで、新規ファイル名に
mainを入力し、リストから 構成 ファイルテンプレートを選択します。 Enter を押します。
WebStorm は main.tf ファイルをプロジェクトルートに作成し、エディターで開きます。
WebStorm はスマートアシストを活用して、有効な Terraform 構成の作成をサポートします。 プロバイダーの定義から構成のビルドを始めます。
AWS プロバイダーの追加
main.tf ファイルで、
providerブロックの入力を開始してください:provider ""コード補完(Ctrl+Space )を呼び出し、 補完候補リストから
awsを選択してください:provider "aws" { }この操作を行うと、WebStorm はファイルの先頭に
terraformブロックも挿入します。 このブロックは、構成に必要な プロバイダー とそのバージョンを定義します。ここまでの手順で、構成は次のようになります:
terraform { required_providers { aws = { source = "hashicorp/aws" version = "6.36.0" } } } provider "aws" { }providerブロック内で、コード補完を使用してregionとprofile引数を追加します。引数値を設定します。例:
provider "aws" { region = "eu-west-1" profile = "terraform-user" }regionには Terraform がリソースを作成する場所が、profileには使用する AWS 資格情報が指定されます。
AWS プロバイダーの構成が完了したので、S3 バケットリソースを定義しましょう。
S3 バケットリソースの追加
main.tf ファイルに
resourceと入力します。 次にコード補完(Ctrl+Space )を使い、aws_s3_bucketリソースタイプを選択します。 リソース名にtutorial_bucketを指定します。 構成は次のようになります:resource "aws_s3_bucket" "tutorial_bucket" {}resourceブロック内で、bucketを入力し、コード補完で引数を追加します。 一意なバケット名を指定します。例:resource "aws_s3_bucket" "tutorial_bucket" { bucket = "ij-idea-terraform-tutorial-bucket-123" }
構成の準備ができたら、Terraform コマンドを実行して S3 バケットを作成できます。
Terraform を実行
WebStorm からエディターのガターアイコンや実行/デバッグ構成を使って Terraform コマンドを直接実行できます。
このセクションでは、プロジェクトの初期化、計画変更のプレビュー、構成の適用による S3 バケットの作成、そして不要なコストを回避するための削除を行います。
プロジェクトの初期化
terraform init コマンドは Terraform プロジェクトを初期化し、必要なプロバイダーをダウンロードして作業ディレクトリを準備します。 また、 .terraform.lock.hcl ファイルを作成し、プロジェクトで使用されたプロバイダーバージョンを記録して、実行や環境間で一貫した動作を保証します。
main.tf ファイルで、ガター内の
Terraform を実行 をクリックします。
ドロップダウンから Init},{ コマンドを選択します。
プロジェクト初期化後、Terraform が生成する実行計画を適用前にプレビューします。
WebStorm では 実行/デバッグ構成を使って Terraform コマンドを実行でき、引数の追加や環境変数の設定で実行をカスタマイズできます。 このチュートリアルでは、実行計画をファイルに保存するため -out 引数を追加します。 これにより、プランを確認して後で同じ変更を適用できます。
実行計画のプレビュー
に進みます。 または、 Alt+Shift+F10 を押してから 0 を押します。
(
) 新しい構成を追加 をクリックし、 Terraform の入力を開始します。

リストから Terraform プラン 構成タイプを選択します。
実行/デバッグ構成に名前を付けます。例:
Plan S3 Bucket。プログラム引数 フィールドに
-out=tfplan引数を指定します。実行 をクリックしてください。
実行計画の詳細は 実行 ツールウィンドウに表示されます。 同時に、 -out=tfplan 引数を指定したため、Terraform はプロジェクトルートの tfplan ファイルに プランを保存しました。 プランを確認後、このファイルを使って構成を適用し、AWS アカウントに S3 バケットリソースを作成できます。
構成の適用
前手順と同様に、新しい実行/デバッグ構成を作成します。 リストから Terraform 適用 構成タイプを選択します。
実行/デバッグ構成に名前を付けます。例:
Apply S3 Bucket。プログラム引数 フィールドに
tfplan引数を指定します。リソース作成時に、Terraform は tfplan ファイルに保存された実行計画を使用します。
実行 をクリックしてください。
構成を適用した後、AWS マネジメントコンソールで S3 バケットが正常に作成されたことを確認します。
クリーンアップ
S3 バケットの削除
main.tf ファイルで、ガター内の
Terraform を実行 をクリックします。
ドロップダウンから Destroy コマンドを選択します。
処理完了後、AWS マネジメントコンソールで S3 バケットが削除されたことを確認してください。
要約
このチュートリアルでは、次の方法を学習しました。
Terraform の実行可能ファイルのパスを設定し、AWS 環境をセットアップします
WebStorm で Terraform の構成を作成します
AWS プロバイダーを設定し、S3 バケットリソースを定義します
ガターアイコンと実行/デバッグ構成を使って Terraform コマンドを実行し、インフラストラクチャを初期化、プラン作成、適用、削除します