一つのHTTPSドメインで、/apiと/api/配下をAPI用target group、/imagesと/images/配下を画像用target groupへ送る。/apiv2等は含めず、それ以外は固定404応答とする。証明書・SG・health check・healthyなターゲットは準備済みである。
両アプリは元のURLパスを処理でき、URL rewrite transformは設定しない。ほかの競合ルールはない。パスの大文字小文字は区別し、クエリ文字列は振り分け条件にしない。
要件に合うリスナールールはどれか。
基点とスラッシュ配下を明示したpath-patternを別々のtarget groupへforwardし、defaultで残りを処理する。
詳細解説
/api/*には/api/のスラッシュが必要で、/apiそのものは一致しない。基点も対象なのでそれぞれ完全なパスを条件へ加える。
ALBは小さい優先度から評価し、最初に一致するルールを適用する。先行する/*がAPI要求にも一致し、API用ルールへ進まない。
この広いパターンは意図しない接頭辞の名前も含む。本問は基点かスラッシュ配下に限定するため、完全な基点と/*を組み合わせる。
各path-pattern条件の2つの値はORで一致する。完全な基点とスラッシュ配下を両方指定し、どのルールにも一致しない要求は最後のdefaultで処理する。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
承認された検証ALBで優先度・path-patternの値・forward先・defaultを確認する。/api、/api/、/api/items、/images、/images/a.png、/apiv2、/other、/APIを要求し、応答とターゲットログを照合する。/api/items?v=1も比較し、元のパスを記録する。
参考にした公式資料
確認できる内容
/apiと配下はAPI、/imagesと配下は画像へ届く。/apiv2・/other・/APIは固定404になる。クエリだけで選択先は変わらず、rewriteなしではターゲットに元のパスが届く。
理解のポイント
- path-pattern
- rule priority
- default action
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
基点と配下を別の値で指定する
/apiと/api/*を同じpath-patternの値に指定すると、どちらかへの一致でAPI用ルールが成立する。/api/*だけでは/apiを含まず、/api*は/apiv2まで含む。画像も同じ境界で設定する。
評価順とdefaultを確認する
ALBは優先度の小さい数字から評価し、一致するルールの処理を行う。本問の互いに異なるパスは優先度10と20で扱い、最後のdefaultは固定404にする。広い/*を先に置けば個別ルールを遮る。
ルーティングと書き換えを区別する
path-patternは大文字小文字を区別し、クエリ部分を比較しない。パス条件自体はURLを書き換えない。本問はrewrite transformなしなので、/api/itemsはそのままターゲットへ届き、アプリ側が処理できる前提が必要である。