「Amazon Virtual Private Cloud」(VPC)間の接続、IaaS(VPC)〜PaaS/SaaS間の接続はどうすべきか:AWSで学ぶクラウド時代のネットワーク基礎知識(4)
これまであまり物理的なネットワークに触れてこなかったエンジニアを対象に、AWSを用いてネットワークの基礎知識を解説する連載。今回は、「Amazon Virtual Private Cloud」(VPC)間の接続、IaaS(VPC)〜PaaS/SaaS間の接続について解説する。
これまであまり物理的なネットワークに触れられてこなかったSEやサーバ管理者、情シスなどの方を対象にネットワークの基本を「Amazon Web Services」(AWS)を用いて解説する本連載「AWSで学ぶクラウド時代のネットワーク基礎知識」。
前回まではネットワークの基本技術の説明とAWSの環境を用いた動作紹介という形でしたが、第4回の本稿は、AWSのネットワーク間を接続する方法、サービスを紹介します。
オンプレミス環境でネットワーク間を接続する場合、ルーターやスイッチなどのネットワーク機器を用いて接続する必要が生じますが、クラウドのネットワークは仮想的な環境なので、容易に接続できます。
なお、本稿では次の2つのネットワーク接続を対象とします。
- 「Amazon Virtual Private Cloud」(VPC)間の接続
- IaaS(VPC)〜PaaS/SaaS間の接続
VPC間の接続
まずは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グローバルネットワークにとどまります。
IPsec VPN
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を利用することが推奨されます。
VPCピアリング
3つ目のVPCピアリングはVPC間に仮想的な直接接続のパスを作成する機能です。本機能によって2つのVPC間を、帯域幅のボトルネックなしでプライベートに接続できます。冗長性について利用者が考慮する必要はありません。リージョン間ピアリング接続に対応しているリージョン限定とはなりますが、異なるリージョンのVPC間でピアリングすることも可能です。
本方式のデメリットは、あくまでも2つのVPC間を接続する機能なので多数のVPCの接続には不向きとなることです。なお、IPsec VPN接続の項で紹介したTransit VPC構成を取ることはできず、各VPC間で個々にピアリング接続をする必要があります。
Transit Gateway
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ピアリングで接続することになります。
コラム AWS PrivateLink
なお、上記の4つの方式以外に「AWS PrivateLink」という機能があります。
これを使うと、あるVPCから別のVPCにある特定サービスのみに、プライベートにアクセスできます。その機能上、ネットワークのセグメントレベルで通信が許容されるわけではないので、本稿ではAWSネットワーク間の接続機能の対象外としています。
IaaS(VPC)〜PaaS/SaaS間の接続
AWSのIaaS(VPC)環境とAWSのPaaS/SaaSサービスとの接続方法について説明します。
「Amazon S3」(Simple Storage Service)をはじめとする、AWSのPaaSやSaaSはインターネット向けサービスとして展開されており、インターネット経由でのグローバルアクセスが基本的な通信方法です。そのため、VPC内からでもインターネット宛てに通信させることが基本のアクセス方法となります。ただし前述の通り、AWSサービス間の通信なのでインターネットは経由せずAWSのグローバルネットワーク内で完結する通信です。
また、対応しているサービスが限定される手法となりますが、VPC内にゲートウェイエンドポイントを立てることで、インターネットゲートウェイを利用せずプライベートIPでアクセスすることもできます。現状対応しているサービスはS3および「Amazon DynamoDB」の2つです。
AWSネットワーク間接続の設定紹介
ここまでAWSのネットワーク間の接続方法を紹介しました。ここからは紹介した機能の一部ですが、通信の設定を簡単に紹介します。具体的に紹介する機能は次の2つです。
- VPCピアリング
- Transit Gateway
VPCピアリング
VPCピアリングの構成は下図のようになります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ネットワークの基本の学び方
- EC2よりシンプルな料金体系の「Amazon Lightsail」で仮想プライベートサーバを立てる
「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、「Amazon Lightsail」で仮想プライベートサーバを立てる方法について。 - ルートユーザーって使っちゃダメなの?――クラウドを始める前に覚えておきたいセキュリティの基礎知識
親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する連載。初回は、クラウドを始める前に覚えておきたいセキュリティの基礎知識について。