関連記事(上が最新)
本計画内の作業にあたり、作業した記事の一覧
- AWS Secrets ManagerにDB接続情報を登録する
- NAT Gatewayの構築について
- Docker Desktopでコンテナアプリをローカル環境(Windows)で動かす
- Dockerfileの簡単な書き方
- コンテナをDockerで始めるための手順(Windowsローカル環境で動作)
目次
- はじめに
- 対象のアプリ
- 構築のポイントについて(Well-Architectedをもとに)
- 完成時の構成図(暫定版)
- 大まかな計画
1. はじめに
ここまでにAWS上でEC2を使用し、自作アプリをシンプルなIaaS構成で動かした。
今回はさらなる学習のステップとして、コンテナを用いたCaaS構成を軸に、より実践的な環境の構築に取り組む。
今回CaaSを使う理由
- IaaSと比較して、サーバー管理の負担を軽減できるため
- コンテナ単位で柔軟にアプリケーションの運用・スケーリングが可能なため
- サーバーレスと比較して、可用性や運用面をコントロールしやすいため
- インフラや運用設計に手を加えやすく、学習効果が高いため
2. 対象のアプリ
●使用している主な技術
- ランタイム:Node.js
- フレームワーク:Express
- データベース:MySQL
●画面遷移の流れ
●テーブルの詳細
・メモテーブル
・ユーザーテーブル
3. 構築のポイントについて(Well-Architectedをもとに)
本構成を設計するにあたり、重視するポイントを整理する
観点についてはAWSのWell-Architectedにある6本の柱を活用する
参考元:https://aws.amazon.com/architecture/well-architected/
【運用面】
概要(公式ページの記載)
システムの運用と監視、およびプロセスや手順の継続的な改善に重点を置いています。主なテーマには、変更の自動化、イベントへの対応、日常業務を管理するための基準の策定などが含まれます。
●実施すること
- 異常発生時用のアラーム作成
- 一通り構築したら追加でIaC構築(Terraform)
- 一通り構築したら追加でGitHub Actionsを使用しCI/CD構築
【セキュリティ】
概要
情報とシステムの保護に重点を置いています。主なテーマには、データの機密性と完全性、ユーザー権限の管理、およびセキュリティインシデントを検知するための制御策の確立などが含まれます。
●実施すること
- Secrets ManagerでDB接続情報を管理する
- HTTPS通信を実現
- ECSへはSSMで接続
【信頼性】
概要
ワークロードが意図した機能を確実に実行すること、および障害発生時に迅速に復旧して要求に応える方法に焦点を当てています。主なトピックには、分散システムの設計、復旧計画、および変化する要件への適応が含まれます。
●実施すること
- 障害発生時用にRDS自動バックアップ
- 異常検知用にECSヘルスチェック
- マルチAZ構築して単一障害点を排除
※ただしRDSはコストを考慮しシングルAZで構築する
【パフォーマンス効率】
概要
ITリソースおよびコンピューティングリソースの体系的かつ合理的な配分に重点を置いています。主な課題としては、ワークロードの要件に最適化されたリソースの種類や規模の選定、パフォーマンスの監視、そしてビジネスニーズの変化に伴う効率性の維持などが挙げられます。
●実施すること
- 負荷に応じたリソース調整用にECSオートスケーリング
【コスト最適化】
概要
不要なコストの削減に重点を置いています。主な取り組みとしては、経時的な支出の把握と資金配分の管理、適切な種類と量のリソースの選定、そして過剰な支出を伴わずにビジネスニーズに合わせて規模を調整することが挙げられます。
●実施すること
- ECSによるコスト効率化
【持続性】
概要
環境への影響を最小限に抑えることに重点を置いています。主なテーマとしては、サステナビリティに関する責任分担モデル、環境への影響の把握、そしてリソースの利用率を最大化することで必要なリソースを最小限に抑え、下流への影響を軽減することが挙げられます。
●実施すること
- ECSを使いタスク単位でリソースを管理し、効率的なリソース利用を実現
4. 完成時の構成図(暫定版)
5. 大まかな計画
- ローカル環境でコンテナ化
- ECRでイメージ管理
- ECS + ALBでデプロイ
- RDS + SecretsでDB連携
- CloudWatchで監視・アラート
- セキュリティ設定の見直し
- TerraformでIaC化
- GitHub ActionsでCI/CD構築



