【重点要約】
AWSでのコンテナアーキテクチャとしては、コントロールプレーンをECS、EKS、データプレーンをFargate、EC2の組み合わせから選択し構成する。
ECSではコンテナイメージやリソースを指定したタスク定義からタスクを作成し、1つ以上のタスクからなるサービス、1つ以上のサービス(またはタスク)からなるクラスターの構成。
Well-Architectedフレームワークを考慮し設計・構築する。
【その他メモ】
・コンテナ…OSとカーネルは共有しプロセスを分離。プロセスごとにリソースが割り当てられ依存関係が含まれる。
→仮想化と比較し、ゲストOSが不要でありリソースの消費が少ない。
・オーケストレータ…コンテナの配置管理、負荷分散、監視・復旧、デプロイ
・コンテナ運用設計
イメージのライフサイクル管理・保護
ビルドからデプロイまでの流れ(AWSのCodeシリーズでCI/CD構築可能)
オーケストレーションの権限制御、定義管理、セキュリティ設定
・タスクごとにIPv4アドレスが割り当てられる
・Well-Architectedフレームワーク
運用上の優秀性→メトリクス・トレース・ログの把握、修正の容易さ、デプロイリスクの軽減等
セキュリティ→Secrets ManagerやARN、環境変数をタスク定義内でマッピングし、コンテナイメージ内のOSの環境変数として認識させる等
信頼性→FargateでECSサービスを稼働し、ベストエフォートでAZ間の負荷バランスを調整しながらタスク配置等
パフォーマンス効率→Application Auto Scalingと組み合わせコンテナ起動数を自動調整、必要なメトリクスを収集し適切なサイジングを行う等
コスト最適化→FargateSpotの利用等