今回は昨今注目を集めているインフラストラクチャをコードで構築する、Infrastructure as Code(IaC)についてです。
IaCの中でもマルチクラウドに対応しているTerraformについて紹介したいと思います。
Terraformとは
Terraformとは、HashiCorpによって開発されたオープンソースのInfrastructure as Code(IaC)ツールです。
Terarformを使用するとクラウドサービスやほかのサービスプロバイダー上にあるリソースをコードによって定義、プロビジョニング、変更を行うことができます。Terraformはデプロイメントを楽にするための宣言型構成管理を採用しており、異なるクラウド環境で一貫したインフラストラクチャを維持することが可能です。
環境構築
今回はWindows11での環境設定について紹介します。
Terraformのインストール
以下URLより最新バージョンの「AMD64」をダウンロードし、任意の場所に保存します。
ダウンロードしたzipを任意の場所で解凍し、terraform.exeがあるフォルダのパスを環境変数に追加します。
.exeファイルのあるフォルダパスをコピー→「システム環境変数の編集」で検索→「詳細設定」環境変数→【ユーザ名】のユーザ環境変数→「Path」をダブルクリック→空欄をダブルクリックしてペースト
Azure CLIのインストール
TerraformがAzureにAPI接続するための情報を取得するためにAzure CLIを使用します。
以下URLより「Azure CLIの最新のMSI(64ビット)をダウンロードします。
ダウンロードした.msiをクリックし、設定変更せずインストールします。
Terraformの実行
コード記述
任意の場所に作業用ディレクトリを作成し、main.tfファイルを作成します。
作成したmain.tfをメモ帳やVScodeなどで開き編集をします。今回は簡単にリソースグループを作成するコードを記述します。
※VScodeで編集する場合はHashiCorp HCLとHashiCorp Terraformをインストールすると便利です。
Azure CLIへのログイン
ターミナルを開き任意のディレクトリで「az login」を実行します。実行するとAzureへのログインの際と同様にユーザやパスワードを入力するGUIが出てくるので使用するアカウントを選択します。
Terraformの初期化
対象の作業ディレクトリで初めてTerrafomを実行するときや新しいプロバイダーを追加したいときなどには初期化が必要です。
初期化を行うには作業ディレクトリで「terraform init」を実行します。
プレビュー、デバック
コードによってどのようなリソースが作成されるかや変更点はどこかなどを見たいときに「terraform plan」を実行します。
追加される部分が+で表示されます。また「Plan:1 to add」と表示され、リソースが1つ追加されることを表しています。
リソース作成
リソースを実際にAzureに作成します。作成は「terraform apply」を実行します。
実行すると「Enter a value」と表示されるのでそこで「yes」と記載し、Enterを押下するとリソースの作成が始まります。
作成が終了すると「Apply Complete!」と表示されます。
Azureのポータルを見に行くと実際に作成されていることが確認できます。
削除
リソースを削除するには該当するコードをコメントアウトしてもう一度「terraform apply」を実行するか「terraform destroy」を実行するとリソースを削除することができます。
削除される該当部分が–で表示されます。「Enter a Value」にて「yes」を記載しEnterを押下すると削除されます。削除が終了すると「Destory complete!」と表示されます。
注意事項
自己署名証明書を使用するプロキシ サーバーで Azure CLI を使用している場合、証明書の追加等の対処が必要になるため以下URLを参考にしてください。
Azure CLI のトラブルシューティング | Microsoft Learn
感想
今までポータル上で色々な画面を遷移しながら作成/削除していたものを、コマンドを数回実行するだけ作成/削除できるため非常に便利でした。また私はコードを書くことが好きなのでプログラミングの感覚でできるのもよいと思いました。
おわりに
今回はIaCツールの中でもTerraformについて紹介しました。IaCでリソースを作成する場合、同じような構成のVirtual Machineを大量に作らなければいけないときなどに非常に便利ですし、構成を変更したいときなども視覚的に変更点がわかりやすいなどのメリットがあります。興味を持たれた方はぜひ使ってみてください。