Amazon VPC同士を接続する手順【AWS外NWとの接続も解説】

 

★悩み★
・Amazon VPC同士の接続って簡単にできるのだろうか?
・Amazon VPCとオンプレミスのネットワーク(NW)を接続できるのかな?
・EC2からAmazon S3を使う際にAmazon VPC内のみで通信できないかな。


こういった「悩み」に答えます。
 

★本記事の内容★
① Amazon VPC同士を4手順で接続する方法をご紹介
② Amazon VPCとAWS外のネットワーク(NW)を接続する方法をご紹介
③ AWSサービスで発生する通信をAmazon VPC内で完結させる方法をご紹介


これからご紹介する「Amazon VPC同士を接続する手順」を実践したことで、1時間以内でAmazon VPC同士を接続できました。

記事の前半では「Amazon VPC同士を接続する方法」を図を用いて解説しつつ、記事の後半では「Amazon VPCとAWS外のネットワークを接続する方法」を具体的に解説します。

この記事を読み終えることで、「Amazon VPCと他ネットワークを接続する方法」を把握できるだけでなく、「Amazon VPC内で通信を完結させる方法」も把握した状態になります。
 

「Amazon VPCとは何か?」や「Amazon VPCの設定手順」を知りたい方は、以下の記事をご覧ください。
 

 

Amazon VPC同士を4手順で接続する方法


「Amazon VPC同士を4手順で接続する方法」をご紹介します。

Amazon VPC同士を接続するために「VPCピアリング機能」を使います。
 

★VPCピアリング機能とは★
・異なるリージョンや異なるアカウントのVPCを接続可能
・VPC同士を接続することが可能
 例)VPC [A] ⇆ VPCピアリング ⇆ VPC [B] ⇆ VPCピアリング ⇆ VPC [C]
   ※推移的なピアリング関係は未サポート(VPC [A]とVPC [C]は未接続)

【注意点】
 接続したいVPCとIPアドレス空間が被っていないこと


今回は、VPCピアリング機能を用いて、以下のAWS環境を作っていきましょう。
 

★VPCピアリング機能を用いて作成するAWS環境★
・東京リージョンに以下を作成
 → パブリックネットワークの作成
 → パブリックネットワーク内にEC2を配備

・オレゴンリージョンに以下を作成
 → プライベートネットワークの作成
 → プライベートネットワーク内にEC2を配備

・VPCピアリング機能により異なるネットワーク内のEC2へSSH接続

 


以下の流れで上記のVPC同士を接続した環境を作成します。

★VPC同士を接続するまでの流れ★
手順1:リージョンごとにVPCを作成
手順2:VPCにEC2を配備
手順3:VPCピアリング機能でVPC同士を接続
手順4:VPC同士を接続した環境の動作確認


上記の流れで、「VPC同士を接続」ができます。
 

上記の各手順は、以下の日時で動作確認済みです。
動作確認済み日時:2021年4月6日


以降で、上記「VPC同士を接続するまでの流れ」の各手順に関してご説明します。

手順1:リージョンごとにVPCを作成

「手順1:リージョンごとにVPCを作成」に関してご説明します。
 

まずは、リージョンごとにVPCを作成しましょう。


リージョンごとに作成するVPCは、以下となります。
 

★作成するVPC★
・東京リージョン
 → 10.0.0.0/16のVPCを作成
 → 10.0.1.0/24のパブリックネットワークを作成

・オレゴンリージョン
 → 10.1.0.0/16のVPCを作成
 → 10.1.1.0/24のプライベートネットワークを作成

 


「VPCの作成方法」/「パブリックネットワークの作成方法」/「プライベートネットワークの作成方法」に関しては、以下の記事の手順1から手順5をご覧ください。
 


以上で、「手順1:リージョンごとにVPCを作成」は完了です。

手順2:VPCにEC2を配備

「手順2:VPCにEC2を配備」に関してご説明します。
 

次に、手順1で作成した各VPCにEC2のインスタンスを配備しましょう。


各VPCに配備するEC2インスタンスは、以下となります。
 

★各VPCに配備するEC2★
・東京リージョン
 → パブリックネットワークにEC2インスタンスを配備
・オレゴンリージョン
 → プライベートネットワークにEC2インスタンスを配備

 


「EC2インスタンスの配備」に関しては、以下の記事の手順6をご覧ください。
 


以上で、「手順2:VPCにEC2を配備」は完了です。

手順3:VPCピアリング機能でVPC同士を接続

「手順3:VPCピアリング機能でVPC同士を接続」に関してご説明します。
 

続いて、VPCピアリング機能を用いてVPC同士を接続しましょう。

 

★VPC同士の接続の流れ★
1. 配備したEC2とVPCの情報整理
2. Amazon VPCの管理画面へアクセス
3. VPCピアリング接続の作成
4. VPCピアリング接続の承諾
5. ルートテーブルにVPCピアリングの情報を追加


上記の5手順で、VPCピアリング機能を用いてVPC同士を接続できます。
 

1. 配備したEC2とVPCの情報整理

配備したEC2とVPCの情報を整理しましょう。

筆者の配備したEC2とVPCの情報は、以下となります。

★配備したEC2とVPCの情報★
・東京リージョンに配備したEC2(以降、東京EC2と表記)
 → パブリックIP:54.238.215.93
 → プライベートIP:10.0.1.227
 → 所属VPCのID:vpc-0a9944ac0c08b891f
 → 所属サブネットのアドレス:10.0.1.0/24
 → キーペア:ec2-tokyo-test.pem
 → ルートテーブル:rtb-03cbd3e22258ab806

・オレゴンリージョンに配備したEC2(以降、オレゴンEC2と表記)
 → パブリックIP:なし
 → プライベートIP:10.1.1.89
 → 所属VPCのID:vpc-0291fb82df5f404e9
 → 所属サブネットのアドレス:10.1.1.0/24
 → キーペア:ec2-test-oregon.pem
 → ルートテーブル:rtb-0d8036054df30d8b8


東京EC2からオレゴンEC2にSSH接続するために、以下のコマンドを実行しましょう。

$ sudo ssh -i ec2-tokyo-test.pem ec2-user@54.238.215.93
Last login: Sat Oct 24 10:46:48 2020 from 58-190-166-205f1.hyg1.eonet.ne.jp

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
2 package(s) needed for security, out of 13 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-1-227 ~]$ sudo ssh -i ec2-test-oregon.pem ec2-user@10.1.1.89
ssh: connect to host 10.1.1.89 port 22: Connection timed out
[ec2-user@ip-10-0-1-227 ~]$ Connection to 54.238.215.93 closed by remote host.
Connection to 54.238.215.93 closed.


上記コマンド結果のように、現状だと、東京EC2からオレゴンEC2に対してはSSH接続はできません。
 

以上で、「1. 配備したEC2とVPCの情報整理」は完了です。

2. Amazon VPCの管理画面へアクセス

VPCピアリング機能は、VPCの管理画面から使うことができます。

Webブラウザで、AWSマネジメントコンソールへアクセスします。
AWSマネジメントコンソール

「サービスを検索する」直下の検索欄に「vpc」と入力します(下図の赤枠)
その後、「VPC」をクリックしましょう。
 


以上で、「2. Amazon VPCの管理画面へアクセス」は完了です。

3. VPCピアリング接続の作成

東京リージョンでVPCピアリング接続を作成しましょう。

リージョンが「東京」(下図の赤枠)であることを確認しましょう。


「ピアリング接続」(下図の青枠)をクリックし、「ピアリング接続の作成」(下図の赤枠)をクリックします。
 


以下の情報を入力し、ページ末尾の「ピアリング接続の作成」をクリックします。
・ピアリング接続ネームタグ:ec2-test-peerと入力
・VPC(リクエスタ):東京EC2が所属しているVPCのIDを入力
・アカウント:自分のアカウントを選択
・リージョン:別のリージョンを選択
・VPC(アクセプタ):オレゴンEC2が所属しているVPCのIDを入力
 


ピアリング接続が作成されていることを確認します。
 


以上で、「3. VPCピアリング接続の作成」は完了です。

4. VPCピアリング接続の承諾

次は、オレゴンリージョンでVPCピアリング接続の承諾をします。

オレゴンリージョン側のVPC管理画面を開きます。
「ピアリング接続」のアクション(下図のオレンジ枠)をクリックし、「リクエストの承諾」(下図の赤枠)をクリックします。
 


「はい、承諾する」をクリックしましょう。
 


以上で、「4. VPCピアリング接続の承諾」は完了です。

5. ルートテーブルにVPCピアリングの情報を追加

東京EC2とオレゴンEC2のルートテーブルにVPCピアリング情報を追加します。

東京リージョンのVPC管理画面において、「ルートテーブル」(下図の青枠)をクリックします。その後、東京EC2が所属しているルートテーブルをクリックし、ルートタブ配下の「ルートの編集」(下図の赤枠)をクリックします。
 


「ルートの追加」をクリックし、以下を入力しましょう。
・送信先(下図の赤枠):オレゴンEC2が所属するサブネットのIPアドレス
・ターゲット(下図の青枠):「Peering Connection」→ ec2-test-peerを選択

その後、「ルートの保存」をクリックします。
 


続いて、オレゴンリージョン側のVPC管理画面を開きましょう。

オレゴンEC2が所属している「ルートテーブル」を選択し、「ルートの編集」をします。


「ルートの追加」をクリックし、以下を入力しましょう。
・送信先(下図の赤枠):東京EC2が所属するサブネットのIPアドレス
・ターゲット(下図の青枠):「Peering Connection」→ ec2-test-peerを選択

その後、「ルートの保存」をクリックします。
 


以上で、「5. ルートテーブルにVPCピアリングの情報を追加」は完了です。
 

以上で、「手順3:VPCピアリング機能でVPC同士を接続」は完了です。

 

手順4:VPC同士を接続した環境の動作確認

「手順4:VPC同士を接続した環境の動作確認」に関してご説明します。
 

作成したVPC環境の動作確認をしましょう。


コマンドプロンプトまたは端末を起動し、以下のコマンドを実行しましょう。

$ sudo ssh -i ec2-tokyo-test.pem ec2-user@54.238.215.93
Last login: Sat Oct 24 10:45:30 2020 from 58-190-166-205f1.hyg1.eonet.ne.jp

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
2 package(s) needed for security, out of 13 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-1-227 ~]$ sudo ssh -i ec2-test-oregon.pem ec2-user@10.1.1.89
Last login: Sat Oct 24 10:46:41 2020 from 10.0.1.227

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

Security-Focused, High-Performance Linux Environment – Amazon Linux 2 – AWS
[ec2-user@ip-10-1-1-89 ~]$


上記のコマンド結果より、東京EC2からオレゴンEC2へSSH接続できました。
 

コマンド結果より、想定通りの環境ができていることを確認できました。


以上で、「手順4:VPC同士を接続した環境の動作確認」は完了です。

上記の流れで、「Amazon VPC同士を接続」できました。 

 

Amazon VPCとAWS外のネットワーク(NW)を接続する方法


「Amazon VPCとAWS外のネットワーク(NW)を接続する方法」に関してご紹介します。
 

★AWS外のネットワーク(NW)と接続する方法★
① 仮想プライベートゲートウェイでAmazon VPCと外部ネットワークを接続
② AWS Direct ConnectでAmazon VPCとAWS外のネットワークを接続
③ Transit GatewayでAmazon VPCとAWS外のネットワークを接続


上記3つの方法で、Amazon VPCとAWS外のネットワークを接続できます。

以降で、上記「AWS外のネットワーク(NW)と接続する方法」の各方法に関してご説明します。

仮想プライベートゲートウェイでAmazon VPCと外部ネットワークを接続

「仮想プライベートゲートウェイでAmazon VPCと外部ネットワークを接続」に関してご説明します。
 

仮想プライベートゲートウェイを利用することでAWS外のネットワークと接続できます。


仮想プライベートゲートウェイを以下のように利用することで、オンプレミス環境のネットワークと接続することができます。
 


上記構成でAmazon VPCと外部ネットワークを接続することができますが、線が細いため通信速度が安定しません。

AWS Direct ConnectでAmazon VPCとAWS外のネットワークを接続

「AWS Direct ConnectでAmazon VPCとAWS外のネットワークを接続」に関してご説明します。
 

AWS Direct Connectを使うことでVPCと外部ネットワークを接続することができます。


AWS Direct Connectは、以下の構成で利用します。
 


AWS Direct Connectを使うことで、専用のネットワークを使った通信ができます。

そのため、以下のメリットがあります。

★AWS Direct Connectのメリット★
・専用回線のため、高速で安定した通信が可能
・専用回線のため、セキュリティ強化(通信傍受などの心配が低減)


上記のメリットを受けたい場合、AWS Direct Connectを利用しましょう。
AWS Direct Connectの公式ページ
 

Transit GatewayでAmazon VPCとAWS外のネットワークを接続

「Transit GatewayでAmazon VPCとAWS外のネットワークを接続」に関してご説明します。
 

AWS Transit Gatewayを使うことで大多数のVPCと外部ネットワークを接続できます。


AWS Transit Gatewayは、以下の構成で利用します。
 


AWS Transit Gatewayを使うことで、以下のメリットがあります。

★AWS Transit Gatewayのメリット★
・1つのGatewayで複数のVPCとオンプレミス環境を接続可能
・管理が楽


大多数のVPC同士の接続であったり、大多数のVPCとオンプレミスの接続を考えている場合は、AWS Transit Gatewayの利用を検討しましょう。
 

料金や速度面などを考慮した上で、適切な方法を選択し、Amazon VPCとAWS外のネットワーク(NW)を接続しましょう。

 

AWSサービスで発生する通信をAmazon VPC内で完結させる方法


「AWSサービスで発生する通信をAmazon VPC内で完結させる方法を」に関してご紹介します。

結論から言いますと、VPCエンドポイントを使います。
 

★VPCエンドポイントとは★
VPCエンドポイントを利用することで、AWSサービスとVPC間での通信がAWS内の通信で完結します。


VPCエンドポイント使わずにEC2からAmazon S3にアクセスした場合、AWS外のネットワークを経由してアクセスする可能性があります。
 


VPCエンドポイントを使うことで、EC2からS3にアクセスした場合、AWS内のネットワーク通信で完結するようになります。
 


ちなみに、VPCエンドポイントは2種類あるのでサービスごとに使い分けましょう。

★VPCエンドポイントの種類★
・インターフェイスエンドポイント
 → プライベートIPを用いてルーティングを管理
 → AZに配置

・ゲートウェイエンドポイント
 → S3とDynamoDBが対応
 → サービス名を用いてルーティングを管理
 → VPCにアタッチ

 

セキュリティ面や速度を担保したい場合、「AWSサービスで発生する通信をAmazon VPC内で完結させる方法」を採用しましょう。

 

【まとめ】Amazon VPC同士を接続する手順

今回の記事を通して、「Amazon VPC同士を接続する手順」をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・Amazon VPC同士の接続って簡単にできるのだろうか?
・Amazon VPCとオンプレミスのネットワーク(NW)を接続できるのかな?
・EC2からAmazon S3を使う際にAmazon VPC内のみで通信できないかな。


「Amazon VPC同士の接続はどうすればいいのか?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

 

 


 

コメント