Web三層構造の構築
皆さん、こんにちはinui.dです。
最近暑くて暑くてカナワナイデスネ(;´ρ`)
さて協栄情報に入社してから、現場に入るまでの2週間足らず研修をしておりました!!
研修内容
WEB三層構造の構築(MultiAZ)
AWSの構成図を書く→構築する→構築物から設計書を作成する→設計書から再度構築をする。
構成図
目標
EC2にApacheをインストールして、Apacheの画面にRDSのデータを表示できたらOK!
本題
研修で厄介だったのがセキュリティグループ。
通信がうまくいってない場合大体ここが悪さしてました。
上手くいかないからと言ってポート全開放なんてことはやめましょう…(; ゚∇゚)ノ_彡
ではなぜセキュリティグループの設定がわからなかったのか。
通信経路の理解不足。これにつきます。
逆にここさえ理解していればめちゃくちゃ簡単でした!!!!
セキュリティグループ設定手順
1,通信の流れを明確にする(どこからどこにアクセスしているのか)
今回のケースでいうと通信の流れはこちら
インターネット→ALB→EC2→RDS
2,アクセス先のセキュリティグループにインバウンドルールを追加する
ALBのセキュリティグループ
ALBはインターネットから通信が来るのでhttpとhttpsからの通信許可を設定する。
EC2のセキュリティグループ
EC2はALBから通信が来るのでALBのセキュリティグループをソースに設定する。
※躓きポイント 1
ALBから通信が来る時httpとhttpsの2つが来ると思い込んでました。
なので最初はインバウンドルールにhttpとhttpsを設定していました。
ですがALBの設定でhttpの通信をhttpsにリダイレクトするようにしていて、
ALBはポート80から通信を出すのでEC2のインバウンドにはポート80の設定だけで大丈夫でした!※躓きポイント 2
RDSからデータを取得するならEC2のインバウンドにRDSからの通信を許可する必要があるのではないか!?
結論:いりませんでした。
RDSからEC2にアクセスするケースでは必要みたいですが、
今回はEC2からRDSにアクセスしてデータを取得するだけなので無しで大丈夫でした。
RDSのセキュリティグループ
データベースエンジンにMYSQLを選択しているので、今回のポートは3306になりました。
ソースにはEC2のセキュリティグループを選択。
※EC2のセキュリティグループもそうですが、ソースにはアドレスよりもセキュリティグループを
設定するほうがメンテナンス性や可読性が高いなと感じたので
極力こっちで設定するのが良いと思いました。
まとめ
理解してしまえば簡単なセキュリティグループ。
でもここがしっかり設定出来てないと通信もつながらないし、セキュリティ面も危ないし超大事!
今回の研修では比較的シンプルな構成にも関わらず結構色んな所で躓きました!
ec2のユーザデータ作成とか… CloudWatch エージェントのインストールとか…
躓いては調べてを繰り返し色んな知識が身に付き、実りの多い研修でした。
研修中ヒントをくれた同僚や上司に大感謝…!
AWSは覚えること多いし、アプデ早いしで勉強が中々大変なんですが、
コンピュータサイエンスも勉強して基礎力を高めることで対応していけると思ってるので
そっちも頑張ってまいります!!!!!!