[アップデート] AWS Step Functions で Versions and Aliases が利用可能になりました

2023.06.23

こんにちは、CX事業本部 Delivery部の若槻です。

本日のアップデートにより、AWS Step Functions ステートマシンで Versions and Aliases(バージョンおよびエイリアス)が利用可能となりました。

先にまとめ

  • Versions は、ステートマシンのある時点でのワークフロー定義を持つスナップショット。ワークフロー実行時にバージョン番号を指定することにより呼び出すことができる。
  • Aliases は、バージョンに付与して管理を容易にするためのシンボリックエイリアス。2つのバージョンに付与した場合はステートマシンの実行トラフィックを指定の割合でルーティングできる。
  • これらの機能により、Step Functions ステートマシンの切り替え/切り戻し作業の実施や、Blue/Green デプロイ、カナリアデプロイが容易に展開できるようになった。

Versions

Versions(バージョン)は、ステートマシンのある時点でのワークフロー定義(リビジョン)を持つスナップショットです。ステートマシンの定義が更新された場合でも、バージョンの定義は変更されず、更新前の定義を使い続けることができます。 AWS Step Functions マネジメントコンソールより引用

バージョンはワークフロー実行時にバージョン番号を指定することにより呼び出すことができるため、ステートマシンの切り替え/切り戻し作業の実施が容易になります。

バージョンの発行

バージョンの発行は、管理コンソールの場合はステートマシン本体の詳細ページの Actions メニューまたは Versions タブから行なえます。ステートマシン MyStateMachine のバージョンを発行してみます。

オプションで説明を記述して、バージョンを発行します。

バージョンを発行できました。ステートマシン MyStateMachine の1つ目のバージョンなので 1 となります。ARN はステートマシンの ARN 末尾にバージョン番号が付与された形式となります。

ステートマシン本体の詳細ページの Versions タブからも発行されたバージョン一覧を確認できます。

ここでステートマシン本体の定義を更新(PassB の追加)してみます。

先程発行したバージョン 1 の定義を確認すると、ちゃんと更新前の定義のままとなっていますね。

ちなみにステートマシンの1つのリビジョンに対して発行できるバージョンは1つのみです。同じリビジョンに対して2つ目のバージョンを発行しようとするとエラーになります。

バージョンの実行

バージョン 1 を実行してみます。

実行できました。実行結果に Alias および Version の表示が追加されている以外は今までと特に変わりありません。

バージョンの実行履歴は、ステートマシン本体とバージョンの詳細ページのいずれの Executions タブからも確認できます。

Aliases

Aliases(エイリアス)は、Versions に付与して管理を容易にするためのシンボリックエイリアスです。 AWS Step Functions マネジメントコンソールより引用

Aliases は1つまたは2つの Versions に付与することができます。2つの Versions に付与した場合はステートマシンの実行トラフィックを指定の割合でルーティングさせることができるため、Blue/Green デプロイやカナリアリリースなどに利用できます。

エイリアスの作成

エイリアスの作成は、管理コンソールの場合はステートマシン本体の詳細ページの Aliases タブから行なえます。ステートマシン MyStateMachine のエイリアスを作成してみます。

エイリアス作成では、エイリアス名とルーティング構成を指定します。使用できるエイリアスが1つの場合はトラフィックの割合は100%のみ指定できます。

エイリアスを作成できました。ARN はステートマシンの ARN 末尾にエイリアス名が付与された形式となります。

ルーティング構成は作成後も Edit メニューから変更可能なので、ステートマシンの切り替えや切り戻し作業の実施も容易に行うことができます。

ステートマシン本体の詳細ページの Aliases タブからも発行されたエイリアス一覧を確認できます。

ここでステートマシンに対してバージョン 2 を発行します。

ステートマシンに複数のバージョンがある場合は、エイリアスのルーティング構成で2つのバージョンに対するトラフィック割合を設定できます。

バージョン 1 および 2 に対して50%ずつの割合でトラフィックをルーティングするエイリアスが作成できました。

エイリアスの実行

このエイリアスを実行してみます。

何度か実行すると、バージョン 1 または 2 のいずれかがランダムで実行されています。ルーティング構成に従って実行トラフィックがルーティングされているようです。

おわりに

AWS Step Functions ステートマシンで Versions and Aliases(バージョンおよびエイリアス)が利用可能となりました。

Step Functions ステートマシンの 切り替え/切り戻し作業の実施や、Blue/Green デプロイ 、 カナリアデプロイ が容易に展開できるようになりました。Step Functions をよりビジネスに直結するシステムに採用することが出来るようになりそうですね。

参考

以上