はじめに
座学では知っている物の、実体験をもってCloudFormationのテンプレ化をしてこなかったので、既存リソースをテンプレート化する所までを、「やってみた!」系のメモ書きです。
IaCで、各種大御所に対応してそうなTerraform関連から習得するために、関連するソフトを触っていきます。
セットアップ:Terraform & Terraformer
terraformer公式サイト
1.terraform インストール
2.terraformerのExeファイルを取得
3.環境変数にパスを通す
が、公式サイト記載の手順です。
セットアップ:Terraformのダウンロード
プラットフォーム毎に分かれていて「Windows」タブからダウンロードできます。
特にインストーラ等はなくZipを解凍するとExeファイルが出てくるだけなので、環境変数にパスを通す。
セットアップ:Terraformerのダウンロード
対象のクラウド毎にExeを分けてくれています。
環境変数でパスが通ったか確認
terraform -v
terraformer --version
初期化前に事前準備(terraform init の実行前にやること)
Providerのバージョン確認
terraformは追加アドオン(Provider)をダウンロードして利用する仕組みなので、現行バージョンを確認してきます。
(AWS用のアドオンのバージョン確認)
参考に載せさせて頂いた記事が、非常に参考になりました。
初期化用のJSONファイル(main.tf)作成
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.4.0"
}
}
required_version = "1.5.1"
}
provider "aws" {
region = "ap-northeast-1"
}
前節で確認してきた
- Teraformのバージョン
- Providerのバージョン
は、セットアップ時のバージョンを確認して変更する。
初期化の実行
実行カレントに、main.tf(スクショの実行環境では、Work直下にmain.tfを保存)を置いて、コマンドを実行する。
terraform init
公式ドキュメント
対象としたいリソースは、この辺りです。
ポリシー用意
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"lambda:List*",
"lambda:Get*"
],
"Resource": "*"
}
]
}
Lambdaの読み取り専用のポリシーをアクセスキーに割り当てて実行してみます。
エクスポート
terraformer import aws --resources=lambda --regions=ap-northeast-1
Workが実行カレントで、配下に generated - aws - lambda のフォルダ階層が作成されて、各種 tfファイルが出力されました。
参考
AWSの相談・お困りごとありましたら、、、
AWSの活用方法や、お困りごとの相談、随時、お仕事の受付しております。