コラム

[AWS]VPC構築例2(privateサブネットから外部へのアクセス)

VPC構成

前回作成したVPCのパブリックサブネットにNATゲートウェイを設定し、プライベートサブネットから外部へのアクセスを可能にします。
実際にアクセス出来るようになるか試してみようと思います。

NATゲートウェイが設定されてない状況でprivateのpcから外部にアクセスしてみる

teratermでアクセスして「yum update」コマンドを実行

root@ip-10-0-128-94 ec2-user]# yum update -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Could not retrieve mirrorlist https://amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com/2/core/latest/x86_64/mirror.list error was
12: Timeout on https://amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com/2/core/latest/x86_64/mirror.list: (28, 'Failed to connect to amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com port 443 after 2701 ms: Connection timed out')
https://amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com/2/core/2.0/x86_64/3dce9064d9888df589c0eefade782e4ead797577203288ab4854b4638a77ebbe/repodata/repomd.xml?instance_id=i-04d69f380b69b8249®ion=ap-northeast-1: [Errno 12] Timeout on https://amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com/2/core/2.0/x86_64/3dce9064d9888df589c0eefade782e4ead797577203288ab4854b4638a77ebbe/repodata/repomd.xml?instance_id=i-04d69f380b69b8249®ion=ap-northeast-1: (28, 'Failed to connect to amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com port 443 after 2702 ms: Connection timed out')
Trying other mirror.

以上の様に外部に接続できなくてエラーになります。

NATゲートウェイの設定

EC2インスタンス一覧

名称所属サブネット名
publicpc-1adv-subnet-public1-ap-northeast-1a
privatepc-1adv-subnet-private1-ap-northeast-1a

NATゲートウェイ作成

1.VPCサービスのページ行き、メニューの「NATゲートウェイ」を押下します。

2.右上の「NATゲートウェイ作成」ボタンを押下します。

3.NATゲートウェイ作成に必要な情報を入力し、作成ボタンを押下します。

項目説明
名前NATゲートウェイの名前を適当に指定
サブネットpublicサブネットを指定
接続タイプパブリックを指定
ElasticIP割り当てIDボタンを押下するとElasticIPが割り振られます
タグ名前を入れると自動的に入るのでそのままでよいです

PrivateサブネットのルートテーブルへNATゲートウェイを設定

privateサブネットのルートテーブルへ設定する事で、その中のEC2からNATゲートウェイへアクセス可能
になります。

1.privateサブネットのルートタブの「ルート編集」ボタンを押下します。

2.ルートを追加し、作成したNATゲートウェイの情報を入力します。

3.送信先は今回は全ての送信先を指定する為、「0.0.0.0/0」を設定し変更を保存します。

PrivateサブネットのACLの設定

ACLで全IPからのアクセスを可能にしてない場合は、NATゲートウェイへのアクセス許可設定をする必要があります。

1.PrivateサブネットのネットワークACLリンクを押下します。

2.インバウンドルール、アウトバウンドルールともに、NATゲートウェイのIPを通すように設定します。

3.今回は全てのリクエストと通す設定にしています。これをアウトバウンドにも行って下さい。

以上で設定が完了しました。
では先ほど失敗したコマンドを流してみたいと思います。

NATゲートウェイ設定後にprivateのpcから外部にアクセスしてみる

[root@ip-10-0-128-94 ec2-user]# yum update -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                   | 3.7 kB  00:00:00
amzn2extra-docker                                                                            | 3.0 kB  00:00:00
amzn2extra-kernel-5.10                                                                       | 3.0 kB  00:00:00
(1/7): amzn2-core/2/x86_64/group_gz                                                          | 2.5 kB  00:00:00
(2/7): amzn2-core/2/x86_64/updateinfo                                                        | 498 kB  00:00:00
(3/7): amzn2extra-docker/2/x86_64/updateinfo                                                 | 6.4 kB  00:00:00
(4/7): amzn2extra-kernel-5.10/2/x86_64/updateinfo                                            |  18 kB  00:00:00
(5/7): amzn2extra-docker/2/x86_64/primary_db                                                 |  93 kB  00:00:00
(6/7): amzn2extra-kernel-5.10/2/x86_64/primary_db                                            |  11 MB  00:00:00
(7/7): amzn2-core/2/x86_64/primary_db                                                        |  65 MB  00:00:01
Resolving Dependencies
--> Running transaction check
---> Package amazon-ssm-agent.x86_64 0:3.1.1188.0-1.amzn2 will be updated
---> Package amazon-ssm-agent.x86_64 0:3.1.1732.0-1.amzn2 will be an update
---> Package chrony.x86_64 0:4.0-3.amzn2.0.2 will be updated
---> Package chrony.x86_64 0:4.2-5.amzn2.0.2 will be an update
---> Package curl.x86_64 0:7.79.1-2.amzn2.0.1 will be updated
---> Package curl.x86_64 0:7.79.1-4.amzn2.0.1 will be an update
---> Package dhclient.x86_64 12:4.2.5-77.amzn2.1.6 will be updated

正常にアクセス出来ているのが確認出来ました。

NATゲートウェイが必要なくなった時の後処理

NATゲートウェイを使用しているとElasticIPアドレスを確保した状態の為、課金が都度されている状態になるので、必要なくなったら、削除処理を行いましょう。

NATゲートウェイの削除処理を行った後、ElasticIPアドレスの解放処理を行いましょう。

次回はエンドポイントを使用してインターネットアクセスを介さず、AWSのサービスの使用を試してみたいと思います。

この記事をシェアする
  • Facebookアイコン
  • Twitterアイコン
  • LINEアイコン

お問い合わせ ITに関するお悩み不安が少しでもありましたら、
ぜひお気軽にお問い合わせください

お客様のお悩みや不安、課題などを丁寧に、そして誠実にお伺いいたします。

お問い合わせはこちら
お電話でのお問い合わせ 03-5820-1777(平日10:00〜18:00)
よくあるご質問