PyCharm 2026.2 Help

チュートリアル:Terraform を使って AWS S3 バケットをデプロイする

PyCharm は、 Terraform でインフラストラクチャをコードとして管理できるようサポートを提供しており、IDEから離れることなくクラウドリソースを定義、レビュー、および更新できます。 機能用のストレージ作成、環境のセットアップ、マシンや CI パイプライン間での構成の一貫性保持といったタスクも、クラウド コンソールからではなく、直接コードで処理できます。

このチュートリアルでは PyCharm 上で Terraform を使って AWS S3 バケットを作成する方法を解説します。 IDE の機能を使って構成を書いてレビューし、適用してリソースをプロビジョニングし、その後リソースを削除します。

始める前

チュートリアルを始める前に、以下の前提条件が満たされていることを確認してください:

  • AWS アカウント。 AWS アカウントを作成し、有効化してください。 このチュートリアルでは AWS 無料利用枠で十分ですが、アカウント設定時には有効な支払い方法が必要です。 詳細については、 公式ドキュメントを参照してください。

  • プログラムによるアクセス権を持つ IAM ユーザー。 セキュリティ上の理由から、このチュートリアルで root アカウントを使用しないでください。 代わりに、 AWS マネジメントコンソールでプログラムによるアクセス権を持った新しいユーザーを作成し、 AmazonS3FullAccess パーミッションポリシーを付与します。

  • AWS CLI。 マシン上に AWS CLIをインストールしてください。 AWS 資格情報のローカル設定やアカウントへのアクセス確認に使用します。

環境をセットアップする

IAM ユーザーを作成し、AWS CLI をインストールした後、ローカルで資格情報を構成してください:

AWS 資格情報を構成する

  1. システムターミナルで次のコマンドを実行して、名前付きプロファイルを構成してください:

    aws configure --profile terraform-user

    名前付きプロファイルを利用することで、同じマシンで複数の AWS アカウントや構成を管理できます。 ここで指定したプロファイル名は、後で Terraform 構成内で使用されます。

  2. プロンプトが表示されたら、次の内容を入力してください:

    • AWS アクセスキー ID:作成した IAM ユーザーのもの。

    • AWS シークレットアクセスキー:作成した IAM ユーザーのもの。

    • デフォルトリージョン名:リソースが作成されるリージョン。 例: us-east-1 または eu-central-1。 対応リージョンの詳細については、 公式ドキュメントを参照してください。

    • デフォルト出力形式: Enter キー を押してデフォルト形式(JSON)を使用します。

  3. 次のコマンドを実行し、資格情報が正しく構成されていることを確認してください:

    aws sts get-caller-identity --profile terraform-user

    構成が成功すると、コマンドは IAM ユーザーに関する詳細を返します。

AWS 資格情報の設定と確認ができたら、PyCharm を起動して開発環境をセットアップしてください。

Terraform および HCL プラグインをインストールする

この機能は、インストールして有効にする必要がある Terraform と HCL(英語) プラグインに依存しています。

  1. Ctrl+Alt+S を押して設定を開き、 プラグイン​ を選択します。

  2. マーケットプレース タブを開き、 Terraform と HCL プラグインを見つけて、 インストールする をクリックします (プロンプトが表示されたら、IDE を再起動します)。

Terraform 実行パスを指定する

実行構成を使用して IDE から Terraform コマンドを実行するには、マシンに Terraform がインストールされている必要があります。

  1. Ctrl+Alt+S を押して設定を開き、 ツール | Terraform ツール を選択します。

  2. ほとんどの場合、PyCharm は Terraform 実行ファイルへのパスを自動的に検出します。 IDE が実行ファイルのバージョンとパスを検出しない場合は、 検出とテスト をクリックしてください。

    マシンに Terraform がインストールされていない場合は、 インストールする をクリックします。

    Terraform ツール設定
  3. 必要に応じて、 Terraform 実行可能パス フィールドに Terraform へのパスを手動で指定できます。

新規プロジェクトを作成する

Terraform 構成を保存する新しい空のプロジェクトを作成しましょう。

これは、事前定義された SDK なしでさまざまな言語、Java または Kotlin クラスを操作できるようにする基本プロジェクトであり、アドホックな開発、モックアップの作成、テストに役立ちます。

  1. PyCharm を起動します。

    新しいプロジェクトを開始するには、次のいずれかを実行してください:

    • 'ようこそ' 画面で 新規プロジェクト をクリックします。

    • メインメニューから ファイル | 新規 | プロジェクト を選択します。

    • メインウィンドウのヘッダーにあるプロジェクト ウィジェットをクリックし、 新規プロジェクト を選択します。

  2. 左側のリストから 空のプロジェクト を選択します。

  3. 名前 フィールドに、プロジェクト名を入力します。

  4. ロケーション フィールドに、プロジェクトの場所となるパスを入力または選択します。

  5. Git リポジトリの作成 オプションを選択すると、新しいプロジェクトをバージョン管理下に置けます。

    後でいつでもそれを行うことができます。

  6. 作成 をクリックしてください。

Terraform 構成を作成する

プロジェクトの準備ができたら、インフラストラクチャの定義を始められます。 Terraform では、インフラストラクチャは HashiCorp Configuration Language(HCL)で記述された構成ファイルを使用して記述します。 AWS S3 バケットを定義するシンプルな Terraform 構成を作成しましょう。

新規 Terraform ファイルを作成する

  1. プロジェクト ツールウィンドウ(Alt+1 )で、プロジェクトのルートを右クリックし、 新規|Terraform ファイル を選択します。

  2. 新規ファイル ダイアログで新しいファイル名を main とし、リストから 構成 ファイルテンプレートを選択します。 Enter キー を押します。

    新規 Terraform 構成

    PyCharm はプロジェクトルートに main.tf ファイルを作成し、エディターで開きます。

PyCharm はスマートアシスト機能で有効な Terraform 構成作成を支援します。 プロバイダーを定義して、構成の作成を始めます。

AWS プロバイダーを追加する

  1. main.tf ファイルで、 provider ブロックの入力を開始してください:

    provider ""
  2. コード補完(Ctrl+Space )を呼び出し、 aws補完候補のリストから選択してください:

    provider "aws" { }

    この操作をすると、PyCharm はファイルの先頭に terraform ブロックも挿入します。 このブロックは、 必須プロバイダーとそのバージョンを構成用に定義します。

    これらの手順を終えると、構成は次のようになります:

    terraform { required_providers { aws = { source = "hashicorp/aws" version = "6.36.0" } } } provider "aws" { }
  3. provider ブロック内で、コード補完を利用して region および profile 引数を追加します。

  4. 引数値を設定します。例:

    provider "aws" { region = "eu-west-1" profile = "terraform-user" }

    region で Terraform がどこでリソースを作成するか決まり、 profile で使用する AWS 資格情報が指定されます。

AWS プロバイダーの設定ができたので、S3 バケットリソースを定義しましょう。

S3 バケットリソースを追加する

  1. main.tf ファイルで resource の入力を開始します。 続いてコード補完(Ctrl+Space )を使い、 aws_s3_bucket リソースタイプを選択します。 リソース名を tutorial_bucket にします。 構成は次のようになります:

    resource "aws_s3_bucket" "tutorial_bucket" {}
  2. resource ブロック内で bucket を入力し、コード補完で引数を追加します。 一意のバケット名を指定してください。例:

    resource "aws_s3_bucket" "tutorial_bucket" { bucket = "ij-idea-terraform-tutorial-bucket-123" }

構成の準備ができたら、Terraform コマンドを実行して S3 バケットを作成できます。

Terraform を実行

エディターのガターアイコンや実行/デバッグ構成を使って、PyCharm から直接 Terraform コマンドを実行できます。

このセクションでは、プロジェクトの初期化、変更予定のプレビュー、構成の適用による S3 バケット作成、そして不要なコスト回避のための削除を行います。

プロジェクトを初期化する

terraform init コマンドは Terraform プロジェクトを初期化し、必要なプロバイダーをダウンロードして作業ディレクトリを準備します。 さらに .terraform.lock.hcl ファイルも作成され、プロジェクトで使用されるプロバイダーのバージョンを記録し、実行や環境間で一貫した動作を保証します。

  1. main.tf ファイルで、ガター内の 実行Terraform を実行 をクリックします。

  2. ドロップダウンから Init コマンドを選択します。

プロジェクト初期化後、Terraform が変更適用前に生成する実行プランをプレビューします。

PyCharm では 実行/デバッグ構成を使って Terraform コマンドを実行でき、引数の追加や環境変数の設定で実行をカスタマイズできます。 このチュートリアルでは、 -out 引数を追加し、実行プランをファイルに保存します。 これによりプランを見直し、あとで同じ変更を適用できます。

実行プランをプレビューする

  1. 実行 | 実行構成の編集 に進みます。 または、 実行 ウィジェットで をクリックし、ドロップダウンメニューから 実行構成の編集 を選択します。

    実行 / デバッグ構成ポップアップ
  2. (実行/デバッグ構成を追加) 新規構成の追加 をクリックし、 Terraform​(テラフォーム)​ の入力を開始します。

    Terraform 実行構成
  3. リストから Terraform プラン 構成タイプを選択します。

  4. 実行/デバッグ構成に名前を付けます。例えば、 Plan S3 Bucket

  5. プログラム引数 フィールドに -out=tfplan 引数を指定します。

  6. 実行 をクリックしてください。

実行プランの詳細は 実行 ツールウィンドウに表示されます。 同時に -out=tfplan 引数を指定したことで、Terraform はプロジェクトルートに tfplan ファイルとしてプランを保存しました。 プランを確認後、このファイルを使って構成を適用し、AWS アカウントに S3 バケットリソースを作成できます。

構成を適用する

  1. 前の手順と同様に、新しい実行/デバッグ構成を作成します。 リストから Terraform 適用 構成タイプを選択します。

  2. 実行/デバッグ構成に名前を付けます。例えば、 Apply S3 Bucket

  3. プログラム引数 フィールドに tfplan 引数を指定します。

    Terraform はリソース作成時に tfplan ファイル内の実行プランを使用します。

  4. 実行 をクリックしてください。

  5. 構成を適用したら、AWS マネジメントコンソールで S3 バケットが正常に作成されたか確認してください。

クリーンアップ

S3 バケットを削除する

  1. main.tf ファイルで、ガター内の 実行Terraform を実行 をクリックします。

  2. ドロップダウンから Destroy コマンドを選択します。

  3. 処理終了後、AWS マネジメントコンソールで S3 バケットが削除されていることを確認してください。

要約

このチュートリアルでは、次の方法を学習しました。

  • Terraform 実行可能ファイルのパスを構成し、AWS 環境をセットアップする

  • PyCharm で Terraform 構成を作成する

  • AWS プロバイダーを構成し、S3 バケットリソースを定義する

  • ガターアイコンや実行/デバッグ構成を使い、Terraform コマンドでインフラの初期化・プラン・適用・削除を行う

2026 年 7 月 14 日