実際にVPCを構築してみる(VPCとサブネット)でやった続きです。
※完成してません、試行錯誤中です。
勉強前イメージ
インターネットゲートウェイとNATゲートウェイについてはこれでなんとなくやったけど、
実際の構築イメージはわかない....
Internet gateway と NAT gateway
AWSのVPCのよく使われるコンポーネントについて で書いたイメージから、
前回 からの修正を行ったイメージ図が以下です。
今回、このようなイメージで設定していきたいと思います。
※修正を行ったのが赤文字の箇所です。
設定を行う
VPCとサブネットの設定は 前回 を見てください。
EC2インスタンスを作成する
完成後イメージはこんな感じ
3つも書くのめんどくさいので、1インスタンスだけ書きます。
- インスタンスを起動
- AMIイメージを選択
- インスタンスタイプを選択
- インスタンスの詳細の設定を行う
10.0.1系を2つ作成
10.0.2系を1つ作成
- ストレージを設定
インスタンス削除時に一緒にストレージも消えるように「終了時に削除」にチェックを入れる
- タグの追加
今回はしません。
- セキュリティグループの設定
一旦デフォルトの設定
- 最終確認
- キーペアの作成
これを3つ作ります。
- 3つ作りました
- 実際構築図
ローカルIP勝手に割り振られたので、青文字のIPアドレスになりました。
NATGateway を作成
EC2を作ったので、NATGateway と InternetGateway を作成する
- NATGatewayを作成します
- NATゲートウェイを作成します
名前はわかりやすいように。
サブネット は10.0.2系のサブネットを指定。
ElastixIP は、「Elastic IP の割り当て」をクリックするとIDが割り当てられます。
ここにはないのですが、タグは何も記載していません。
こちらせ作成を行います。
- できました
Internet Gateway を作成
- インターネットゲートウェイの作成
- インターネットゲートウェイの設定
名前はわかりやすいようにつけました。
タグは自動で入りました。
- できました。
インターネットゲートウェイができました。
- インターネットゲートウェイをVPCにアタッチしないといけない ※1
注意書きがされているのは、次に進んだらわかりますが
アタッチしてないことによって戸惑ったので....
VPCにインターネットゲートウェイをアタッチします。
そうだよね。。。作るだけじゃどこに置いたらいいかわからんもんね....
- アタッチを行う
作ったVPCを選択してアタッチします。
- アタッチされました
アタッチできました。
Route tableの設定
前回 では書けていなかったのですが、
調査しているうちにNAT Gateway と Internet Gateway を使うには subnet の Route table を変更しないといけないようです。
イメージ図としては以下です。
- subnet 10.0.1.0/24 のRoute table
10.0.1.1 - 10.0.1.254 までは先がlocalにあります。
それ以外(0.0.0.0/0) は NAT Gateway に聞きに行きましょう
送信先 | ターゲット |
---|---|
10.0.1.0/24 | local |
0.0.0.0/0 | NAT Gateway |
- subnet 10.0.2.0/24 のRoute table
10.0.2.1 - 10.0.2.254 までは先がlocalにあります。
それ以外(0.0.0.0/0) は Internet Gateway に聞きに行きましょう
送信先 | ターゲット |
---|---|
10.0.2.0/24 | local |
0.0.0.0/0 | Internet Gateway |
まず....
10.0.1系(qiita-test-1) , 10.0.2系(qiita-test-2) のルートテーブルが一緒でした...
ですので、どちらか(今回は10.0.1系のqiita-test-1)のルートテーブルを別途作成します。
- ルートテーブルの作成
ルートテーブルからルートテーブルの作成を行います
- ルートテーブルの設定
名前タグはわかりやすいように。
VPCは作成したVPCを指定します。
- できました
ルートテーブルできました。
ついでにわかりやすいように 10.0.2系(qiita-test-2)のルートテーブルの名前も変えておきました。
- 10.0.1系のサブネットにアタッチするためにルートテーブルの関連付けを編集
作るだけじゃだめで、サブネットに作ったルートテーブルを関連付けしないといけないので、
「ルートテーブルの関連付けを編集」します
- ルートテーブルの編集
ルートテーブルIDに先程作成した qiita-test-1-routetable
を指定します。
- ルートテーブル変えれました
そしたら、10.0.1系も10.0.2系もルートテーブルが別々になりました!
10.0.1系のRoute tableの変更
- ルートの編集
- ルートの変更
以下のように設定したいと思います。
送信先 | ターゲット |
---|---|
10.0.1.0/24 | local |
0.0.0.0/0 | NAT Gateway |
あれ....送信先....10.0.1.0じゃなくて....10.0.0.0
では・・・?
localってsubnet内じゃなくてVPC内ってこと?
しかもNAT Gateway なくなってる...消えてる....deleteになってる・・・なぜーーー
もう1回作り直しました。
10.0.2系のRoute tableの変更
- ルートの編集
- ルートの変更
10.0.1系のRoute table変更する際にlocalの送信先は10.0.0.0/16と分かったので↓は変更します。
送信先 | ターゲット |
---|---|
10.0.0.0/16 | local |
0.0.0.0/0 | Internet Gateway |
しかもこっちもInternet Gatewayがdeleteになってる・・・
これは作ったインターネットゲートウェイをVPCにアタッチするの忘れてました・・・
※1 の手順を抜かしてました(後から書いた
- できたんだけど・・・
Route table できたんだけど・・qiita-test-2-routetableの明示的に関連付けられたサブネットがない・・・
明示的にするべき?
- 明示的にサブネットを関連付ける
- 関連付けを編集
- 明示的に関連付けられました
結果
実際に構築してみて、青文字のところが変更点です。
全然想像どおりにはならない....
通信をしてみる
↑で作ったものがきちんと通信できるのか、
10.0.1.96 と 10.0.2.249 にログインしてみて確かめてみます。
ログインするには、以下が必要なので行っていきます。
- 10.0.2.249のサーバにelasticIPを振る
- ↑に関連してセキュリティグループの変更が必要
10.0.2.249のサーバにelasticIPを振る
- EC2に移動してElastic IPの割り当てを行います
- 割り当てをします
Amazon のIPv4 アドレスプールから割り当てを行います
- 割り当てられました
できました。
- 割り当てられたElastic IP を 10.0.2.249 に関連付けします
- 関連付けします
リソースタイプはインスタンス。
インスタンスは10.0.2.249 のインスタンスに割り当てます。
セキュリティグループを家から繋げられるように変更
- 家から繋げられるセキュリティグループの作成
今はlocal(10.0.0.0/16)同士しか繋げられないから.....
- セキュリティグループの設定
適当にhomeというセキュリティグループを作りました。
許可はSSHのみ。
- セキュリティグループができました
- 「home」セキュリティグループの割り当て
インスタンスから10.0.2.249 のインスタンスを選択
右クリックで セキュリティ > セキュリティグループの変更 で進みます。
- セキュリティグループの追加
セキュリティグループ名を検索して、追加を行うと下に追加されるのでそれで保存
接続確認
1 : 10.0.2.249 がElasticIPを通じてSSH接続出来るのか。
2 : 10.0.1.96 が 10.0.2.249 からSSH接続できて、ping 8.8.8.8 が出来るのか。
1 : 10.0.2.249 がElasticIPを通じてSSH接続出来るのか。
- 接続
- 外部への接続は出来る
SSHできたし、外部への通信もできた
- 内部への接続もできる
10.0.1系へのpingも通った
2 : 10.0.1.96 が 10.0.2.249 からSSH接続できて、ping 8.8.8.8 が出来るのか。
- 10.0.2.249 → 10.0.1.96 にSSHが出来るか
入った!!!!
- 外部への接続が出来るか
pingはとおらんかったか....
勉強後イメージ
一応組んでみたもののpingは通らなかったです....
あとたぶんすっごい見ずらいし、完成してないしですいません。
最後までやるべきだろうけど体力不足..また今度リトライします。
結構難しかった