★悩み★
・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同士の接続はどうすればいいのか?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント