【AWSハンズオン】“AmazonVPC間およびAmazonVPCとオンプレミスのプライベートネットワーク接続”する方法:前編


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

今回わたしが実施しますハンズオンはAWSハンズオン資料にあります、“Network編#2 AmazonVPC間およびAmazonVPCとオンプレミスのプライベートネットワーク接続”です。

 

わたしは日々の業務を通して、AmazonVPCとオンプレミスを接続する方法を知っていることは今後益々必要になってくるのではと感じています。

 

“AWS Hands-on for BeginnersNetwork編#2”はAmazonVPC上で、VPC間の接続およびVPCとオンプレミスの接続に興味がある方向けのハンズオンです。実際に手を動かしてやってみることで、VPC間の接続やVPNの仕組みが理解できればと、わたしは今回実施してみました。

 

“AWS Hands-on for BeginnersNetwork編#2”はボリュームが多いので、Amazon VPC間を接続する方法とAmazon VPCとオンプレミスを接続する方法を前編・後編に分けて紹介していきます。今回は前編として、AmazonVPC間を接続する方法のハンズオンです。

 

 

Amazon VPC間を接続する方法 ~ピアリング接続~

VPC間接続ハンズオン

“AWS Hands-on for BeginnersNetwork編#2”のハンズオンでは、

 

  • Amazon VPC間を接続する方法
  • Amazon VPCとオンプレミスを接続する方法

 

が紹介されています。

 

前半のAmazon VPC間を接続する方法では、VPCピアリング接続を使用したハンズオンを実施し、後半のAmazon VPCとオンプレミスを接続する方法では、AWS Site-to-Site VPNを使用したハンズオンを実施することで、具体的な設定方法を理解できるはずです。

 

まずは「Amazon VPC間を接続する方法」のハンズオンをやっていきましょう。

 

 

1.メインVPC作成

まずはメインのVPCを作成していきます。AWSマネージメントコンソールにログインし、リージョンを確認してください。わたしはシンガーポールリージョンで作成していきます。

 

それでは、サービスメニューからVPCをクリックし、次に“VPCを作成”ボタンを押してください。

 

VPC間接続ハンズオン

 

メインVPCのパラメータは以下の通りです。

 

項目 設定値
作成するリソース VPCなど
名前タグの自動生成 Main VPC
IPv4 CIDR ブロック 10.0.0.0/16
IPv6 CIDR ブロック IPv6 CIDR ブロックなし
テナンシー デフォルト
アベイラビリティゾーン(AZ)の数 1
AZのカスタマイズ ap-southeast-1a
パブリックサブネットの数 1
プライベートサブネットの数 0
サブネット CIDR ブロックをカスタマイズ 10.0.0.0/24
NATゲートウェイ なし
VPCエンドポイント なし
DNSホスト名を有効化
DNS解決を有効化

 

コンソール画面で見ると、下の画像の通りです。

 

VPC間接続ハンズオン

VPC間接続ハンズオン

 

 

2.ルートテーブル(メインVPC)の名前を編集

VPCのダッシュボード画面の左ペインにあります“VPCフィルタリング”から「Main VPC」を選択します。

 

VPC間接続ハンズオン

その次に左ペインから“ルートテーブル”をクリックすると、MainVPCと関連のあるルートテーブルが2つ表示されます。

 

2つあるルートテーブルのうち、送信先が“0.0.0.0/0”に向いているルートテーブルを「Main Public Route Table」とし、VPC内のルートのみを持つルートテーブルを「Main Private Route Table」と名前を変更します。

 

VPC間接続ハンズオン

 

 

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

メインVPCが準備できましたので、ピアリング接続用VPCを作成していきます。左のペインのVPCダッシュボードをクリックし、“VPCを作成”を押します。

 

Peearing VPCのパラメータは以下の通りです。

 

項目 設定値
作成するリソース VPCなど
名前タグの自動生成 Peering VPC
IPv4 CIDR ブロック 10.1.0.0/16
IPv6 CIDR ブロック IPv6 CIDR ブロックなし
テナンシー デフォルト
アベイラビリティゾーン(AZ)の数 1
AZのカスタマイズ ap-southeast-1a
パブリックサブネットの数 1
プライベートサブネットの数 0
サブネット CIDR ブロックをカスタマイズ 10.1.0.0/24
NATゲートウェイ なし
VPCエンドポイント なし
DNSホスト名を有効化
DNS解決を有効化

 

コンソール画面で見ると、下の画像の通りです。

 

VPC間接続ハンズオン

VPC間接続ハンズオン
 

 

4.ルートテーブル(ピアリング接続用VPC)の名前を編集

VPCのダッシュボード画面の左ペインにあります“VPCフィルタリング”から「Peering VPC」を選択します。

 

その次に左ペインから“ルートテーブル”をクリックすると、Peering VPCと関連のあるルートテーブルが2つ表示されます。

 

VPC間接続ハンズオン

 

2つあるルートテーブルのうち、送信先が“0.0.0.0/0”に向いているルートテーブルを「Peering Public Route Table」とし、VPC内のルートのみを持つルートテーブルを「Peering Private Route Table」と名前を変更します。

 

VPC間接続ハンズオン

 

 

5.ピアリング接続の作成

VPC間接続ハンズオン

 

VPCサービス画面の左ペインにあります“ピアリング接続”をクリックし、“ピアリング接続を作成”ボタンを押します。

 

 

VPC間接続ハンズオン

 

VPCピアリング接続のパラメータは以下の通りです。

 

項目 設定値
名前 peering-handson
VPC ID (リクエスタ) Main VPCを選択
アカウント 自分のアカウント
リージョン このリージョン
VPC ID (アクセプタ) Peering VPC

 

設定が入力できましたら、“ピアリング接続を作成”ボタンをクリックします。

 

ピアリング接続の画面を見てみると、先ほど作成したピアリング接続のステータスが承諾の保留中になっているのです。この承諾の保留は、時間がたってもそのままなんですよね。

 

VPC間接続ハンズオン

 

承諾保留の理由は、VPCピアリングは他のアカウントのVPCと接続ができるので、ピアリングのリクエストをして承諾するという2ステップになっているからです。

 

承諾するために作成したピアリング接続を選択し、アクションから“リクエストの承諾”をクリックしてください。

 

VPC間接続ハンズオン

 

“リクエストを承諾”ボタンを押してください。ステータスがアクティブに変わっていれば、成功です。

 

VPC間接続ハンズオン

 

次にルートテーブルの編集です。左ペインからルートテーブルを押してください。

 

「Main Public Route Table」を選択し、ルートタブをクリック、“ルートの編集”ボタンを押してください。

 

VPC間接続ハンズオン

 

ルートの編集画面で“ルートの追加”ボタンを押します。以下の設定で入力してください。

 

項目 設定値
送信先 10.1.0.0/16
ターゲット ピアリング接続⇒「Peering handson」

 

VPC間接続ハンズオン

 

設定が完了しましたら、“ルートの保存”ボタンを押してください。

 

VPC間接続ハンズオン

 

「Peering Public Route Table」のルートも同様に編集します。「Peering Public Route Table」を選択し、ルートタブで“ルートの編集”をクリックしてください。

 

VPC間接続ハンズオン

 

ルートの編集画面で“ルートの追加”ボタンを押します。

 

項目 設定値
送信先 10.0.0.0/16
ターゲット ピアリング接続⇒「Peering handson」

 

VPC間接続ハンズオン

 

 

6.疎通確認用EC2インスタンス作成


VPC間の疎通確認をするため、ピアリング接続用VPCにEC2インスタンスの作成と、メインVPCにCloud9を作成していきます。

 

まずはVPC(ピアリング接続用)にEC2インスタンスを作成します。EC2ダッシュボード画面で、“EC2インスタンスを起動”ボタンを押してください。

 

EC2インスタンスのパラメータは以下の通りです。

 

項目 設定値
名前 Peering
AMI デフォルト(Amazon Linux 2 Kernel 5.10)
インスタンスタイプ デフォルト(t2.micro)
キーペア 任意のキーペアを利用
ネットワーク Peering VPC
サブネット Peering VPC subnet-public1-ap-southeast-1a
パブリックIPの自動割り当て 有効化
セキュリティグループを作成する
セキュリティグループ名 peering
説明 peering
インバウンドルール
タイプ すべてのトラフィック
プロトコル すべて
ソースタイプ カスタム
ソース 10.0.0.0/16
説明 なし
高度なネットワーク設定 ネットワークインターフェイス1
プライマリ 10.1.0.100
ストレージ設定 デフォルト
高度な詳細 デフォルト
インスタンス数 1

 

VPC間接続ハンズオン

VPC間接続ハンズオン

 

入力が完了しましたら、“EC2インスタンスを起動”をクリックしてください。

 

次にCloud9を作成していきます。Cloud9とはクラウドベースの統合開発環境です。今回開発などはしないのですが、環境差分をなくすために使います。

 

サービス検索で“Cloud9”と検索し、クリックしてください。

 

VPC間接続ハンズオン

 

“Create environment”ボタンを押してください。

 

VPC間接続ハンズオン

 

Cloud9のパラメータは以下の通りです。

 

項目 設定値
Name handson
Environment type デフォルト(Create a new EC2 instance for environment)
Instance type デフォルト(t2.micro (1 GiB RAM + 1 vCPU))
Platform デフォルト(Amazon Linux 2 (recommended))
Cost-saving setting default
Network settings 選択
Network (VPC) Main VPC
Subnet Main VPC-subnet-public1-ap-southeast-1a

 

VPC間接続ハンズオン

VPC間接続ハンズオン

 
入力が終わりましたら、“Next step”を押してください。

 

最後は確認画面ですので、問題がなければ“Create environment”をクリックしてください。※作成に数分かかります。

 

VPC間接続ハンズオン

VPC間接続ハンズオン

 

起動画面が出てきましたので、疎通確認をしていきます。

 

VPC間接続ハンズオン

 

※人によっては背景色が違うかもしれません。もし背景色を変えたければ、左上の“Cloud9”をクリックし、“preference”を押してください。THEMESと書かれた欄で、背景色を白や黒に変えられます。

 

 

7.疎通確認


Cloud9からピアリング接続用VPCにあるEC2インスタンスに対し疎通確認をし、ピアリング接続が正常に行われていることを確認していきます。

 

まずはCloud9のIPアドレスを確認し、メインVPC内にあることを確認しましょう。

 

ip addr

 

CPI-SAITOU:~/environment $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:51:65:83:1f:d2 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.21/24 brd 10.0.0.255 scope global dynamic eth0
       valid_lft 3581sec preferred_lft 3581sec
    inet6 fe80::51:65ff:fe83:1fd2/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:22:d1:ad:7b brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

 

10行目に「10.0.0.21/24」とありますので、メインVPC内にいることがわかりました。

 

次にピアリング接続用VPCにあるEC2インスタンスに対し、pingを実行し、帰ってくることを確認します。EC2インスタンスのプライベートIPアドレスはEC2インスタンス作成時に指定した「10.1.0.100」です。

 

 CPI-SAITOU:~/environment $ ping 10.1.0.100

 

 CPI-SAITOU:~/environment $ ping 10.1.0.100
PING 10.1.0.100 (10.1.0.100) 56(84) bytes of data.
64 bytes from 10.1.0.100: icmp_seq=1 ttl=255 time=0.789 ms
64 bytes from 10.1.0.100: icmp_seq=2 ttl=255 time=0.412 ms
64 bytes from 10.1.0.100: icmp_seq=3 ttl=255 time=0.453 ms
64 bytes from 10.1.0.100: icmp_seq=4 ttl=255 time=0.590 ms
64 bytes from 10.1.0.100: icmp_seq=5 ttl=255 time=0.398 ms
64 bytes from 10.1.0.100: icmp_seq=6 ttl=255 time=0.444 ms
64 bytes from 10.1.0.100: icmp_seq=7 ttl=255 time=0.481 ms
64 bytes from 10.1.0.100: icmp_seq=8 ttl=255 time=0.435 ms
64 bytes from 10.1.0.100: icmp_seq=9 ttl=255 time=0.486 ms
64 bytes from 10.1.0.100: icmp_seq=10 ttl=255 time=0.418 ms
64 bytes from 10.1.0.100: icmp_seq=11 ttl=255 time=0.442 ms

 

pingが返ってきたので、疎通確認ができました。念のためピアリング接続を外すと疎通が取れなくなるのかも確認します。

 

VPCの画面の左ペインから、“ピアリング接続”をクリックしてください。「peering-handson」を選択し、右上のアクションから“VPCピアリングの削除”をクリックしてください。

 

VPC間接続ハンズオン

VPC間接続ハンズオン

VPC間接続ハンズオン

 

ステータスが削除済みになりましたら、Cloud9から疎通確認してみます。

 

“↑”キーを押すと、コマンド履歴が出てきます。「ping 10.1.0.100」を実行してください。

 

CPI-SAITOU:~/environment $ ping 10.1.0.100

 

CPI-SAITOU:~/environment $ ping 10.1.0.100
PING 10.1.0.100 (10.1.0.100) 56(84) bytes of data.
^C
--- 10.1.0.100 ping statistics ---
19 packets transmitted, 0 received, 100% packet loss, time 18422ms

 

pingが返ってこないことを確認しましたら、“CtrlC”で止めてください。これでVPCピアリング接続のおかげで、疎通が取れていたということが確認できました。

 

 

8.ピアリング接続の再作成

ブログ後編のハンズオンのために環境を戻したいので、ピアリング接続をもう一度作成します。ピアリング接続画面から、“ピアリング接続の作成”をクリックしてください。削除したものと名前が混同しないように、名前は変えてあります。

 

項目 設定値
名前 handson
VPC ID (リクエスタ) Main VPCを選択
アカウント 自分のアカウント
リージョン このリージョン
VPC ID (アクセプタ) Peering VPC

 

VPC間接続ハンズオン

 

入力が完了しましたら、“ピアリング接続を作成”ボタンを押してください。

 

前回作ったときと同様に、ステータスが承諾の保留中になっているかと思います。
今回作成したピアリング接続「handson」を選択し、右上のアクションから“リクエストを承諾”をクリックしてください。

 

VPC間接続ハンズオン

 

つぎにルートテーブルの編集にいきます。左のペインからルートテーブルをクリックしてください。「Main Public Route Table」を選択し、ルートタブを押し、“ルートを編集”ボタンをクリックしてください。

 

VPC間接続ハンズオン

 

“ルートの追加”を押し、以下のパラメータを入力してください。

 

項目 設定値
送信先 10.1.0.0/16
ターゲット ピアリング接続⇒「handson」

 

VPC間接続ハンズオン

 

ターゲットはピアリング接続を選択し、VPCピアリング接続「handson」を設定してください。最後にステータスが“バックホール”になっている送信先を削除し、
“変更を保存”ボタンをクリックしてください。

 

※先ほどVPCピアリング接続を削除してしまったので、そこ宛のルートのステータスがバックホールとなっています。

 

「Peering Public Route Table」も同様に、編集します。「Peering Public Route Table」を選択し、ルートタブを押し、“ルートを編集”ボタンをクリックしてください。“ルートの追加”を押し、以下のパラメータを入力してください。

 

項目 設定値
送信先 10.0.0.0/16
ターゲット ピアリング接続⇒「handson」

 

VPC間接続ハンズオン

 

ターゲットはピアリング接続を選択し、VPCピアリング接続「handson」に設定してください。最後にステータスが“バックホール”になっている古い送信先を削除し、“変更を保存”ボタンをクリックしてください。

 

ピアリング接続の再作成は以上です。Cloud9を使って、もう一度疎通確認を行っていきます

 

Cloud9画面で、“↑”キーを押し、pingを実行しましょう。

 

CPI-SAITOU:~/environment $ ping 10.1.0.100

 

CPI-SAITOU:~/environment $ ping 10.1.0.100
PING 10.1.0.100 (10.1.0.100) 56(84) bytes of data.
64 bytes from 10.1.0.100: icmp_seq=1 ttl=255 time=0.423 ms
64 bytes from 10.1.0.100: icmp_seq=2 ttl=255 time=0.371 ms
64 bytes from 10.1.0.100: icmp_seq=3 ttl=255 time=0.450 ms
64 bytes from 10.1.0.100: icmp_seq=4 ttl=255 time=0.463 ms
64 bytes from 10.1.0.100: icmp_seq=5 ttl=255 time=0.405 ms
64 bytes from 10.1.0.100: icmp_seq=6 ttl=255 time=0.610 ms
^C
--- 10.1.0.100 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5126ms
rtt min/avg/max/mdev = 0.371/0.453/0.610/0.079 ms

 

無事pingが返ってきましたので、環境をもとに戻すことができました。【AWSハンズオン】“AmazonVPC間およびAmazonVPCとオンプレミスのプライベートネットワーク接続”する方法:前編の「Amazon VPC間を接続する方法」は以上です。

 

 

まとめ:Amazon VPC間を接続する方法 ~ピアリング接続~

2つのVPCを接続する方法や疎通確認のやり方が理解できました。“AWS Hands-on for BeginnersNetwork編#2”のゴールである、

 

  • AmazonVPC間を接続する方法を理解する
  • VPCピアリング接続を使ってAmazonVPC間を接続する方法を、実際に手を動かして理解する

 

を達成できたと思います。

 

後編のハンズオンはAmazon VPCとオンプレミスを接続する方法です。前編に比べ、少し難易度が上がりますが、ぜひチャレンジしてみましょう。

 

 

参考サイトリンク:AWS ハンズオン資料

 

↓ほかの協栄情報メンバーもVPCに関する記事を公開しています。ぜひ参考にしてみてください。

 

■CloudFormationでVPC(NATGatewayを作成しない)を作成してみました。(AWS CloudShellよりCLI実行で作成)(小林 剛)
https://cloud5.jp/create-vpc-no-nat-gateway/

 

■CloudFormationを使ってVPC構築(INAMURA)
https://cloud5.jp/cfn_vpc/

 

■CLIによる「VPC」構築(umemoto)
https://cloud5.jp/cli-vpc/

Last modified: 2022-09-22

Author