この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
いまはマネージメントコンソールを利用しているけど、AWSでのインフラ構築をコードを使って構築してみたい方は多いのではないでしょうか。
いわゆるIaC(Infrastructure as Code)ですね。
AWSで利用できるIaCツールと言えば、AWS CDK(Cloud Development Kit)、AWS CloudFormation、そして、Terraformです。
今回の記事はIaCツール"Terraform"を使ってAWSリソース構築をする環境準備を紹介します。
AWSでTerraformを使う準備
■Terraformとは
Terraformとは、
Terraform は、クラウドおよびオンプレミスのリソースを安全かつ効率的に構築、変更、バージョン管理できるコードツールとしてのインフラストラクチャです。公式webサイトより
●Terraformを利用するメリット
わたしがTerraformを利用していて感じたメリットを3つ紹介します。
- Terraformで利用する言語"HCL言語"がわかりやすい
- コードでインフラを構築するので、そのままドキュメントとしても使える
- 一回書けば、再利用できて作業時間が減る
■前提条件
今回の記事では、Terraformを利用するための環境準備を紹介します。
以下が前提条件です。
- AWSアカウントを持っている
- ローカルPCのOSがWindows
- Visual Studio Code(VS Code)インストール済み
■Terraform用IAMユーザー作成
まずはAWSアカウントでTerraform用のIAMユーザーを作成します。
↓サービス検索窓で[IAM]と検索します。
↓左のナビゲーションペインから[Users]をクリックし、[Add users]を押します。
↓必要事項を入力し、[Next]をクリックします。
↓与える権限は任意で設定してください。
↓内容に問題なければ、[Create user]をクリックします。
↓
↓作成したIAMユーザーの[Security credentials]タブをクリックし、[Create access key]を押します。
↓[Command Line Interface]を選択し、[Next]をクリックします。
↓[Description tag value]に任意の文字を入力し、[Create access key]を押します。
↓表示された[Access key]・[Secret access key]をメモするか、csvファイルをダウンロードしておいてください。
IAMユーザー作成は以上です。
■AWS CLIインストール
AWS CLIをインストールします。
↓AWS公式ドキュメントにアクセスし、インストーラをダウンロードします。
↓ダウンロードしたファイルをクリックします。
↓環境に合わせて設定してください。
↓
↓
↓インストールが完了しましたら、PowerShellで以下のコマンドを実行してください。
aws --version
↓以下のコマンドで、初期設定を行います。–profileオプションは名前付きプロファイル作成の設定です。
aws configure --profile terraform
PS C:\Users> aws configure --profile terraform
AWS Access Key ID [None]: <アクセスキー>
AWS Secret Access Key [None]: <シークレットアクセスキー>
Default region name [None]: ap-northeast-1
Default output format [None]: json
AWS CLIインストールは以上です。
■Gitインストール
GitBashを利用するために、Gitをインストールします。
↓公式webサイトにアクセスし、環境に合わせたインストーラをダウンロードしてください。
↓
↓ダウンロードが完了したら、設定ウィザードを起動しましょう。
↓任意の設定で進めてください。
↓
↓インストールが完了したら、PowerShellで以下のコマンドを実行しください。
git version
Gitインストールは以上です。
■Terraformインストール
本命のTerraformをインストールしていきます。今回はTerraformのバージョン管理ができる"tfenv"を利用して、Terraformをインストールしましょう。
↓エクスプローラーで自身のユーザーディレクトリにアクセスし、右クリックで[Git Bash Here]をクリックしてください。
↓https://github.com/tfutils/tfenv でクローンするURLを確認します。
↓GitBashコマンドラインで以下のコマンドを実行してください。
git clone https://github.com/tfutils/tfenv.git .tfenv
↓リポジトリをクローン出来たことを確認します。
↓次にパスを設定します。先ほどのディレクトリで右クリックを押し、[新規作成]→[テキストドキュメント]をクリックします。
↓ドキュメント名を以下の名前で作成します。
.bashrc
↓ドキュメントを環境に合わせて以下のように編集してください。
export PATH=$PATH:/<.tfenv配下のbinフォルダ絶対パス>
↓ドキュメントが作成できたら、右クリックから[Git Bash Here]を押して再起動します。
↓
↓以下のコマンドを実行し、パスが通ることを確認してください。
tfenv
↓次にTerraformをインストールしますので、インストール可能なバージョンを確認します。
tfenv list-remote
↓
↓今回は最新バージョンがアルファ版とベータ版なので、一つ前のバージョンをインストールします。
↓以下のコマンドを実行してください。
tfenv install 1.4.6
↓
↓インストールが完了したら、以下のコマンドで使用するTerraformのバージョンを指定します。
tfenv use 1.4.6
↓
↓以下のコマンドで指定したバージョンのTerraformが設定されているか確認します。
terraform version
Terraformインストールは以上です。
■VSCode設定
さいごに、Visual Studio CodeにTerraformの拡張機能をインストールと、ターミナルのデフォルトシェルを変更します。Terraformの拡張機能は構文チェックをしてくれる便利機能が使えるのでオススメです。
↓VSCodeを起動し、左の拡張機能アイコンをクリックし、検索窓で[terraform]と検索します。
↓[HashiCorp Terraform]をクリックし、[インストール]を押します。
プラグインインストールは以上です。つぎにデフォルトシェルを変更します。
↓[File]→[Preferences]→[Settings]をクリックします。
↓検索窓で[terminal intergrated shell windows]と検索します。
↓[Default Profile Windows]を[Git Bash]に変更し、VSCodeを開きなおしましょう
Terraformを利用するための環境構築が完了しました、
■動作確認
Terraformを使ってAWSリソースを構築する環境が整いました。試しにTerraformを使って、EC2インスタンス起動してみましょう。
↓自身のドキュメントディレクトリ配下に[terraform]フォルダを作成します。
↓
↓VSCodeで作成した[terraform]フォルダを開きます。
↓[ファイル作成]アイコンをクリックし、[main.tf]と名前を付けます。
↓
↓[main.tf]に以下のドキュメントを貼り付けます。amiはマネコンで確認し、任意のamiを設定しください。
provider "aws" {
profile = "terraform"
region = "ap-northeast-1"
}
resource "aws_instance" "test_ec2" {
ami = "ami-0f9816f78187c68fb"
instance_type = "t2.micro"
}
↓[Terminal]→[New Terminal]をクリックします。
↓ターミナルで作業ディレクトリを初期化するコマンドを実行します。
terraform init
↓[Terraform has been successfully initialized!]と表示されればOKです。
↓つぎにコードをきれいに整えてくれるコマンドを実行します。
terraform fmt
↓
↓リソースを作成するまえに、何が作られるか確認できる[plan]を実行します。
terraform plan
↓EC2インスタンスが一つ作られることが確認できます。
↓さいごにAWSリソースを作成するコマンド[apply]を実行します。planで何が作られるか確認したので、実行確認を求められない[-auto-approve]オプションを付けます。
terraform apply -auto-approve
↓
↓作成されたかマネージメントコンソールで確認しましょう。
EC2インスタンスが作成されたのが確認できました。動作確認は以上です。
[terraform destroy]でリソースを消すことができますので、実施してみてください。
まとめ:【AWS】TerraFormを使うための環境準備
今回の記事はTerraformを利用するための”環境準備”について紹介しました。
Terraformを使える状態になったので、あとは様々なアーキテクチャを試しにコード化してAWSリソースを構築してみましょう。
参考リンク:Terraform公式webサイト
↓ほかの協栄情報メンバーも自動化に関する記事を公開しています。ぜひ参考にしてみてください。
■Terraformの概要と使用方法(higa)
https://cloud5.jp/terraform_summary/
■AWS CodePipeline を利用してS3の静的ウェブサイトの更新を自動化する(tatsuoka)
https://cloud5.jp/tatsuoka-handson-beginner-codepipeline/
■AWS上にopenstackを構築(liuwanying)
https://cloud5.jp/openstack-install/
■Ansibleを利用してwindowsOSのインスタンスを操作する方法(umemoto)
https://cloud5.jp/control-windows-fromansible/