[アップデート] CloudFormation StackSetsでスタックを複数リージョンに”同時デプロイ”が可能に!【時短テク】

早いは正義
2021.04.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ちゃだいん(@chazuke4649)です。

CloudFormation StackSets でスタックを複数リージョンに同時デプロイ可能になりました!

You can now deploy CloudFormation Stacks concurrently across multiple AWS regions using AWS CloudFormation StackSets

何が嬉しいの?

シンプルに全リージョンへのデプロイがめちゃ早くなります。完了待ち時間の短縮です。

やってみた

実際にやってみます。

StackSets concepts - AWS CloudFormation

以下ブログで紹介している「Detectiveを全リージョン有効化」を、同時実行する/しないで試してみます。

詳細な手順は上記ブログがあるため割愛します。 テンプレートは上記より引用してます。

AWSTemplateFormatVersion: 2010-09-09
Description:
  "enable Detective"
Resources:
  DetectiveGraph:
    Type: AWS::Detective::Graph

Detectiveがサポートされているリージョンが17リージョンだったので、今回は17リージョンを対象とします。

1.同時実行(Parallel)

コンソール画面で進めていき、 今回のアップデートである「同時並列実行」を指定する画面を見つけました。

リージョンの同時実行について、以下2つから選べるようになっています。

  • 順次:リージョンのデプロイ順序を指定し、複数の StackSets オペレーションを同時に 1 つのリージョンにデプロイします。
  • 並行:指定したすべてのリージョンに複数の StackSets オペレーションを並行してデプロイします。

並行を選択し、実行しました。

デプロイが終了し、ステータスは以下の通りとなりました。

Detectiveの全リージョン有効化、同時実行だと約2分30秒で完了しました。

2.順次実行(Sequential)

それでは、従来の順次実行も試してみます。 一度今作成したスタックを削除し、再度作成します。

1つ1つのリージョンを順番に行っていく方式で、実行します。

少し待って、ステータスを確認すると以下の通りでした。

Detectiveの全リージョン有効化、順次実行だと約6分10秒で完了しました。

同時実行の方が全然早いですね!

今回はそもそも時間のかからないデプロイでしたが、これがもし例えばRDSを含む構成だったら、時短効果をしっかりと享受できそうですね...

終わりに

StackSetsで全リージョンに適用する場合は、基本同時実行を選択するで良いのではないでしょうか?早いは正義。

それではこの辺で。ちゃだいん(@chazuke4649)でした。