はじめに
AWS環境のインフラ構築においては、CloudFormationを利用しInfrastructure as Code(IaC)による運用をしている例も多いです。
CloudFormation運用を支援するCLIツール「rain」がシンプルで便利だったので、利用方法などを書いていきます。
rainとは
rainは、CloudFormationテンプレートの管理・デプロイを補助するオープンソースのCLIツールで、コミュニティを中心に広く利用されています。
主な機能として、以下が挙げられます。
- テンプレートの整形・検証(fmt、validate)
- 差分確認(diff)
- デプロイの実行(deploy)
- スタック情報の確認・管理(ls、statusなど)
rainのインストール方法
以下より、動作させる環境に応じたものをダウンロードし、展開します。
github.com
今回は、AWS上のCloudShellで実行できるようにセットアップします。AWSコンソールにサインインし、CloudShellを起動、以下のコマンドを実行しましょう。(以下をシェルスクリプトとしてファイル化した上で、実行すると便利です)
#! /bin/sh # Version VER="v1.23.0" # Install curl -OL https://github.com/aws-cloudformation/rain/releases/download/${VER}/rain-${VER}_linux-amd64.zip unzip rain-${VER}_linux-amd64.zip sudo mv rain-${VER}_linux-amd64/rain /usr/local/bin/ rm -rf rain-${VER}_linux-amd64*
インストール後、以下のようにバージョンが正しく表示されればOKです。
aws-cfn-code $ rain --version Rain v1.23.0 linux/amd64
rainの使い方
まず、スタックのデプロイは以下のコマンドにて実行できます。
rain deploy <CFnスタック名> <CFnテンプレートファイル名>
rain fmtはYAML/JSONのテンプレートを整形し、可読性を向上させます。
rain validateではCloudFormationの構文チェックにより、実際にデプロイする前にエラーを検出可能です。
rain fmt <CFnテンプレートファイル名> rain validate <CFnテンプレートファイル名>
rain diffは、テンプレートファイルと既存のスタックとの差分を出力します。これにより、更新対象リソースを確認できます。
rain diff <CFnスタック名> <CFnテンプレートファイル名>