在宅Terralien

こたつで仕事しています

【AWS】プライベートサブネットからNATゲートウェイ経由してインターネットへの接続を確認する(前半)

クラウドが話題なのでAWSを触ってみたら楽しかったので勉強しているTerralienです。とりあえずSAA目指してます。

件名の通りの課題が出ましたのでアウトプットとしてまとめてみようと思います。

構成図は以下のとおりです。作るまでもない感じですがアイキャッチとして。

f:id:terralien:20220114191524p:plain

t課題構成図

前提条件

AWSアカウントの作成

公式のこちらの記事が詳しいです。クレジットカード必須。

aws.amazon.com

環境

Windows11、TeraTermで実施しています。Macの方はTerminalで読み替えて頂ければいいと思います。

手順

まずVPCを作ります

サービス検索から「VPC」を検索して選択します。
以下操作手順は左のメニューの上から順に見ていく感じになります。

 

左メニューから「VPC」を選択し「VPCを作成」します。

VPCの設定

gyazo.com

管理しやすいように名前タグを適当につけましょう。

IPv4 CIDRブロックはお試しで作るならサンプル通りの10.0.0.0/24もしくは/16でいいと思います。私はなんとなくで10.1.0.0/16としました。


以降は今回の課題に関係ない項目なのでデフォルトのままとします。
タグには自動で名前タグに入力されたものが設定されます。ちょっと便利になった?
右下のVPCを作成ボタンを押せばVPCの出来上がりです。

 

サブネットを作る

今回の課題は「プライベートサブネット端末からNATゲートウェイ経由でのインターネット接続確認」なので、パブリック・プライベート2つのサブネットを作成します。

 

パブリックサブネットはネットに接続しても構わないインスタンスを置くゾーン、プライベートサブネットはネットから接続してほしくないものを置く場所です。

外部からのアクセスはしてほしくないけど

まずはパブリックサブネットを作成

サブネットを作成」ボタンを押します。

gyazo.com


VPC ID」に先ほど作成したVPCを指定します。

次にサブネットの設定をしていきます。

gyazo.com

サブネット名を適当につけます。まずはパブリックサブネットとして「public-rare-subnet」とつけます。
プライベート側であることがわかるよう表記したほうがいいと思います。

 

アベイラビリティーゾーンですが、今回のケースでは次に作るプライベートサブネットと同じところにする必要があります。適当にap-notheast-1aとしておきます。

gyazo.com

今気づいたけどbじゃなくてdになっていますね…元々そうだったかな忘れました。

 

またIPv4 CIDR ブロックを指定します。なんとなくで10.1.0.0/24としました。

タグはサブネット名で自動に作られます。以前は入力していた気がするので改善したのでしょうか?

 

プライベートサブネットを作成

「新しいサブネットを追加」ボタンで作れます。同様の入力をしていきましょう。サブネット名をprivate-rare-subnet、IPv4 CIDR ブロックを10.1.1.0/24としました。

 

サブネットを作成」ボタンを押せば2つのサブネットの感性です。

CIDRを..../24と指定したので256個中使用できない5つを除いて251個のIPアドレスをそれぞれのサブネットで使用できます。(0, 1, 2, 3, 255 の5つはAWS側で使用されるため)

 

インターネットに繋げられるようにする

それにはインターネットゲートウェイとルートテーブルなるものが必要となります。

インターネットゲートウェイを作成しVPCにアタッチする

これをしないとインターネットに繋がらないらしいです。

インターネットゲートウェイの作成」ボタンで作成しますが名前を付けるくらいしか入力するところがありません。

 

名前がないと判別しづらいのでrare-IGWなど適当に名前を変更しておきます。

VPCにアタッチする必要があるので、作成したrare-IGWにチェックを入れ「アクション」からVPCにアタッチ使用可能なVPCで作成したものを指定します。

 

gyazo.com

 

プライベートサブネット用ルートテーブルを作る

その前にパブリックサブネットにはVPCを作成した際に自動で作られていたものを使います。

そのままだと判別がつかないので、名前部分にカーソル合わせると変更できるのでNameをpubric-rare-RTなど適当に変更します。

 

次にインターネットゲートウェイをルートに追加します。
作成したrare-route-tableルートテーブルにチェックを入れた状態で「ルート」タブに移動し「ルートを編集」ボタンを押します。

 

gyazo.com

 

ルートを追加」を押して送信先を0.0.0.0/0、ターゲットをインターネットゲートウェイにし、デフォルトで作成されているigw-xxxxxx~を選択します。これでインターネット接続手前までの道筋ができました。

 

明示的なサブネットの関連付けしなくてもこちらのルートテーブルを自動で参照するはずなので紐付けはしないでおきます。

これでインターネットに接続する準備ができました。

 

プライベートサブネット用ルートテーブルの作成

プライベートサブネットは先程のルートテーブルと別の閉じたルートテーブルに設置する必要があります。「ルートテーブルを作成」しましょう。

 

名前をprivate-rare-RTなど適当につけてVPCは作成したものを指定します。
タグは自動で作られるのでそのまま。「ルートテーブルを作成」ボタンで完成です。

 

 

 

以降は各サブネットにサーバー(インスタンス)を配置していきます。

サブネットの関連付け」タブを開き、「サブネットの関連付けを編集」ボタンを押します。

gyazo.com

利用可能なサブネットとしてプライベートサブネットとして作ったもの(private-rare-subnetなど)を紐付けます。

 

セキュリティとEC2インスタンス

ネットワークACL

これはセキュリティのためサブネットに対して付けるものです。

課題をクリアするだけならデフォルトで作成されたもののままで構いませんが、学習のために作ってみます。

ネットワークACLを作成」します。

 

gyazo.com

 

名前をrare-ACLとし、VPCは今回作ったものを指定します。
タグは名前で入力したものが自動でNameキーの値に入力されるのでそのまま。

ACLを新規に作成した場合、アクセスはすべてDENY(許可しない)になっているので設定します。


今回はSSH接続して疎通確認するだけですので接続タイプをSSHとして追加します。

rare-ACLを選択し、「インバウンドルール」タブから「インバウンドルールを編集」ボタンを押します。

 

gyazo.com

 

ルール番号は少ない順に適用されるのでとりあえず100とし、タイプSSH(22)とします。
プロトコルとポート番号は自動で変更されるので、残る送信元と許可/拒否はそのままで「変更を保存」します。

※許可/拒否は以前はAllow/DENY表記だったと思います。

 

アウトバウンドルール」も同じ要領で追加しますが、一点謎のおまじないをする必要があるようです。エファメラルポートなるものを指定しておきます。

 

gyazo.com

 

順番は前後していいと思うのですが、デフォルトのACLから、先程作成したrare-ACLにサブネットを関連付けしなおします。
デフォルトACLからはサブネット関連付けの編集はできないため、作成したACLであるrare-ACLにチェックを入れ「サブネット関連付け」タブを選択します。

 

gyazo.com

 

サブネットの関連付けを編集」ボタンを押すと編集画面になるので、作成した2つのサブネットを選択し「変更を保存」します。これでデフォルトACLから関連付けの変更ができました。

※後に疎通確認した時うまく行かなかったらデフォルトのACLに戻してやってみてください。

 

ここから本題であるEC2インスタンス作成となりますが、従量課金が発生してきますので一気に進めて終わり次第削除していきたいと思います。

なので後半に続きます。

 

terralien.hatenablog.com

使用したツール

画像保存としてのGyazo…普通にスクショでいい気もしますがとりあえず。

gyazo.com

構成図作成Cloudcraft(無料、有料もあり)ざっくりとしたコストも試算できる優れもの。PowerPointでいい気もしますがとりあえず。

www.cloudcraft.co

 

勉強のために作成しておりますので、内容に間違いなどなにかご指摘ありましたら是非お願いいたします。