1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFormationの効率化ツール「rain」をCloudShell上でサクッと利用する

1
Last updated at Posted at 2025-10-13

はじめに

AWS環境のインフラ構築においては、CloudFormationを利用し Infrastructure as Code(IaC) による運用をしている例も多いと思います。

CloudFormation運用を支援するCLIツール 「rain」 がシンプルで便利なので使っているのですが、ローカル環境に手を入れたくなかったので、この記事ではAWSのCloudShell上でサクッと使える状態にする方法をまとめます。

CloudShellを使うとローカル環境を汚さずに済むという点と、デプロイ操作に十分な権限を持つIAMユーザーでコンソールにサインインしていれば、その権限が自動的に引き継がれるため、AWS CLIの認証設定などを意識せずにすぐ操作できるのもメリットですね。


rainとは

rain は、CloudFormationテンプレートの管理・デプロイを補助するオープンソースのCLIツールで、コミュニティを中心に広く利用されています。

主な機能として、以下が挙げられます。

  • テンプレートの整形・検証(fmt, validate
  • 差分確認(diff
  • デプロイの実行(deploy
  • スタック情報の確認・管理(ls, status など)

🔗 公式リポジトリ
https://github.com/aws-cloudformation/rain


インストール方法

CloudShellでのセットアップ例

AWSコンソールにサインインし、CloudShellを起動します。
エディタを起動し、「rain_inst_cloudshell.sh」というファイル名で以下のスクリプトを保存します。
(あらかじめローカルで作成したファイルを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*

上記で保存したスクリプトを以下コマンドにて実行します。作成直後だと実行権限がないので、付与します。

~ $ chmod 755 rain_inst_cloudshell.sh
~ $ ./rain_inst_cloudshell.sh

正常に実行されると、以下のような表示になります。(細かい数字等は環境によって異なります)

~ $ chmod 755 rain_inst_cloudshell.sh
~ $ ./rain_inst_cloudshell.sh 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 9643k  100 9643k    0     0  64.1M      0 --:--:-- --:--:-- --:--:-- 64.1M
Archive:  rain-v1.23.0_linux-amd64.zip
   creating: rain-v1.23.0_linux-amd64/
  inflating: rain-v1.23.0_linux-amd64/LICENSE  
  inflating: rain-v1.23.0_linux-amd64/README.md  
  inflating: rain-v1.23.0_linux-amd64/rain  

インストール後、CloudShell上で以下コマンドを実行し、バージョンが表示されればOKです👇

~ $ rain --version
Rain v1.23.0 linux/amd64

ここまでで、CloudShell上でrainが使用できる状態になりました。


rainの基本的な使い方

rain自体の使い方も少しだけ紹介しておきます。

スタックのデプロイ

CloudFormationテンプレートを指定してデプロイを実行します。

rain deploy <CFnスタック名> <CFnテンプレートファイル名>

テンプレートの整形と検証

テンプレートを整形 (fmt) し、構文エラーを事前にチェック (validate) します。

rain fmt <CFnテンプレートファイル名>
rain validate <CFnテンプレートファイル名>

整形結果は直接上書きされ、YAML/JSONいずれにも対応しています。

差分の確認

既存スタックとテンプレートの差分を出力できます。
更新予定のリソースを確認してからデプロイするのに便利です。

rain diff <CFnスタック名> <CFnテンプレートファイル名>

「rain」をCloudShell上でサクッと利用する方法は以上です。

関連リンク


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?