Contents
1. サウジアラビアリージョンの概要と公式情報の取得
me‑south‑1 は Middle East (Saudi Arabia) – Riyadh と表記され、2024 年 6 月に正式リリースされました。AWS の公式ページでは現在 3 つのアベイラビリティゾーン(AZ) が提供されています(2026 年時点でも変わっていません)。最新情報は AWS グローバルインフラストラクチャページで随時確認してください。
1‑1. 公式サイトで提供開始日・AZ 数を確認する手順
AWS のリージョン一覧は以下の URL に掲載されています。
- グローバルインフラストラクチャ – リージョンと AZ
https://aws.amazon.com/jp/about-aws/global-infrastructure/regions_az/
このページで me‑south‑1(Riyadh)を探すだけで、次の情報が取得できます。
| 項目 | 内容 |
|---|---|
| リージョンコード | me-south-1 |
| 提供開始日 | 2024‑06‑12 (公式リリース日) |
| AZ 数 | 3(me-south-1a, me-south-1b, me-south-1c) |
注:AWS は随時 AZ を増設する可能性があります。最新情報は上記ページで必ず確認してください。
1‑2. コンソールでのリージョン有効化手順(CLI では不可)
新規リージョンはデフォルトで「非表示」になることがありますが、AWS CLI による自動有効化 API は提供されていません。コンソールから手動で有効化する必要があります。
手順概要
- AWS マネジメントコンソールにサインイン → 右上のアカウント名 → 「My Account」 を選択
- 左メニューの 「Region activation(リージョン有効化)」 をクリック
me‑south‑1 (Riyadh)のトグルを ON にし、「Save changes」 を実行
この操作だけで、コンソールと AWS CLI の両方に me‑south‑1 が表示されます。CLI からのアクセスは、プロファイルや環境変数でリージョンを指定すればすぐに利用できます。
2. デフォルトリージョン設定と CLI/SDK 活用
複数アカウント・チームで作業する際は、プロファイル単位でデフォルトリージョンを固定しておくとミスが減ります。この章では、CLI と Python SDK(Boto3)での設定例を示します。
2‑1. プロファイル別にデフォルトリージョンを設定する方法
まずはプロファイル saudi を作成し、デフォルトリージョンを me‑south‑1 に設定します。
|
1 2 3 4 5 6 7 |
# プロファイルの作成とリージョン指定 aws configure set region me-south-1 --profile saudi aws configure set output json --profile saudi # 任意で出力形式も統一 # 環境変数で一時的に上書きしたい場合(シェルだけ有効) export AWS_DEFAULT_REGION=me-south-1 |
ポイント:
AWS_DEFAULT_REGIONはそのシェルセッションのみ適用されます。CI/CD パイプラインでは環境変数で設定し、ローカル作業時はプロファイルに保存すると管理が楽です。
2‑2. Boto3(Python)でリージョンを明示的に指定する例
|
1 2 3 4 5 6 7 8 9 10 |
import boto3 # プロファイル "saudi" を利用しつつ、リージョンを固定 session = boto3.Session(profile_name="saudi", region_name="me-south-1") ec2 = session.client("ec2") # インスタンス情報の取得(例) response = ec2.describe_instances() print(response) |
このように セッションレベルでリージョンを固定 すれば、コード中にハードコーディングする必要がなくなり、テスト・本番環境の切り替えも容易です。
3. ネットワーク基盤構築:VPC・サブネット・IGW/NAT
AWS のベストプラクティスは「1 リージョンに 1 つの VPC、複数 AZ に跨るサブネット」です。以下では、me‑south‑1 向けに最小構成を CLI で作成する手順を示します。
3‑1. VPC と CIDR 設計
まずはプライベートアドレス空間 10.0.0.0/16 を割り当てた VPC を作ります。
|
1 2 3 4 5 6 |
aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region me-south-1 \ --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=Saudia-VPC}]' \ --output text --query 'Vpc.VpcId' |
ヒント:タグは運用時に検索しやすくなるので、必ず付与しておきましょう。
3‑2. AZ 別サブネットの配置(/24 単位)
| サブネット | CIDR | AZ |
|---|---|---|
| Public‑A | 10.0.1.0/24 | me-south-1a |
| Private‑A | 10.0.2.0/24 | me-south-1a |
| Public‑B | 10.0.3.0/24 | me-south-1b |
| Private‑B | 10.0.4.0/24 | me-south-1b |
| Public‑C | 10.0.5.0/24 | me-south-1c |
| Private‑C | 10.0.6.0/24 | me-south-1c |
例として Public‑A を作成するコマンドは次の通りです(<VpcId> は前ステップで取得した ID に置換)。
|
1 2 3 4 5 6 7 |
aws ec2 create-subnet \ --vpc-id <VpcId> \ --cidr-block 10.0.1.0/24 \ --availability-zone me-south-1a \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=Public-A}]' \ --output text --query 'Subnet.SubnetId' |
同様に他のサブネットも作成し、--availability-zone のみを変更すれば完了です。
3‑3. IGW と NAT ゲートウェイの設定
インターネットゲートウェイ(IGW)
|
1 2 3 4 5 6 7 8 9 10 11 |
# IGW 作成 igw_id=$(aws ec2 create-internet-gateway \ --region me-south-1 \ --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=Saudia-IGW}]' \ --output text --query 'InternetGateway.InternetGatewayId') # VPC にアタッチ aws ec2 attach-internet-gateway \ --vpc-id <VpcId> \ --internet-gateway-id $igw_id |
パブリックサブネット用ルートテーブル
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
rt_pub=$(aws ec2 create-route-table \ --vpc-id <VpcId> \ --region me-south-1 \ --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=Public-RT}]' \ --output text --query 'RouteTable.RouteTableId') aws ec2 create-route \ --route-table-id $rt_pub \ --destination-cidr-block 0.0.0.0/0 \ --gateway-id $igw_id \ --region me-south-1 # 各パブリックサブネットに関連付け aws ec2 associate-route-table \ --subnet-id <PublicSubnetAId> \ --route-table-id $rt_pub # B, C も同様に実行 |
NAT ゲートウェイ(プライベート向け)
- Elastic IP の確保
bash
eip_alloc=$(aws ec2 allocate-address --domain vpc \
--region me-south-1 --output text --query 'AllocationId')
- NAT ゲートウェイ作成(パブリックサブネット A に配置)
bash
nat_id=$(aws ec2 create-nat-gateway \
--subnet-id <PublicSubnetAId> \
--allocation-id $eip_alloc \
--tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=Saudia-NAT}]' \
--region me-south-1 \
--output text --query 'NatGateway.NatGatewayId')
- プライベートサブネット用ルートテーブルに NAT を設定
bash
rt_priv=$(aws ec2 create-route-table \
--vpc-id
--region me-south-1 \
--tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=Private-RT}]' \
--output text --query 'RouteTable.RouteTableId')
aws ec2 create-route \
--route-table-id $rt_priv \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id $nat_id \
--region me-south-1
# プライベートサブネット A/B/C に関連付け
aws ec2 associate-route-table \
--subnet-id
--route-table-id $rt_priv
4. コンピューティングとストレージのデプロイ
VPC が整ったら、実際に EC2 と S3 を作成し、リージョン固有の設定(データレジデンシー・セキュリティ) を適用します。
4‑1. Amazon Linux 2024 の EC2 インスタンス起動手順
まずは対象リージョンで利用可能な AMI ID を取得し、t3.micro(Free Tier 対象)でインスタンスを作成します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# AMI ID 取得(Amazon Linux 2024, x86_64) ami_id=$(aws ec2 describe-images \ --owners amazon \ --filters "Name=name,Values=al2024-ami-hvm-*-x86_64-gp2" \ --query 'Images | sort_by(@, &CreationDate)[-1].ImageId' \ --region me-south-1 \ --output text) # セキュリティグループ作成 sg_id=$(aws ec2 create-security-group \ --group-name Saudia-WebSG \ --description "Web SG for Riyadh region" \ --vpc-id <VpcId> \ --region me-south-1 \ --output text --query 'GroupId') # 必要なポートだけ開放(例: SSH と HTTP) aws ec2 authorize-security-group-ingress \ --group-id $sg_id \ --protocol tcp --port 22 --cidr 0.0.0.0/0 \ --region me-south-1 aws ec2 authorize-security-group-ingress \ --group-id $sg_id \ --protocol tcp --port 80 --cidr 0.0.0.0/0 \ --region me-south-1 # EC2 インスタンス起動 instance_id=$(aws ec2 run-instances \ --image-id $ami_id \ --count 1 \ --instance-type t3.micro \ --key-name MyKeyPair \ --security-group-ids $sg_id \ --subnet-id <PublicSubnetAId> \ --associate-public-ip-address \ --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=Saudia-Web}]' \ --region me-south-1 \ --output text --query 'Instances[0].InstanceId') |
ベストプラクティス
| 項目 | 推奨設定 |
|---|---|
| IAM ロール | AmazonS3ReadOnlyAccess など最小権限を付与 |
| 自動パッチ | CloudWatch Events(EventBridge)で yum update -y を定期実行 |
| ログ保管 | CloudTrail → S3 バケット(同リージョン)へ保存 |
4‑2. S3 バケットのリージョン固定とアクセス制御ポリシー
データレジデンシー要件(PDPL)を満たすため、バケット作成時に LocationConstraint とエンドポイントを明示します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
bucket_name=my-saudi-data-$(date +%s) aws s3api create-bucket \ --bucket $bucket_name \ --create-bucket-configuration LocationConstraint=me-south-1 \ --region me-south-1 # リージョン以外からの操作を拒否するバケットポリシー policy='{ "Version":"2012-10-17", "Statement":[{ "Sid":"EnforceRegion", "Effect":"Deny", "Principal":"*", "Action":"s3:*", "Resource":["arn:aws:s3:::'"$bucket_name"'","arn:aws:s3:::'"$bucket_name"'/*"], "Condition":{"StringNotEquals":{"aws:RequestedRegion":"me-south-1"}} }] }' aws s3api put-bucket-policy \ --bucket $bucket_name \ --policy "$policy" \ --region me-south-1 |
このポリシーにより、me‑south‑1 以外からの API 呼び出しはすべて拒否され、法令遵守が自動的に保証されます。
5. セキュリティ・コンプライアンス・運用最適化
サウジアラビア向けクラウド利用では、リージョン制限、エッジロケーション活用、コスト管理、PDPL(個人データ保護法)への対応 が重要です。
5‑1. IAM 条件付きポリシーでリージョンを限定する例
aws:RequestedRegion 条件キーを使うと、意図しない他リージョンへのリソース作成を防げます。以下は 全てのアクションを me‑south‑1 に限定 した Deny ポリシーです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyOutsideSaudiRegion", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "me-south-1" } } } ] } |
このポリシーは管理者ロールやサービスロールに付与すれば、リージョンミスによるコスト増大やコンプライアンス違反を防止できます。
5‑2. CloudFront エッジロケーション(ジェッダ)活用のポイント
2025 年 1 月に AWS がサウジアラビア・ジェッダにエッジロケーションを追加 したことが公式に発表されています。最新情報は次の URL を参照してください。
実装上の留意点
| 項目 | 推奨設定 |
|---|---|
| オリジン | me-south-1 の S3 バケットまたは ALB(例: my-saudi-data.s3.me-south-1.amazonaws.com) |
| キャッシュポリシー | Cache-Control: public, max-age=86400 で 24 時間キャッシュ |
| Geo Restriction | データが既に国内にあるため不要。ただし、外部からの直接アクセスを制限したい場合は CloudFront のホワイトリスト機能を活用 |
5‑3. コスト管理と予算アラート設定手順
リージョン別のコスト把握は Cost Explorer と Budgets を組み合わせると便利です。
Cost Explorer によるリージョングループ化
- AWS コンソール → Billing > Cost Explorer
- 「Create report」→「Group by」で
Regionを選択 - 必要に応じて期間やサービス別のフィルタを追加
Budgets で月額上限アラート(CLI 例)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
aws budgets create-budget \ --account-id <YourAccountId> \ --budget '{ "BudgetName":"Saudi-Region-Monthly", "BudgetLimit":{"Amount":"300","Unit":"USD"}, "TimeUnit":"MONTHLY", "BudgetType":"COST" }' \ --notifications-with-subscribers '[{ "Notification":{ "NotificationType":"ACTUAL", "ComparisonOperator":"GREATER_THAN", "Threshold":80, "ThresholdType":"PERCENTAGE" }, "Subscribers":[{ "SubscriptionType":"EMAIL", "Address":"ops@example.com" }] }]' \ --region me-south-1 |
この設定で、me‑south‑1 に対する月間コストが 80 %(=240 USD)に達した時点でメール通知が届きます。
5‑4. PDPL(個人データ保護法)対応と AWS Artifact の活用
サウジアラビアの Personal Data Protection Law (PDPL) は、個人情報を国内に保存・処理することを義務付けています。AWS が提供する証明書類は AWS Artifact から取得できます。
| 手順 | 内容 |
|---|---|
| 1. Artifact にアクセス | コンソール → Security, Identity & Compliance > Artifact |
| 2. ダウンロード対象 | ISO/IEC 27001、SOC 1・SOC 2、PDPL 適合声明(PDF) |
| 3. 証跡の保存 | 取得したレポートを社内コンプライアンスリポジトリに格納し、監査時に提示できるよう管理 |
また、CloudTrail を me‑south‑1 の S3 バケットへ配信すれば、全 API アクティビティが証拠として残ります。
|
1 2 3 4 5 6 7 |
aws cloudtrail create-trail \ --name SaudiaTrail \ --s3-bucket-name $bucket_name \ --is-multi-region-trail false \ --region me-south-1 aws cloudtrail start-logging --name SaudiaTrail --region me-south-1 |
6. 実践チェックリストと次のステップ
以下の項目を順に実行すれば、サウジアラビアリージョンでの本格運用準備が完了します。各作業は Free Tier の範囲内でも実施可能です。
- [ ] リージョン有効化 – コンソール → Region activation で
me‑south‑1を ON - [ ] プロファイル設定 –
aws configure set region me-south-1 --profile saudi - [ ] VPC 作成 – CIDR
10.0.0.0/16、タグ付与 - [ ] サブネット配置 – 各 AZ に Public/Private の /24 サブネットを作成
- [ ] IGW/NAT 設定 – パブリックは IGW、プライベートは NAT GW でインターネット接続
- [ ] EC2 デプロイ – Amazon Linux 2024
t3.micro(Free Tier)を起動し、IAM ロール付与 - [ ] S3 バケット作成 –
LocationConstraint=me-south-1とリージョン制限ポリシー適用 - [ ] IAM 条件付きポリシー –
aws:RequestedRegionでリージョン限定を実装 - [ ] CloudFront 設定 – ジェッダエッジロケーション活用、キャッシュ最適化
- [ ] Cost Explorer / Budgets – リージョン別コストレポートとアラート設定
- [ ] PDPL 対応 – Artifact からコンプライアンス証明書取得、CloudTrail 設定
これらを完了したら、本番環境への拡張(RDS、EFS、ALB 等)や 自動化(Terraform / CloudFormation) を検討してください。
まとめ
- 正しいリージョンコードはme‑south‑1(Riyadh)。
- 有効化はコンソールのみで可能、CLI はサポート外。
- デフォルトリージョン設定・VPC 設計・セキュリティポリシーを一通り実装すれば、PDPL など法令遵守も自動的にカバーできます。
このガイドが、サウジアラビアでの AWS 活用をスムーズに進める第一歩となりますように。 Happy Cloud!