AWS チュートリアル
AWSの無料枠で出来る範囲のチュートリアルがあったので試してみた経過を簡単にまとめてみました。
AWS等の実際の画面や操作はどんな感じか知りたい方を読者対象としているつもりです。
著者はAWS クラウドプラクティショナー、ソリューションアーキテクト アソシエイト という資格を取得済みで「AWSってなんぞや?」という概要を知識としてある程度理解しているが、実際にAWSの画面を触ったことが無いという状態でAWSのチュートリアルをこなしていくという状況です。
今回はChatGPTで実装を勧められて実際に実装してみた内容の紹介となっております。
状況としては、ロードバランサーのDNS名をブラウザで表示することが出来る状態になっているというところです。
ngixをサーバーにインストールした状態で、ロードバランサーのDNS名をブラウザ上で表示すると以下のようになる感じです。
ここで、現状は
インターネット → LB → EC2
インターネット → EC2(直接アクセスも可能)
これをこうします👇️
インターネット → LB → EC2
インターネット → EC2(❌禁止)
つまり
👉 EC2はロードバランサー経由でしか触れないようにする
設定手順
① EC2のセキュリティグループを開く
EC2 → インスタンス
対象インスタンス
セキュリティタブ
セキュリティグループクリック
② インバウンドルール編集
今ある:
HTTP / 0.0.0.0/0
👉 削除
③ 新しく追加
タイプ:HTTP
ポート:80
ソース:ロードバランサーのセキュリティグループID(sg-xxxx)を指定
ポイント
「ソース」に:
IPではなく
セキュリティグループを指定できる
これにより、
① 直接アクセス
http://EC2のパブリックIP
👉 ❌ アクセスできない(これが正解)
② ロードバランサー経由
http://test-application-load-balancer-xxxx.elb.amazonaws.com
👉 ✅ 表示される
これで何が良いのか
セキュリティ的に
・EC2が外に露出しない
・攻撃面が減る
構成的に
・入口がLBに一本化される
・WAFやHTTPSを後から追加しやすい
つまり、現在の構成としては、
インターネット
↓
ロードバランサー(公開)
↓
EC2(非公開・保護済み)
・直接アクセス遮断 ✅
・LB経由のみ許可 ✅
・セキュリティ的に健全 ✅
以上となります。





