今回から代表的なAWSサービスの説明を行います。本記事ではネットワークの環境設定を行うための代表的なAWSサービスについて紹介します。
目次
はじめに
今回から個別のサービスについて紹介していきます。本記事ではクラウドの環境にネットワークを構築するためのサービスについてまとめていきます。具体的には、以下の3つのサービスを紹介します。 ・ Amazon VPC ・ Amazon Route 53 ・ Elastic Load Balancing各種サービスによって提供されるネットワークの概要
簡単にイメージするために、今回紹介する各種サービスが行っていることが実際の物理機器がある場合にどのようになるのかを考えてみましょう。 AWSのネットワークサービスが行っていることは、ネットワークに接続したい機器がどのような相手とどのような形で通信するのかを決めるという、ルーター(ブリッジ)やDNSが担っている部分に当たります。 例えば、VPCを見てみましょう。詳しくは後述しますがVPCはサブネットワークそのものであり、その内部のさらに小さなサブネットワークをどのように運用するのか、そして外部との通信をどのように行うのかを決めます。これらは、ネットワーク間のやり取りを規定するという点でルーターに似ています(もちろん、両者で異なる機能もありますが)。 大事なのは、図のようにこれらのサービスはサブネットワーク間の通信やサブネットワーク内部の通信をどうやって行い、誰にパケットを送信するのかを決めるということです。この点を踏まえながら、それぞれのサービスについて詳しくみていきましょう。Amazon VPC
まずはじめに、VPCとはVirtual Private Cloudの略称で、(1)AWSの環境内で作成した仮想ネットワークそのもの、(2)仮想ネットワークやその通信を管理するサービスとして大きく2パターンの文脈で使用されるようです。本記事では両者の混同を避けるため、以後前者をVPC、後者をAmazon VPCと区別して呼ぶことにします。 さて、端的に言えばAmazon VPCはAWS環境内にネットワークを作成して、そのネットワークの性質を決めるサービスになります。ここではネットワークの構築、ネットワーク間の通信、ネットワークのセキュリティの順に説明します。Amazon VPCの作るネットワーク単位
まず、作成されるネットワークそのものの持つ性質について説明します。 AmazonVPCではVPCと呼ばれるネットワークが作成され、その中に複数のサブネットを作ることが可能です。VPCは複数のアベイラビリティ・ゾーン(AZ)を跨ぐことができますが、サブネットはAZごとに用途に合わせて作られ、外部接続をしないプライベートサブネットにすることも可能です(逆に外部との通信を行うものをパブリック接続という)。Amazon VPCの定義するネットワーク間の通信
ここまでの説明でネットワーク本体の作成はできていますが、ネットワークとインターネットを繋ぐ部分の設定を行っていないため、このままでは別のVPCやAWSリソース、外部のネットワークなどにはアクセスできません。これを解消するためにはゲートウェイなどのリソースを設置する必要があります。 通信を行うために使用するリソースは次のようです。- NAT ゲートウェイ (NAT GW)
- インターネットゲートウェイ (Internet GW)
- VPC エンドポイント (VPC Endpoint)
- VPC ピアリング (VPC Peering)
- VPNゲートウェイ (VPN GW)
- トランジットゲートウェイ (Transit GW)
- カスタマーゲートウェイ (Customer GW)
サブネットとインターネットの通信
サブネットとインターネットの通信は、写真の黄色の部分のような経路を通って行われます。このため、サブネット自体の性質によらずサブネットとインターネットの通信にはInternet GWは必須となり、プライベートサブネットを使う場合はこれに加えてNAT GWが必要ということになります。
この2つのゲートウェイはいずれもプライベートIPアドレスとグローバルIPアドレスを変換するNAT機能を有しています。しかし、Internet GWが1:1のIPアドレス変換を行う一方でNAT GWは多:1の変換を行うため、パブリックサブネットからの通信は双方向で可能ですがNAT GWを通る必要のあるプライベートサブネットの通信はサブネットから出る通信のみしか行えないという違いがあります。これにより、保守性を高めているということです。ユースケースに合わせて区別しましょう。
オンプレミス環境 (別のプライベート環境)とVPCの通信
VPCでは別のプライベート環境との通信方法として図の青色の線のようなVPN接続をサポートしています(ここではVPN接続についての説明は割愛します)。そして、VPN接続を行うために使用するのがVPN GWとCustomer GWになります。前者はAWSの環境に、後者はVPN接続先の環境に配置します。ルーティングについての細かい話も割愛しますが、動的にも静的にもルーティングすることが可能です。
別のVPCとの通信
VPC間の通信についてはプライベートアドレスを使用して相互に通信を行うことができます。この時に必要になるのがVPC Peeringです。同じリージョン内で、かつVPC Peeringさえ置いてあれば別のアカウントでも相互接続可能になります。
VPCと別のAWS内に置かれたリソース間での通信
また別途扱いますが、AWSでは一部のサービスにおいてVPCやサブネット外にリソースが置かれるものがあります(S3, DynamoDBなど)。これらにインターネットを経由することなくアクセスするために設置するのがVPC Endpointです。これにより図中緑のような経路でAWS内のみを通ってアクセスすることができるようになります。
なお、通信の際に必要な設定が違うことから、アクセスするサービスに応じてVPC Endpointは2種類に分けられます。
トランジットゲートウェイについて
トランジットゲートウェイは上記すべての接続を統合したネットワーク管理サービスであり、AWSのデフォルトの上限よりも多くのVPN接続を張ることができるなど、接続の形態が複雑化した場合などで有用になることがあります。ただし、追加の機能はほとんどないのでここでは軽く触れるだけにとどめます。

