これまであまり物理的なネットワークに触れてこなかったエンジニアを対象に、AWSを用いてネットワークの基礎知識を解説する連載。今回は、「Amazon Virtual Private Cloud」(VPC)間の接続、IaaS(VPC)〜PaaS/SaaS間の接続について解説する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
これまであまり物理的なネットワークに触れられてこなかったSEやサーバ管理者、情シスなどの方を対象にネットワークの基本を「Amazon Web Services」(AWS)を用いて解説する本連載「AWSで学ぶクラウド時代のネットワーク基礎知識」。
前回まではネットワークの基本技術の説明とAWSの環境を用いた動作紹介という形でしたが、第4回の本稿は、AWSのネットワーク間を接続する方法、サービスを紹介します。
オンプレミス環境でネットワーク間を接続する場合、ルーターやスイッチなどのネットワーク機器を用いて接続する必要が生じますが、クラウドのネットワークは仮想的な環境なので、容易に接続できます。
なお、本稿では次の2つのネットワーク接続を対象とします。
まずはVPC間の接続についてです。異なるVPC上の端末間で通信する方法として、大きく分けて下記表の4つが存在します。以降でそれぞれの接続方式について説明しますが、2〜3個のVPCを接続する場合は「VPCピアリング」での接続が容易ですが、多数のVPCを接続する場合は「Transit Gateway」がお薦めです。
項目\方式 | インターネット | IPsec VPN | VPCピアリング | Transit Gateway | |
---|---|---|---|---|---|
接続容易性 | VPC2点間 | ◎ | △ | ○ | △ |
複数VPC間 | ○ | △ (Transit VPC) |
△ (多数には不向き) |
◎ | |
通信に利用するIPアドレス | グローバル | プライベート | プライベート | プライベート | |
通信速度 | ○ | △ | ◎ | ◎ | |
リージョン間接続 | ◎ (考慮不要) |
◎ (考慮不要) |
◎ | ○ | |
1つ目のインターネットでの接続は、VPCのインターネット接続機能を利用し、互いにインターネット上の端末として通信させるものです。実装は容易ですが、注意点としては、インターネットを経由させるので、通信する端末にElastic IPアドレスを割り当てるなどしてグローバルIPアドレスで通信させる必要があります。プライベートIPアドレスを用いた通信はできません。
なお、「VPC間の経路はインターネット」と記載していますが、VPCのFAQページにある下記の記載から、上記の通信はAWSのネットワーク内に閉じた通信となり、AWSのネットワーク外を通ることはありません。また以降に記載の通信も全てAWSのネットワーク内に閉じた通信となります。
Q:2つのインスタンスがパブリックIPアドレスを使用して通信する場合、またはインスタンスがパブリックなAWSのサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?
いいえ。パブリックIPアドレスを使用する場合、AWSでホストされているインスタンスとサービス間の全ての通信はAWSのプライベートネットワークを使用します。AWSネットワークから発信され、AWSネットワーク上の送信先を持つパケットは、AWS中国リージョンとの間のトラフィックを除いて、AWSグローバルネットワークにとどまります。
2つ目のIPsec VPNは連載第3回で紹介した機能を利用したVPC間の接続です。第3回ではオンプレミス環境とVPCを「IPsec VPN」という暗号化/カプセル化技術でプライベートに接続しましたが、本機能によってVPC間を接続します。VPN接続ができればよく、特別な対応は不要です。リージョン内だけでなく異なるリージョン間の接続もできます。
本方式は第3回でも記載したように暗号化のためにスループットが出にくいというデメリットがあります。またIPsec VPNは、2つのネットワーク間の接続となるので複数のVPCを接続する場合は通信させたいVPC間ごとにVPNの設定が必要となります。仮に全VPC間で通信が必要な場合はフルメッシュに接続する必要があり、VPCの数に合わせて指数的にIPsec VPNの設定が必要となり、現実的ではありません。
複数のVPC間の接続が難しいことへの解決策として、あるVPC上にIPsec VPNをサポートする仮想ルーターを設置し、このVPCをハブとして他のVPCと接続するハブ&スポーク構成にし、仮想ルーターのルーティング機能で各スポークVPC間を通信させる「Transit VPC」があります。ただし、このような複数VPC間の接続は、現在では後述のTransit Gatewayを利用することが推奨されます。
3つ目のVPCピアリングはVPC間に仮想的な直接接続のパスを作成する機能です。本機能によって2つのVPC間を、帯域幅のボトルネックなしでプライベートに接続できます。冗長性について利用者が考慮する必要はありません。リージョン間ピアリング接続に対応しているリージョン限定とはなりますが、異なるリージョンのVPC間でピアリングすることも可能です。
本方式のデメリットは、あくまでも2つのVPC間を接続する機能なので多数のVPCの接続には不向きとなることです。なお、IPsec VPN接続の項で紹介したTransit VPC構成を取ることはできず、各VPC間で個々にピアリング接続をする必要があります。
4つ目のTransit Gatewayは「IPsec VPN接続」の項で記載した、Transit VPCの機能をAWSが公式に提供したような機能です。数千個レベルのVPC環境でも接続できます。ゲートウェイとしてルーティング機能を細かく制御でき、通信の宛先ごとに転送先のVPCを制御できるようになっています。本ゲートウェイはAWSのマネージドサービスの内部で冗長化されており、利用者が冗長性を考慮する必要はありません。
注意事項として、あるTransit Gatewayをリージョンが異なるVPCと接続する場合は、リージョンごとにTransit Gatewayを作成し、同一リージョン内のVPCと接続した上で、Transit Gateway間をピアリングすることでリージョン間のVPC通信を実現します。
なお、Transit Gatewayに対応しているリージョンでもTransit Gatewayのリージョン間ピアリングに対応しているとは限りません。もし対応していないリージョンでVPCをリージョン間で接続したい場合は、同一リージョンのVPC間はTransit Gatewayで接続しながら、別のリージョンの個々のVPCとリージョン間VPCピアリングで接続することになります。
なお、上記の4つの方式以外に「AWS PrivateLink」という機能があります。
これを使うと、あるVPCから別のVPCにある特定サービスのみに、プライベートにアクセスできます。その機能上、ネットワークのセグメントレベルで通信が許容されるわけではないので、本稿ではAWSネットワーク間の接続機能の対象外としています。
AWSのIaaS(VPC)環境とAWSのPaaS/SaaSサービスとの接続方法について説明します。
「Amazon S3」(Simple Storage Service)をはじめとする、AWSのPaaSやSaaSはインターネット向けサービスとして展開されており、インターネット経由でのグローバルアクセスが基本的な通信方法です。そのため、VPC内からでもインターネット宛てに通信させることが基本のアクセス方法となります。ただし前述の通り、AWSサービス間の通信なのでインターネットは経由せずAWSのグローバルネットワーク内で完結する通信です。
また、対応しているサービスが限定される手法となりますが、VPC内にゲートウェイエンドポイントを立てることで、インターネットゲートウェイを利用せずプライベートIPでアクセスすることもできます。現状対応しているサービスはS3および「Amazon DynamoDB」の2つです。
ここまでAWSのネットワーク間の接続方法を紹介しました。ここからは紹介した機能の一部ですが、通信の設定を簡単に紹介します。具体的に紹介する機能は次の2つです。
VPCピアリングの構成は下図のようになります。
Copyright © ITmedia, Inc. All Rights Reserved.