AWSで注意したいサービスごとのリージョンの違い
AWSでは、サービスによってリージョンの扱いが異なります。
特にグローバルサービスや他サービスと連携する場合、普段利用しているリージョンとは異なるリージョンを確認する必要があります。
CloudTrailでCloudFrontの操作履歴を確認する場合
- CloudFrontのCloudTrailイベントは
us-east-1で確認する -
UpdateDistributionなどのAPI操作も対象 - 他のリージョンでイベントが見つからない場合は
us-east-1を確認する
CloudFrontの操作履歴を調査するときは、CloudTrailで確認しているリージョンに注意が必要です。
ACMでCloudFront・ALBの証明書を作成する場合
- CloudFrontで利用するACM証明書は
us-east-1に作成する - ALBで利用する場合はALBと同じリージョンに作成する
CloudFront → us-east-1
ALB → ALBと同じリージョン
同じACMでも利用先によってリージョンが異なります。
AWS WAFでCloudFront・ALBのWeb ACLを作成する場合
- CloudFrontの場合は
Scope = CLOUDFRONT - ALBやAPI Gatewayなどの場合は
Scope = REGIONAL
CloudFront向けのWeb ACLとリージョナル向けのWeb ACLは別のスコープとして扱われます。
LambdaでLambda@Edgeの関数を作成する場合
Lambda@Edgeで利用するLambda関数は us-east-1 に作成する必要があります。
通常のLambdaは各リージョンに作成しますが、CloudFrontと組み合わせるLambda@Edgeではリージョンに注意が必要です。
IAMでユーザー・ロール・ポリシーを確認する場合
IAMはグローバルサービスです。
- IAMユーザー
- IAMロール
- IAMポリシー
これらはリージョンごとに作成するものではありません。
Route 53でHosted Zone・DNSレコードを確認する場合
Route 53はグローバルサービスです。
Hosted ZoneやDNSレコードを確認するときは、EC2やRDSのようにリージョンを切り替えて探す必要はありません。
S3でバケットを確認する場合
S3バケットにはリージョンがあります。
- バケット作成時にリージョンを指定する
- 別リージョンへのレプリケーションが可能
- 他サービスと連携するときはバケットのリージョンを確認する
S3はAWS全体で利用できるサービスですが、バケット自体は特定のリージョンに配置されます。
KMSでキーを確認する場合
KMSのキーは基本的にリージョナルです。
例えば東京リージョンで作成したKMSキーと、バージニア北部で作成したKMSキーは別のリソースです。
複数リージョンで利用するためのMulti-Region Keyもあります。
Secrets Managerでシークレットを確認する場合
Secrets Managerのシークレットはリージョナルです。
別リージョンから同じシークレットがそのまま見えるわけではないため、アプリケーションのリージョンと合わせて確認する必要があります。
Systems ManagerでParameter Storeを確認する場合
Systems Manager Parameter Storeのパラメータもリージョナルです。
「パラメータが存在しない」と思った場合は、AWSコンソールで選択しているリージョンを確認します。
CloudWatchでログ・メトリクスを確認する場合
CloudWatchのメトリクスやログは基本的にリージョナルです。
例えば東京リージョンのEC2のログを確認する場合は、CloudWatchでも東京リージョンを確認します。
ログやメトリクスが見つからない場合は、まずリージョンを確認するのがポイントです。
ECRでリポジトリを確認する場合
ECRのリポジトリはリージョナルです。
東京リージョンのECRとバージニア北部のECRは別のリポジトリとして扱われます。
複数リージョンへイメージを配置する場合は、クロスリージョンレプリケーションも利用できます。
API Gatewayでエンドポイントを作成する場合
API Gatewayではエンドポイントタイプによって扱いが異なります。
- Regional
- Edge-optimized
- Private
Edge-optimized APIではCloudFrontが利用されるため、通常のリージョナルサービスとは少し異なる構成になります。
Global Acceleratorで接続先を設定する場合
AWS Global Acceleratorはグローバルサービスです。
一方で、接続先となる以下のようなリソースは各リージョンに存在します。
- ALB
- NLB
- EC2
グローバルな入口とリージョナルなバックエンドを組み合わせる構成になります。
DynamoDBでGlobal Tablesを利用する場合
通常のDynamoDBテーブルはリージョナルです。
Global Tablesを利用すると、複数のAWSリージョンへテーブルをレプリケーションできます。
AuroraでGlobal Databaseを利用する場合
通常のAuroraクラスターはリージョナルです。
Aurora Global Databaseを利用すると、複数リージョンにまたがるデータベース構成を作成できます。
CloudTrailでSTSの操作履歴を確認する場合
AWS STSにはグローバルエンドポイントとリージョナルエンドポイントがあります。
- グローバル:
https://sts.amazonaws.com - 東京:
https://sts.ap-northeast-1.amazonaws.com
CloudTrailでSTSの操作を確認する場合は、どのエンドポイントを利用しているかも確認する必要があります。
AWSサービス・機能のリージョン別提供状況を確認する場合
- 特定リージョンでのみ提供されているサービスがある
- 同じサービスでもリージョンによって利用できる機能が異なる場合がある
- 新しいサービスや機能がすべてのリージョンへ同時に展開されるとは限らない
- 利用前にAWSのリージョン別提供状況を確認する
まとめ
AWSでは、サービスによってリージョンの考え方が異なります。
特に以下は混同しやすいため注意が必要です。
- CloudFront関連の
us-east-1 - IAMやRoute 53などのグローバルサービス
- CloudWatch、KMS、Secrets Manager、SSMなどのリージョナルサービス
- S3やECRなどリージョンごとにリソースが存在するサービス
- Global AcceleratorやGlobal Tablesなど複数リージョンを利用するサービス
AWS上で「リソースが見つからない」「ログが見つからない」ときは、サービスのリージョンの扱いを確認することが重要です。