AWS(Amazon Web Services)は、クラウドコンピューティング環境です。
サーバ、ファイルシステム、データベースなどの全てのリソースは仮想的なものとして利用できます。
この点に関してはネットワークインフラについても同様です。
AWSにおける仮想サーバはEC2インスタンスと呼ばれます。
EC2とは(Amazon Elastic Compute Cloud)の略で、AMI(Amazon Machine Image)と呼ばれるイメージを選択して起動します。
AMIはLinuxやWindowsなどのOSがインストールされたイメージで、管理者ユーザーの設定からディスク、ネットワークの設定が完了しています。
AMIによっては、他にも便利なソフトウェアが初期インストールされているものもあり、様々なスペックのものから自由に選択することができます。
また、これらのスペックは自由に変更することもでき、柔軟にサーバをスケールすることができます。
EC2が利用するストーレージは、EBS(Amazon Elastic Block Store)と呼ばれるストレージで、SSDタイプやHDDタイプなど様々な種類から選ぶことができます。
ストレージについても、後から容量を増やすことが可能です。
EC2インスタンスは仮想的なものですが、世界中の様々な場所でホスティングされていて、どこかの物理的なサーバの中に配置されています。
この配置されるエリアの単位がリージョンとアベイラビリティゾーンです。
リージョンとはAWSの拠点のことを指します。
世界中にまたがるいくつかの拠点でAWSは運営されていて、それぞれの拠点のことを「リージョン」と呼んでいます。
2022年9月現在、AWSには合計27のリージョンと87のアベイラビリティゾーンがあります。
そして今後、オーストラリア、カナダ、インド、イスラエル、ニュージーランド、スペイン、およびスイスに21アベイラビリティーゾーンと7AWSリージョンを追加する計画が発表されています。
そして、それぞれのリージョンにはコードが割り当てられていて、例えば東京リージョンであれば[ap-northeast-1]といったリージョンコードになります。
各リージョンは完全に独立していて次のような制約があります。
これだけ多くのリージョンがあると、どのリージョンを選べばいいか分からなくなってしまいがちですが、そこはパフォーマンスを指針にしてリージョンを決定することをおすすめします。
ネットワークのレイテンシーを考慮した場合、エンドユーザーとの物理的な距離が近いほうが、高いパフォーマンスを発揮することができます。
そういった理由から、国内のエンドユーザー向けのサービスを提供する場合には、一般的に「東京リージョン-ap-northeast-1」を利用します。
しかし、最新のサービスなどは、東京リージョンでは提供されていないケースもあるため、そういった場合は、アメリカの「オレゴン-us-west-2」や「バージニア北部-us-east-1」などを利用します。
これら物理的に離れた箇所にいくつものリージョンがあるのには、世界規模の災害対策としてシステムを分散させて運用することを目的にしているからです。
各リージョンには、複数のデータセンタがあります。
このデータセンタのことをAWSでは「アベイラビリティゾーン」と呼びます。
1つのリージョンには必ず複数のアベイラビリティゾーンがあり、その理由は耐障害対策のためです。
アベイラビリティゾーンは、物理的、電気的、ネットワーク的に隔離された施設で、特定のアベイラビリティゾーンで障害が発生しても、他のアベイラビリティゾーンには影響を及ぼさないように配慮されています。
アベイラビリティゾーンの名称は、リージョンコードの後ろに[a][b][c]の小文字をを付けたものになります。
先ほどの東京リージョンであれば、[ap-northeast-1-a][ap-northeast-1-c]の2つのリージョンが存在し、この2つのリージョンを利用することができます。
EC2インスタンスのようなVPCの中で稼働するリソースを扱う際には、どのアベイラビリティゾーン上に構成したネットワークに配置するのかを指定します。
また、よく使われるEC2やRDSといったサービスは、大抵はリソースを配置するときに、どのアベイラビリティゾーンに配置するのかを指定します。
したがって、S3やDynamoDBなどのVPCとは独立して稼働するサービスについてはリージョンのみの指定となります。
アベイラビリティを指定するのは、VPCが関連するEC2インスタンスなどのサーバリソース系のサービスになり、どのアベイラビリティゾーンに配置するかを明示的に決めることで、明示的に冗長性や負荷分散などの仕組みをコントロールすることができるのです。
次回は、VPCの構築について紹介します。
関連記事