AWS CloudFormationの構築が楽になるツール「Rain」
2022-06-07
こんにちは、0371です。
今回は、CloudFormationでIaCをしたいときに、構築の手助けをしてくれるツール、「Rain」を紹介します。
CloudFormationの煩わしい部分を解決してくれる便利なツールです。
「Rain」について
下記が公式リポジトリです。
ドキュメントもあります。
rain | A development workflow tool for working with AWS CloudFormation.
"https://aws-cloudformation.github.io/rain/"
インストール
「Rain」はAWSCLI
のインストールが前提となっています。
MacOSの方は、以下のコマンドですぐに使用することができます。
brew install rain
rain --version
使い方
公式ドキュメントに書かれているコマンドの小技をまとめます。
コマンド | 説明 |
---|---|
rain rm -y ~~~.yml | だいたいのコマンドで -y オプションが使用できます。 |
rain build -b または -bare | buildコマンドのオプションで、AWSリソースの任意入力の値を省略できます。 |
rain build -l | buildコマンドで指定できるAWSリソースの一覧が見れます。 |
rain build {AWSリソースA} {B} {C} | リソースを複数組み合わせて出力させることができます。 |
また、シェルスクリプトと組み合わせるとさらに便利です。
rain-init.sh
#!/bin/bash
if [ ! -f $PWD/rain-template/VPC.yml ]; then
rain build \
AWS::EC2::VPC \
AWS::EC2::InternetGateway \
AWS::EC2::VPCGatewayAttachment \
AWS::EC2::Subnet \
AWS::EC2::Subnet \
AWS::EC2::RouteTable \
AWS::EC2::Route \
AWS::EC2::SubnetRouteTableAssociation \
AWS::EC2::SubnetRouteTableAssociation \
AWS::EC2::Subnet \
AWS::EC2::Subnet \
AWS::EC2::RouteTable \
AWS::EC2::Route \
AWS::EC2::SubnetRouteTableAssociation \
AWS::EC2::SubnetRouteTableAssociation \
AWS::EC2::Subnet \
AWS::EC2::Subnet \
AWS::EC2::RouteTable \
AWS::EC2::Route \
AWS::EC2::SubnetRouteTableAssociation \
AWS::EC2::SubnetRouteTableAssociation \
> $PWD/rain-template/VPC.yml
else
echo "VPC.ymlは既に存在します。"
fi
だいぶ適当ですが、こんな感じにしておくと、
bash rain-init.sh
だけでVPCに必要なAWSリソースをまとめることができます。
今回はVPCだけですが、EC2やRDSなどもまとめて作成できるようにしておくと非常に便利です。
そんなに1からCFnテンプレートを作成する機会はなさそうですが・・・😇
参考URL
CloudFormationのCLI実行ツール Rain がイケてそうなので紹介したい
"https://dev.classmethod.jp/articles/aws-cloudformation-rain/"
「つらみが解決!Rainを使ってCloudFormationをもっと便利に」というテーマで話しました #devio2021
"https://dev.classmethod.jp/articles/devio2021-cloudformation-rain/"
CloudFormationのコマンドラインツールRainを使用してWordPress環境を構築してみた
"https://zenn.dev/kazu_o/articles/59a4ca2c1e2e21"
rain buildとAWSのドキュメントの差分メモ
"https://zenn.dev/sakai_nako/articles/diff-cfn-rain-and-aws-document"
今日の一言
IaC頑張るぞ!!!