VSCode拡張機能 Dev Containers でTerraform実行環境構築

本記事では、Visual Studio Code (以下、VSCode) の拡張機能 Dev Containers を使った、Microsoft Azure向けのTerraform実行環境の構築方法について紹介します。

Terraformとは

HashiCorpが提供しているIaC(Infrastructure as Code)ツールです。

Microsoft Azure、AWS、OCIなどの主要なパブリッククラウドに対応しています。

Dev Containersとは

Dev Containers は、コンテナ(docker)を利用して開発環境を構築できるVSCodeの拡張機能です。

Dev Containersの主なメリットは以下の通りです。

  • 他のメンバーに同じ環境を簡単に共有可能
    • コンテナ定義ファイルを共有するだけで開発環境を再現でき、新メンバーの開発環境準備が容易になります
  • ローカル環境をクリーンに保つことが可能
    • コンテナにツール、ライブラリ等をインストールするので、ローカル環境にそれらをインストールする必要がなくなります
  • 開発環境の再構築が容易
    • 開発環境が壊れた場合、コンテナを再構築するだけで元の状態に戻すことができます

VSCodeの前提条件

本記事は以下の前提で検証を行っています。

  • WindowsにVSCode がインストール済み
  • 拡張機能「Japanese Language Pack for VS Code」をインストールして日本語表示を設定済み

事前準備

Dockerが必要になるので、今回は手軽にWindowsに導入可能なDocker Desktopをダウンロードし、インストールします。

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Dev Containers インストール

VSCodeを起動し、画面左側より拡張機能アイコンをクリックします。

検索ボックスに”dev containers”と入力し、検索結果に表示される"Dev Containers"の「インストール」ボタンをクリックすればインストールされます。

Terraform開発環境コンテナ構築

Ctrl+Shift+P キーでコマンドパレットを開き、"add dev"と入力し、検索結果から「開発コンテナー:開発コンテナー構成ファイルを追加」を選択します。

以下の画面が表示されたら「フォルダーを開く」をクリックします。

任意の空フォルダを指定し、「フォルダーの選択」をクリックします。

ctrl+shift+p キーで再度コマンドパレットを開き、「ワークスペースに構成を追加する」を選択します。

ベースになるコンテナイメージは「ubuntu」を選択します。

バージョンは、既定のバージョンを選択します。

追加するパッケージとして"Terraform(via asdf)"を選択します。これがTerraform本体です。

AzureログインのためにAzure CLIも選択します。選択したら「OK」をクリックします。

以下画面が表示された場合、"既定値を保持する"を選択します。

.devcontainerフォルダが作成され、配下にコンテナーの構成や設定を格納するファイル "devcontianer.json"が生成されたことを確認します。

devcontainer.json を開きます。nameパラメータは"Terraform"に修正します。

name:"Terraform"

HashiCorp.terraformという、Terraform構文チェックなど、コーディングをサポートしてくれる拡張機能の追加設定を行います。

※ 必須ではありませんが、コーディングに役立つ機能なので、追加しておくと便利です。

"customizations": {
    "vscode": {
        "extensions": [
            "HashiCorp.terraform"
        ]
    }
}

ctrl+shift+p キーでコマンドパレットを開き、”開発コンテナー:コンテナーでリビルドして再度開く”を選択すると、コンテナがビルドおよびデプロイされます。
※事前にDocker Desktopを起動しておいてください

デプロイ後、"ターミナル" - "新しいターミナル"をクリックし、ターミナルを開きます。

terraform -version コマンドを実行できれば、Terraform実行環境の構築完了です。

あとは、az login コマンドでAzureにログインし、Terraformコードを記述したtfファイルを準備すれば、リソースのデプロイが可能です。

リソースのデプロイについては、下記記事も紹介していますので、参考にしてください。

Terraformを使用したMicrosoft Azureへのリソースデプロイ ~part1~ - JBS Tech Blog

最後に

今回は、 Dev Containers を用いてAzure向けTerraform実行環境を構築しました。

他のメンバーが同じ環境を構築したい場合は、tfファイルと手順内で生成した.devcontainerフォルダ(コンテナ定義ファイル"devcontainer.json"が含まれるフォルダ)を共有すれば構築が可能です。

執筆担当者プロフィール
坂本 典久

坂本 典久(日本ビジネスシステムズ株式会社)

クラウドソリューション事業本部所属。 SQL ServerやPostgreSQLなどのデータベース設計・構築、Azureなどのクラウドを中心としたシステムの設計・構築に携わっています。

担当記事一覧