LoginSignup
0
0

AWSのインフラストラクチャ構成

Posted at

はじめに

 クラウドサービスがどのようにしてサービスを提供しているのかを知るために、
 AWS(Amazon Web Services)を調べた結果をまとめた記事です。

 具体的には、どのような施設や設備が基盤となって構築されているのか、そしてその
 インフラ上に構築される仮想ネットワーク内の環境についてです。

 本記事は、画像を含めAWS公式サイトを参考に作成したものです。そのため、記事内容
 の著作権はAWSに帰属します。また、記事内容は2024年6月時点のものであるため、現
 在のサービス内容との相違が含まれている可能性があります。

AWSのインフラ

リージョンとは

 AWSは世界各地にあるデータセンター群によってサービスを提供している。データ
 センター群はリージョンと呼ばれ、地理的に離れた場所に点在している。
 日本では、東京リージョン(ap-northeast-1)と大阪リージョン(ap-northeast-3)の
 2つが存在している。
 現存するリージョン数と立地を示す地図は下記URL参照。

AZとは

 リージョン内は3つ以上のアベイラビリティゾーン(AZ)に分割されている。これは、
 通信障害や災害が発生しても影響範囲を限定的にし、システムを継続して稼働でき
 るようにするためである。つまり、AZはリージョンを論理的に分割した範囲である。
AZのインフラ
 AZは1つ以上のデータセンターで構成されている。データセンターやAZ間は専用の
 メトロファイバーで相互接続されていて、通信は全て暗号化されている。
 AZ間は互いに数km~100km(60マイル)以内に配置されている。これは、通信障害や
 災害の影響を最小限に留めるための対策として同期的なレプリケーションを講じて
 いるためであり、その遅延時間を1桁ミリ秒に抑えるためである。
AZのインターネット接続
 リージョン内にはAZだけでなく2つのトランジットセンターが存在し、それらは複
 数のTier1プロバイダとピアリングによって繋がっている。AZはトランジットセンタ
 ーを経由することでインターネットに接続している。2つのトランジットセンターが
 存在することで、障害や災害による通信切断を防ぐことができる。

リージョン内のネットワーク構成図

availability-zones.png

節まとめ
 AWSは世界各地にある複数のデータセンター群(リージョン)で構成されている。
 リージョンは複数のアベイラビリティゾーン(AZ)で構成されている。
 複数で構成されている理由は、システムの可用性を高めるための施策である。

インフラ内に構築される仮想ネットワーク

VPCとは

 AWSは様々なクラウドサービスを提供しており、その内の1つにAmazon EC2がある。
 これは仮想サーバーサービスであり、仮想サーバーと仮想ネットワークの構築や仮想
 ファイアウォールなどの機能を提供してくれる。この内の仮想ネットワークのことを
 VPCと呼ぶ。EC2は1つのリージョン内に属するVPCを提供し、利用者はここにネット
 ワーク環境を構築していく。

パブリック/プライベートサブネットとは

 VPCにはプライベートIPアドレスが割り当てられる。それをサブネットマスク(CIDRブロ
 ック)を利用することで、VPC内に複数のサブネットを構築することができる。
2つの違い
 サブネットには、パブリックとプライベートサブネットの2種類がある。サブネット
 が持つルーティングテーブルにインターネットゲートウェイ(IGW)へのルートがある
 ものをパブリックサブネットと呼び、そうでないものをプライベートサブネットと呼
 ぶ。つまり、インターネットに接続しているかが2つのサブネットの違いである。
構築場所
 サブネットは1つのリージョン内であれば、AZをまたいだ構築が可能である。例えば、
 東京リージョンの1a(AZ)にプライベートサブネットを、1c(AZ)にパブリックサブネット
 といった作成ができる。
サーバー設置
 サブネット内には、webやデータベースなどの仮想サーバーを設置することができる。
 仮想サーバーはEC2インスタンスによって構築する。

EC2インスタンスとは

 EC2が提供する仮想サーバーをEC2インスタンスと呼ぶ。インスタンスは、サーバー
 として機能するのに必要なコンポーネント(OSなど)をパッケージ化したマシンイメ
 ージから生成される。
IPアドレスとネットワーク機器
 インスタンス作成時にプライベートIPアドレスを割り当てるが、インターネットに
 接続する場合は別途パブリックIPアドレス(もしくはElastic IPアドレス)の割り当てと
 インターネットゲートウェイが必要である。また、プライベート環境(他のVPCやオ
 ンプレミス)と通信する際はNATゲートウェイが必要である。

インターネットゲートウェイとは

 インターネットゲートウェイ(IGW)は、VPC内のEC2インスタンスをインターネットに
 接続するためのコンポーネント。IPv4とv6をサポートしている。
NAT機能の提供
 IGWは、NAT機能を提供している。インターネットからVPC内のインスタンスに向かう
 通信時には、送信先情報をインスタンスのパブリックIPアドレスからインスタンスのプ
 ライベートIPアドレスに書き換える。一方、インスタンスからインターネットに向かう
 通信時は、送信元情報をインスタンスのプライベートIPアドレスからインスタンスのパ
 ブリックIPアドレスに書き換える。
利用条件
 IGWを利用するには、IGWを作成しVPCにアタッチさせる必要がある。またインター
 ネットに接続するインスタンスは、IGWへのルートが設定されたルートテーブルを持
 つサブネット(つまりパブリックサブネット)に属し、かつインスタンス自身にパブリ
 ックIPアドレス(もしくはElastic IPアドレス)が割り当てられている必要がある。
 プライベートサブネットに属していてパブリックIPアドレスが割り当てられていない
 インスタンスがインターネットに接続するには、NATゲートウェイ(もしくはNATイン
 スタンス)を経由してIGWと通信する必要がある。

NATインスタンスはサポートを終了したAMIを使用しているため、AWS公式サイト
ではNATゲートウェイの使用を推奨しています。

NATゲートウェイとは

 NATゲートウェイは、プライベートサブネット内のインスタンスにNAPT機能を提供す
 るサービス。プライベートサブネット内のインスタンスもソフトウェアのインストー
 ルやアップデートなどの理由でインターネット接続する必要がある。
 NATゲートウェイとインスタンスを接続するタイプが、パブリックとプライベートの
 2種類ある。
接続タイプ
 パブリックNATゲートウェイの場合、インターネットやプライベート環境(他のVPCや
 オンプレミス)と接続し通信することができる。但し、NATゲートウェイをパブリック
 サブネット内に設置し、かつElastic IPアドレスが割り当てられていなければいけない。
 プライベートNATゲートウェイの場合、プライベート環境と通信できるがインターネッ
 トには接続することができない。こちらの接続タイプでは、設置するサブネットの制限
 はないしElastic IPアドレスを割り当てる必要もない。
 どちらのタイプでもプライベート環境と接続する場合、NATゲートウェイはtransit gateway
 もしくは仮想プライベートゲートウェイ(VGW)を経由してルーティングを行う。VGWは
NAPT機能
 パブリックNATゲートウェイの場合、送信元インスタンスのプライベートIPアドレスをNAT
 ゲートウェイのプライベートIPアドレスに書き換える。インターネット接続では、さらに
 IGWがNATゲートウェイのプライベートIPアドレスをElasticIPアドレスに書き換える。プラ
 イベート環境接続では、プライベートIPアドレスで通信する。
 プライベートNATゲートウェイの場合、インスタンスのプライベートIPアドレスをNATゲ
 ートウェイのプライベートIPアドレスに書き換える。そしてそれを使ってプライベート環
 境と通信を行う。

各サブネットからインターネット接続図

      public-nat-gateway-diagram.png

節まとめ

 AWSが提供する仮想ネットワーク(VPC)にネットワーク環境を構築していく。
 VPC内に複数のサブネットを作成することができ、インターネットに接続できる方を
 パブリックサブネット、できない方をプライベートサブネットと呼ぶ。
 サブネット内に設置する仮想サーバーをインスタンスという。
 一般家庭におけるルータの役割をVPC内ではインターネットゲートウェイやNATゲート
 ウェイが担っている。

DNSサービス

Route53とは

 AWSが提供するクラウドサービスの1つであるドメインネームシステム(DNS)サービスは、
 Amazon Route53が担ってる。Route53はドメイン登録、DNSルーティング、ヘルスチェ
 ックの3つの主要な機能を提供している。

ドメイン登録

 Route53を利用してドメイン登録を行うと、Amazon Registrar, Inc.もしくはGandiいずれか
 のレジストラがレジストリに登録申請してくれる。また、ドメイン名と同じ名前のパブリ
 ックホストゾーンが作成され、AWSが保有するRoute53ネームサーバの内のランダムな4つ
 のネームサーバがそれらを管理するようになる。
ホストゾーンとは
 ホストゾーンとは各ネームサーバ自身が管理するドメインとそのサブドメインのルーティ
 ング情報(DNSレコード)のまとまりである。例えば、example.comのホストゾーンには、
 example.comを自身が管理しているという情報や、サブドメインであるwww.example.com
 をウェブサーバに、同じくサブドメインのmail.emxample.comをEメールサーバにルーティ
 ングするための情報(レコード)が含まれている。

DNSルーティング

 Route53のDNSサーバーは、Route53ネームサーバとRoute53リゾルバで構成されている。
 Route53ネームサーバは、権威DNSサーバーでありパブリックホストゾーンとプライベ
 ートホストゾーンの2種類を管理している。
2つのホストゾーン
 パブリックホストゾーンは、パブリックIPアドレスに対するドメイン名のルーティング
 情報(DNSレコード)のまとまりである。プライベートホストゾーンは、プライベートIP
 アドレスに対するドメイン名のルーティング情報(DNSレコード)のまとまりである。1つ
 のサブネット内で通信するときはプライベートIPアドレスを使用するが、異なるサブネ
 ット間ではプライベートドメイン名を使用しRoute53Resolverを経由して通信する。
Route53Resolver
 Route53Resolverは、キャッシュDNSサーバーである。VPCは自身のIPアドレスに2加算し
 たアドレス、例えば10.0.0.0なら10.0.0.2をVPCエンドポイント(AWSサービスにプライベー
 ト接続でアクセスするためのコンポーネント)に割り当て、それを経由しRoute53Resolver
 と通信する。
インターネット通信
 VPC内のパブリックIPアドレスを持つインスタンスからインターネット上のリソースに通
 信する際、まずRoute53ResolverにDNSクエリを送信する。次にRoute53Resolverは自身が
 持つキャッシュ情報もしくは各ネームサーバに反復問い合わせを行い名前解決する。イン
 ターネット上のリソースがVPC内のドメイン名を持つインスタンスに通信する際は、各ネ
 ームサーバを辿っていきそのドメイン名が所属するホストゾーンを管理するRoute53が名
 前解決する。
プライベート環境通信
 オンプレミスや他VPCと通信の際は、エンドポイント(VPC外のリソースとRoute53resolver
 がDNSクエリ送受信するためのコンポーネント)を経由して双方に設置されたDNSリゾルバ
 が名前解決を行う。オンプレミスなどからVPC内にあるインスタンスの名前解決を行う場
 合、VPC内のインバウンドエンドポイントを経由してRoute53ResolverにDNSクエリを送信
 する。Route53Resolverは自身が持つ情報(キャッシュ)もしくはRoute53ネームサーバに問い
 合わせた結果を返す。VPC内のインスタンスからオンプレミスなどにあるリソースの名前
 解決を行う場合、VPC内インスタンスはVPCエンドポイントを経由してRoute53Resolverに
 DNSクエリを送信する。Route53Resolverはアウトバウンドエンドポイントを経由してオン
 プレミス内のDNSリゾルバに問い合わせて結果を受け取る。

オンプレミス/VPC間の名前解決の流れ図

Resolver-routing.png

ヘルスチェック

 Route53は世界各地にヘルスチェッカーを持っていて、それを用いてユーザが指定したエ
 ンドポイントの通信状況の正常性を確認することができる。具体的には、ウェブやEメー
 ルなどのサーバやアプリケーションといったリソースが正常であるか判断するため、イン
 ターネットを経由して自動リクエストを送信する。そして、連続したヘルスチェックに対
 する応答失敗のしきい値と応答時間の2つの値に基づいて正常性を評価する。ヘルスチェッ
 クによって冗長化されたシステム内の異常な状態のリソースを検知し、それをインターネ
 ットから遠ざけて正常なリソースにルーティングするようなことができる。

節のまとめ

 AWSのDNSはAmazon Route53が管理している。
 Route53が提供する主な機能は、ドメイン登録、DNSルーティング、ヘルスチェックの
 3つである。
 Route53はレジストラとしての役割を担っているため、ドメイン名を登録することがで
 きる。また、ネームサーバとしても機能するため、キャッシュDNSサーバーである
 Route53resolverと連動してDNSルーティングを制御している。
 ヘルスチェックは、VPC内のリソースの通信状況を確認するための機能である。

その他サービス

Transit Gateway
 複数のVPCやオンプレミスを接続する中央ハブ。
 各々をピアリング接続する際の手間や煩雑化を解消することができる。

AWS Direct Connect
 オンプレミスとVPC間を専用回線で直接接続する。

VGW
 VPCがVPNやAWS Direct Connect、Transit Gatewayと接続するために利用する
 ゲートウェイのこと。

Elastic IP
 固定(静的)IPアドレス。インスタンスに割り当てられるパブリックIPアドレスは
 起動/停止するたびに変化する動的IPアドレス。

参考文献

Amazon Web Services. 「AWS Documentation」. https://docs.aws.amazon.com/, (参照 2024-06-10).

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0