1
0

AWSコンテナ設計・構築[本格]入門

Last updated at Posted at 2023-12-09

AWSコンテナ設計・構築[本格]入門を読みました。
備忘メモとして残しておきます。

ロギング設計

CloudWatch Logs と FireLens

  • CloudWatch Logs

    • 例)サブスクリプションフィルター: 指定した文字列を含むログのみを抽出する。
      • 抽出したログを Lambda に連携して障害を通知させる。
  • FireLens

    • AWS外のSaaSへのログ転送がしやすい。CloudWatch Logs にもログ転送が可能。

メトリクス設計

メトリクスは、定量的な指標として定期的に計測/収集されるシステム内部動作のデータです。CloudWatch メトリクスと CloudWatch Container Insights に分けられます。

  • CloudWatch メトリクス
    • CPU使用率、メモリ使用率 (1分間隔、ECSサービス単位)。
    • ECSタスクレベルで収集可能。ディスクやネットワーク情報も収集可能。

Bastion設計

各サーバへのログインが必要な際に、セキュリティ面や運用コスト面を考慮した設計が重要です。

  • セッションマネージャー経由の接続で、SSH接続が不要。
    • IAM権限でログイン可能であり、セキュリティ設定をIAMに集中管理できます。

コンテナイメージの脆弱性スキャン

継続的かつ自動的に実施することが重要です。CI/CDに仕組みを取り入れます。

  • CI/CDが実行されなければ脆弱性スキャンが実施されないため、定期的な手動スキャンが必要です。
    • CloudWatch Events から Lambda を実行できます。

平文の秘密情報対策

秘密情報を Secrets Manager や SSM パラメータストアに格納することで、環境変数として安全に提供できます。

  • 各格納先のARNと環境変数名をタスク定義内でマッピングすることで、コンテナイメージ内のOS環境変数として認識させます。

信頼性設計

マルチAZによる可用性向上

FargateでECSサービスを稼働させると、ECSサービス内部がベストエフォートでAZ間の負荷バランスを調整しながらタスク配置します。

障害時切り離しと復旧

  • CloudWatchを活用したECSタスクの障害検知
    • RunningTaskCount と TaskCount メトリクスを組み合わせます。
  • ECSサービスによるECSタスクの自動復旧
  • ALBと連動したECSタスクの切り離しと自動復旧
  • リタイアとリサイクルによるECSタスク停止への対処
    • リタイア:AWS内部のHW障害や脆弱性検知時、新しいECSタスクに置き換えるイベント
    • リサイクル:Fargate上で稼働しているECSタスクについて、パッチ適用や内部インフラストラクチャ更新のイベント

システムメンテナンス時のサービス停止

メンテナンス時、SorryページやSorryコンテンツを返却できることが理想です。ALBのリスナールールの定義に設定できます。

ECR

ECRはリージョンごとに存在するサービスです。VPC内管理サーバからECRへアクセスするには、インターネット向けOutbonding通信かVPCエンドポイントを使用する必要があります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0