nokoのブログ

こちらは暫定のメモ置き場ですので悪しからず

ECS設定チェックリスト

メモ

ネットワーク

  • VPCエンドポイントが色々必要
    • S3, CloudWatchLogs, ECR, etc
    • S3はインターフェース型もゲートウェイ型もどちらも必要

デプロイ

  • CodeDeployと連動させて、ローリング or Blue/Green
    • Blue/Greenがおすすめ
  • 環境ごとにリポジトリ・デプロイのルールを変える(リポジトリポリシー、CodeDeploy)
    • 開発:手動プッシュを許可
    • ステージング:CI/CDからのプッシュのみ許可
    • 本番: ステージングデプロイ済モデルのみデプロイ可能
  • 環境ごとに固有のタグ識別文字を付与し、タグごとのライフサイクルポリシーを指定する
  • タグは、環境識別子+コミットIDがおすすめ
  • イメージの上書き禁止設定をする。(IMMUTABLE設定)
  • デプロイ前に承認アクションを設定する
  • パスワードとかはSecret Managerでsecure stringとして管理する

監視

  • SNSからChatbotに連携してSlack通知
  • FireLensでログ運用する
    • -> CloudWatch Logsよりおすすめ
    • サイドカーパターンで配置する
  • CloudWatch Container Insightsを活用する

セキュリティ

  • ECS/FargateはPCI DSS準拠
  • 金融サービスに関するWell-Architectedフレームワークレンズを参考にする
  • ECRによる脆弱性スキャン+Trivyによる脆弱性スキャン
  • dockleでベストプラクティスチェック
  • -> CIの中でTrivy+dockle
  • WAFをALBと連携させる
  • コンテナレジストリの暗号化(作成時)

性能

  • オートスケールはステップスケーリング or ターゲット追跡スケーリング
    • ターゲット追跡スケーリングがおすすめ

踏み台

  • SSMのセッションマネージャ
    • SSMエージェントを仕込んでおく
  • または、Amazon ECS Exec

運用

  • ECSはAWSの完全なサポートを受けられる(オーケストレータ部分含めて)
  • FargateはEC2よりも割高なので注意
  • FargateはOSのセキュリティパッチ適用や各種ライブラリのアップデート作業が不要になる(運用工数削減)
  • 開発・ステージング環境はLambdaで稼働時間帯を調整する

参考