こんばんは、小寺です。
Amazon Route 53 Application Recovery Controllerの新機能である「zonal autoshift」が発表されました。
zonal autoshiftとは
Route 53 Application Recovery Controllerは冗長構成をとったシステムに対し、リソースクオータやキャパシティ、冗長構成の問題有無などを確認してくれる機能と、
問題発生時にトラフィックを制御してアプリケーションを継続利用できるようにするルーティング制御機能で構成されています。
昨年はzonal shiftを手動またはプログラムでトリガーする機能が導入され、特定のAvailability Zoneでメトリクスの低下が観測された場合にトラフィックをそのZoneからシフトできるようになりました。
ロードバランサーのトラフィックを正常稼働しているAZにのみルーティングさせ、システムを稼働させた状態で問題調査ができるようになりました。
今回のzonal autoshiftはAWSが特定のAvailability Zoneに影響を及ぼす可能性のある障害を検出した場合に、ワークロードのトラフィックをそのAvailability Zoneから自動的に安全にシフトし、障害が解消されたらトラフィックを元に戻すことができる機能です。
zonal shiftがアプリケーションやシステム障害などの自身の問題に対しての対処に役立つのに対し、zonal autoshiftは利用可能ゾーンでの潜在的な障害(電力障害やネットワーク障害など)からワークロードを保護するためにzonal autoshiftを設定できるようになりました。
zonal autoshiftを利用するためには対象とするリソースに対して明示的に有効にする必要があります。
また、zone shiftが自動で発動するということは、トラフィックがシフトされた後に残りの利用可能ゾーンでトラフィックの処理をさせるために、シフト後でも処理が継続できるリソースのサイジングが必要になります。
使うための前提条件
ゾーン シフトは、クロスゾーン ロード バランシングがオフになっている場合にのみ利用できます。対象としてはALBかNLBです。
トラフィックがアベイラビリティーゾーンに到達すると、ロードバランサーは登録された正常なターゲット (通常は Amazon Elastic Compute Cloud (Amazon EC2) インスタンス) にトラフィックを送信します。デフォルトの挙動では、ALB は設定したすべてのアベイラビリティーゾーンのターゲットにトラフィックを送信します。
ゾーン シフトが適切に機能するには、クロスゾーン ロード バランシングを無効にするようにロード バランサーを構成する必要があります。
以下の図の通り、ゾーン シフトが開始されると、DNS はすべてのトラフィックを 1 つのアベイラビリティ ゾーンから送信します。
まとめ
zonal autoshift自体の有効化には追加コストはかかりませんが、自動でリージョン障害に対応した際に問題なくワークロードが継続できるために、
通常時から過剰なリソースを配置する必要が出てきますので、可用性維持にかかるコストについては正しく検討して導入することを推奨します。