##環境
AWS CloudTechの実践課題1にて得られるスタック
##トラブルシュートのセオリー
インフラSES在職3年程度の人間としては、以下がセオリーという肌感覚でいる。
①物理的で基本的なとこから確認していく。
②ローカルPC → 接続先に向かって実施する。
あとはAWS素人なりに可能性の高そうなとこを優先して実施した。
##トラブルシュート
まずはSSHアクセスしてみるが、タイムアウトになり接続できないのでトラブルシュートしていく
####1. EC2インスタンスが起動しているか
CloudTechTest 実行中
→問題無し。
####2. インターネットゲートウェイはアタッチしているか
そもそもどのVPCなのかを確認。
vpc-…xxx…1acb
インタネットゲートウェイのうち、上記のVPCにアタッチしているものを確認。
igw-….xxx…e626 Attached
→問題無し。
####3. Security GroupでSSHが許可されているか
実務でも、FWを通るなら最も可能性が高そうな原因であり、出題者としても出しやすい被疑箇所だ。
stack-test1-InstanceSecurityGroup-…xxx…NSFI
タイプ | プロトコル | ポート範囲 | ソース | 説明 | オプション |
---|---|---|---|---|---|
SSH | TCP | 22 | 0.0.0.0/16 | ||
→インバウンドルールのソースがデフォルトルートでなくなっているので、0.0.0.0/0 に修正 |
|||||
→SSH接続してみるが繋がらない...「え!?違うの?」と思いながら答え合わせ動画を見ると、もう一つ原因があるとのこと。(どこまでも実務に近くて良い課題!!) |
####4. 変なACLが設定されていないか
あまり可能性は無さそうだが、FWの次に見ておくべきな気がしたので確認。
インバウンドルール
ルール番号 | タイプ | プロトコル | ポート範囲 | 送信元 | 許可/拒否 |
---|---|---|---|---|---|
100 | HTTP (80) | TCP (6) | 80 | 0.0.0.0/0 | Allow |
101 | SSH (22) | TCP (6) | 22 | 0.0.0.0/0 | Allow |
102 | カスタム TCP | TCP (6) | 1024 - 65535 | 0.0.0.0/0 | Allow |
* | すべてのトラフィック | すべて | すべて | 0.0.0.0/0 | Deny |
アウトバウンドルール
ルール番号 | タイプ | プロトコル | ポート範囲 | 送信先 | 許可/拒否 |
---|---|---|---|---|---|
102 | カスタム TCP | TCP (6) | 1024 - 65535 | 0.0.0.0/0 | Allow |
* | すべてのトラフィック | すべて | すべて | 0.0.0.0/0 | Deny |
→アウトバウンドルールで、SSHが許可されていないから戻りのパケットが拒否されてしまいそう。
→自信が無かったのでとりあえず、答え合わせ動画を見ると原因ではなかった。
→(追記)戻りのパケットはルール番号102
によって許可されている。ポート範囲1024-65535
は一時ポートというもの。AWS 一時ポートについて
####5. 戻りのルーティング(EC2→ローカルPC)があるか
FWの次に可能性が高そうなことだ。
答え合わせ動画で原因がこれであることを知った。
EC2インスタンスがいるサブネットのルートテーブルを確認。
送信先 | ターゲット |
---|---|
0.0.0.0/16 | igw-...xxx...e626 |
10.0.0.0/16 | local |
→送信先がFW同様に0.0.0.0/16になっているので、0.0.0.0/0に修正。 |
##確認
最後にSSH接続して、成功した。
##感想
課題を通して手を動かすことで、「あの設定はどうやって見るんだっけ?」という基本的な操作を覚えられたように感じる。
引き続きコンテンツを消化していく。
##参考
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com