こんにちは、インフラエンジニアのryuです。
この記事は、AWSクラウドプラクティショナー(CLF-C02)の勉強をしていて、リージョン・AZ・エッジロケーションの違いがあいまいな人に向けて書いています。
3つとも「AWSの設備がある場所」を表す言葉なので、ふんわり覚えていると問題で迷いやすいところです。特に、可用性を上げたいのか、ユーザーに速く届けたいのかで答えが変わる問題は、よく出る形です。
この記事では、3つの違いを何のために使う場所なのかという点から整理します。そのあと、サービスがどの単位で動くか、リージョンの選び方、CloudShellでの確認、確認問題4問と進めていきます。
CLF-C02全体の勉強の進め方は、CLF-C02の勉強方法の記事にまとめています。
CLF-C02ではどこで問われる?¶
まずは、試験の範囲を確認しておきます。リージョンやAZは、CLF-C02の4つの分野のうち「クラウドテクノロジーとサービス」に入っています。この分野は配点の34%で、4分野の中でいちばん大きい分野です。
その中のタスク3.2が「AWSのグローバルインフラストラクチャを定義する」です。試験ガイドでは、リージョン・AZ・エッジロケーションの関係や、複数のAZを使って高可用性を実現すること、複数のリージョンを使う場面などが挙げられています。
つまり、言葉の意味を覚えるだけでなく、「この要件ならどれを使うか」を選べることが求められています。
リージョン・AZ・エッジロケーションの違いとは?¶
最初に、3つの違いを表で並べてみます。
| 項目 | リージョン | アベイラビリティゾーン(AZ) | エッジロケーション |
|---|---|---|---|
| ひとことで言うと | 世界の地域ごとの拠点 | リージョンの中にある、独立したデータセンターのまとまり | ユーザーの近くに置かれた配信用の拠点 |
| 例 | 東京(ap-northeast-1)、大阪(ap-northeast-3) |
ap-northeast-1a など |
CloudFrontのキャッシュを置く拠点 |
| 主な目的 | データを置く国や地域を決める、ユーザーとの距離を縮める | 障害に強い構成にする(高可用性) | コンテンツを速く届ける(低レイテンシー) |
| 関係するサービスの例 | ほとんどのサービス | EC2、サブネット、EBS | CloudFront、Route 53 |
大きさの関係でいうと、リージョンの中に複数のAZがあります。エッジロケーションはリージョンとは別に、世界中のもっと多くの都市に置かれています。
迷ったら、問題文が「止まらないようにしたい」のか「速く届けたい」のかを見ます。止まらないようにしたいならAZ、世界中のユーザーに速く届けたいならエッジロケーション、データを置く国や地域が決まっているならリージョンです。
リージョンは地域ごとの拠点¶
リージョンは、世界のそれぞれの地域にある、AWSの拠点のまとまりです。日本には東京リージョンと大阪リージョンがあります。
AWSの公式ページでは、現在39のリージョンと124のAZがあると案内されています。数は毎年のように増えていくので、試験のために数字を覚える必要はありません。
リージョンどうしは、それぞれ独立して動いています。東京リージョンで作ったEC2のインスタンスは、マネジメントコンソールで大阪リージョンに切り替えると一覧に出てきません。初めてAWSを触った人が「作ったはずのサーバーが消えた」と驚くのは、たいていこれが原因です。
AZはリージョンの中のデータセンター群¶
アベイラビリティゾーン(AZ)は、リージョンの中にある、1つ以上のデータセンターのまとまりです。AZごとに電源やネットワークが冗長化されていて、AZどうしは物理的に離れています。
同じリージョンのAZどうしは、帯域が広く遅延の小さいネットワークでつながっています。そのため、1つのシステムを複数のAZに分けて置いても、普段の通信にはほとんど困りません。
ここで覚えておきたいのは、1つのAZが止まっても、別のAZで動き続けられるように作るのが、AWSで高可用性を考えるときの基本だという点です。EC2のインスタンスを2つのAZに1台ずつ置き、ロードバランサーで振り分ける構成がよく例に出ます。
エッジロケーションは配信のための拠点¶
エッジロケーションは、ユーザーにコンテンツを速く届けるための拠点です。CDNのサービスであるCloudFrontが、ここに画像や動画などのコピー(キャッシュ)を置きます。
ユーザーは、遠くのリージョンまで取りに行かずに、近くのエッジロケーションからデータを受け取れます。DNSのサービスであるRoute 53も、エッジロケーションを使って動いています。
S3とCloudFrontを組み合わせてWebサイトを配信する例は、S3とCloudFrontでサイトを公開する記事で実際の手順を紹介しています。
サービスはどの単位で動いている?¶
リージョンとAZの違いが分かったら、次はサービスがどの単位で作られるかを見ておきます。ここを押さえると、問題文の意味がかなり読みやすくなります。
| 単位 | 代表的なサービス・リソース | 意味 |
|---|---|---|
| グローバル | IAM、CloudFront、Route 53 | リージョンを選ばずに使える |
| リージョン | S3のバケット、VPC、Lambda | 作るときにリージョンを選ぶ |
| AZ | EC2のインスタンス、EBSのボリューム、サブネット | 作るときにAZまで決まる |
たとえば、EC2のインスタンスはどれか1つのAZの中で動きます。そのAZに障害が起きると、そのインスタンスは影響を受けます。だから、可用性を上げたいときは「複数のAZに分けて置く」という答えになるわけです。
S3のバケットはリージョンを選んで作り、標準のストレージクラスでは、データはそのリージョンの中の複数のAZに保存されます。IAMはグローバルなので、ユーザーやロールをリージョンごとに作り直す必要はありません。IAMについては、IAMユーザーとIAMロールの違いで詳しく整理しています。
ローカルゾーンとWavelengthゾーン¶
試験ガイドでは、エッジロケーションのほかに、AWS Local ZonesやAWS Wavelengthといった言葉も出てきます。どちらも、ユーザーにより近い場所でサービスを動かして、遅延を小さくするための仕組みです。
CLF-C02では、細かい仕様よりも「特定の都市の近くで低い遅延が必要ならLocal Zones」「5Gのネットワークの近くで動かすならWavelength」くらいの区別ができれば十分です。
リージョンはどうやって選ぶ?¶
複数のリージョンがあると、どれを使えばいいか迷いますよね。AWSのアーキテクチャブログでは、リージョンを選ぶときの観点として、次の4つが挙げられています。
| 観点 | 考えること |
|---|---|
| コンプライアンス | 法律や社内の決まりで、データを置く国や地域が決まっていないか |
| レイテンシー | 使う人がいる場所から近いか |
| 料金 | 同じサービスでも、リージョンによって料金が違う |
| 使えるサービス | 使いたいサービスや機能が、そのリージョンで提供されているか |
この中で、コンプライアンスはほかの観点より優先されます。データを国内に置くことが決まっているなら、料金が安くても海外のリージョンは選べません。
試験でも「データを特定の国の中に保存する必要がある」という条件が出たら、リージョンを選ぶ問題だと考えてよいです。
複数のAZと複数のリージョンの使い分け¶
もう1つ迷いやすいのが、「複数のAZ」と「複数のリージョン」のどちらを答えるかです。違いを表にしておきます。
| 構成 | 守れるもの | 向いている場面 |
|---|---|---|
| 1つのリージョンの複数AZ | データセンター単位の障害 | 普通の高可用性の構成 |
| 複数のリージョン | 地域全体に影響する大きな障害 | 災害対策、海外のユーザーへの低い遅延、データの所在地の要件 |
ふだんの「止まらないようにしたい」という要件なら、まずは複数AZです。地域ごと使えなくなるような災害に備える、という条件が出てきたら、複数リージョンを考えます。
今日やる練習:CloudShellでリージョンとAZを見てみる¶
ここで、実際にAWSで手を動かしてみましょう。使うのは AWS CloudShell と、AWS CLIのコマンドです。
CloudShellは、追加の料金なしで使えるサービスです。ここで打つコマンドは情報を表示するだけで、リソースは作りません。AWSのアカウントが無い人は、AWSの新しいサインアップの記事で作り方の注意点を確認しておいてください。
手順1:使えるリージョンの一覧を表示する¶
マネジメントコンソールにログインし、画面上部のCloudShellのアイコンを開きます。次のコマンドを打ってみてください。
aws ec2 describe-regions --query "Regions[].RegionName" --output table
ap-northeast-1 や us-east-1 のような、リージョンの名前が表で表示されます。ここに出てくるのは、自分のアカウントで有効になっているリージョンです。
手順2:東京リージョンのAZを表示する¶
次に、東京リージョンのAZを一覧にします。
aws ec2 describe-availability-zones --region ap-northeast-1 \
--query "AvailabilityZones[].{Name:ZoneName,ID:ZoneId,State:State}" \
--output table
Name の列には ap-northeast-1a のようなAZの名前、ID の列には apne1-az1 のようなAZのIDが出ます。1つのリージョンに複数のAZがあることが、自分の目で確かめられます。
結果の読み方¶
AZの名前とAZのIDが分かれているのには理由があります。AWSのドキュメントによると、AZの名前と実際の場所の対応は、アカウントによって異なる場合があります。
別のアカウントと「同じAZ」を指したいときは、
ap-northeast-1aのような名前ではなく、apne1-az1のようなAZのIDで確認します。
ここまでできたら、--region を ap-northeast-3 に変えて、大阪リージョンのAZも表示してみてください。リージョンを変えると結果が変わることが、リージョンが独立していることの確認になります。
確認問題4問¶
ここからは、この記事のために作ったオリジナルの問題です。実際の試験の問題ではありません。
問題1:世界中のユーザーに画像を速く届けたい¶
ある会社は、東京リージョンのS3に置いた画像を、世界中のユーザーに表示しています。海外のユーザーから、画像の表示が遅いという声が出ました。遅延を小さくするために、もっとも適切なものはどれでしょうか。
- A. 東京リージョンの別のAZにS3のバケットを作る
- B. CloudFrontを使い、エッジロケーションから画像を配信する
- C. EC2のインスタンスのサイズを大きくする
- D. IAMのポリシーを見直す
正解:B
CloudFrontは、エッジロケーションにコンテンツのキャッシュを置いて、ユーザーの近くから配信します。Aのように同じリージョンの中でAZを変えても、海外のユーザーとの距離は変わりません。CとDは、配信の遅延とは関係がありません。
問題2:データセンターの障害でも止めたくない¶
EC2で動くWebアプリケーションを、1つのデータセンターに障害が起きても動き続けるようにしたいと考えています。もっとも適切な構成はどれでしょうか。
- A. 1つのAZに、大きなインスタンスを1台置く
- B. 同じリージョンの複数のAZにインスタンスを分けて置く
- C. エッジロケーションにインスタンスを置く
- D. 1つのAZに、インスタンスを2台置く
正解:B
AZは、電源やネットワークが独立したデータセンターのまとまりです。複数のAZに分けて置けば、1つのAZに障害が起きても、残りのAZで動き続けられます。Dのように同じAZに2台置いても、そのAZ全体に障害が起きると両方が止まります。
問題3:データを国内に置く決まりがある¶
ある会社では、顧客のデータを日本国内に保存するように社内で決められています。AWSを使うときに、まず考えるべきことはどれでしょうか。
- A. 日本にあるリージョンを選ぶ
- B. エッジロケーションの数が多いリージョンを選ぶ
- C. 料金がいちばん安いリージョンを選ぶ
- D. どのリージョンでも、AWSが自動で国内にデータを置く
正解:A
データを置く場所は、リージョンを選ぶことで決まります。データの所在地の決まりがあるときは、料金や使えるサービスよりも先に、決まりを満たすリージョンに絞り込みます。AWSがリージョンをまたいで自動でデータを移すわけではないので、Dは誤りです。
問題4:AZの単位で作られるもの¶
次のうち、作るときにAZまで決まるものはどれでしょうか。
- A. IAMユーザー
- B. S3のバケット
- C. VPCのサブネット
- D. CloudFrontのディストリビューション
正解:C
サブネットは、VPCの中で1つのAZを選んで作ります。IAMユーザーとCloudFrontのディストリビューションはグローバル、S3のバケットはリージョンの単位で作ります。EC2のインスタンスは、どのサブネットに置くかでAZが決まります。
InfraAcademyで続ける¶
確認問題で迷ったところがあれば、この記事の表に戻ってみてください。言葉の意味より、「問題文の要件がどれに当たるか」で見ると整理しやすくなります。
InfraAcademyのAWS講座では、講座の中のシミュレーターで、AWSの操作を練習できます。VPCやEC2の画面で、リージョンやAZを選ぶ場面を実際に体験しておくと、問題文の状況が想像しやすくなります。講座の順番は、AWSのロードマップにまとめています。
問題演習を続けたい人は、トップページのInfraAcademy の資格模擬問題から「AWS認定 クラウドプラクティショナー模擬試験150問」を解けます。クラウドテクノロジーとサービスの分野で間違えた問題は、どの単位の話なのかを考えながら見直してみてください。
サービスの名前がなかなか覚えられない人は、AWSのサービスが覚えられない人向けの記事もあわせて読んでみてください。EC2の基本は、EC2とは?で説明しています。
まとめ¶
リージョン・AZ・エッジロケーションの違いを振り返ります。
- リージョンは世界の地域ごとの拠点。データを置く国や地域、ユーザーとの距離で選ぶ
- AZはリージョンの中の独立したデータセンターのまとまり。複数のAZに分けて置くと、障害に強くなる
- エッジロケーションは配信のための拠点。CloudFrontでユーザーの近くから届ける
- IAMはグローバル、S3のバケットやVPCはリージョン、EC2やサブネットはAZの単位で作る
- リージョンは、コンプライアンス・レイテンシー・料金・使えるサービスの4つで選ぶ。決まりがあるならコンプライアンスが最優先
この3つは、CLF-C02だけでなく、その先のAWSの設計の話でもずっと使う考え方です。
「止まらないようにしたいのか、速く届けたいのか、置く場所が決まっているのか」を問題文から読み取れれば、迷う問題はかなり減ります。CloudShellでの確認もぜひやってみてください。応援しています。
参考¶
- AWS Certified Cloud Practitioner (CLF-C02) 試験ガイド - AWS
- Global Infrastructure Regions & AZs - AWS
- Global infrastructure - Overview of Amazon Web Services
- Availability Zones - AWS Fault Isolation Boundaries
- AZ IDs - AWS Regions and Availability Zones
- What to Consider when Selecting a Region for your Workloads - AWS Architecture Blog
- AWS CloudShell の料金 - AWS



