挨拶:このWEBアプリの開発は私がエンジンニアになって初めて携わった開発です。まだまだ勉強不足なところがありますので気になったところがあればお気軽にご指摘頂けたら幸いです。
アーキテクチャの説明:
今回はシンプルで必要最小限の構成で設計しました。
ポイント
1.フロントサーバーとバックエンドサーバーをプライベートサブネットに置き
ALBを通して外部と通信できるようにしてます。
サーバーを直接インターネットに公開せず保護することができます。
パブリックサブネットにメンテナンスサーバーを一つ設置して
必要な場合はこちらのメンテナンスサーバーからアプリケーションのサーバーに接続して
サーバーの中身を操作します。
2.将来アクセスの増加によりサーバーがマルチAZに構成を変更する可能性もあり
ALBを経由することでサーバーが増加しても同じURLで接続することができます。
3.サーバーが外部への窓口をALBに集約することにより経路を集中保護ができます。
4.ステートレスの観点からファイルはサーバーの中に置かず
S3に置くことによって仮に本番のサーバーが故障しても予備のサーバーが
S3に保存したファイルを読み込むことができます。
5.ALB、VPCなどのログはS3に保存し、必要な場合Athenaを使って確認できます。
Terraformの構成:
C:.
│ .gitignore
│ .terraform.lock.hcl
│ main.tf
│ README.md
│ ues_modules.tf
│
├───.terraform
└───modules
├───ec2_server
│ main.tf
│ variables.tf
│
├───load_balancer
│ main.tf
│ variables.tf
│
├───rds_server
│ main.tf
│ variables.tf
│
└───vpc_service
main.tf
output.tf
Terraformで最低限必要なソースを管理して
細かい設定は手動で管理してます。