Don't try

Don't try

技術ときどきミートボール

ECS運用に役立ちそうなものまとめ

ECS運用に便利な機能まとめ。

経験が浅い自分のような人は、ついつい長期的に運用する観点を忘れてしまいがちです。

細々とした設定ファイル書いたりするより、「早くモノを作りたい!」の気持ちが勝つのでしょうがないけど。。。

最近は未経験者がポートフォリオでECS使ったりするのもあるあるらしいですが(スゲェ……)、

運用的な観点からいくつか機能を追加すると、ライバルに差をつけられるかもですね。

モニタリング

CloudWatch logs

連携することにより、簡単にログの収集が可能。

FireLens

Fargate環境で利用可能なログルーティング。

Firehoseと連携しCloudWatch logsのみではなく、S3やRedshift等への転送が可能。

AWSから「Fluent Bit」のコンテナイメージが提供されているため、ECSのタスク定義の中にアプリケーションコンテナと共に設置し、コンテナ経由でログを収集可能。

ECSの仕様として、コンテナごとにログドライバーが一つまでとなっている。

そのため、Fluent Bitを設定し、CloudWatch logs とS3 の両方、または種類ごとにどちらかに一方のみの出力とするのがベター。

※ ログの出力先の分岐にはFluent Bitのコンテナイメージのカスタマイズが必要。

メトリクス

メトリクスとは「定量的な指標として定期的に計測・収集される動作データ」。

「CloudWatch メトリクス」と「CloudWatch アラート」でアラート通知なども可能。

トレース

アプリケーションの内部処理の呼び出し、各サービス間のトランザクション情報などを取得。

X-Ray

X-Ray」で収集可能。

タスク定義にX-Rayコンテナを同梱し、アプリケーションにX-Ray用のコーディングを施すことで利用可能。

ECSのコンテナアプリケーションからX-Rayにトレース情報を書き込むには、IAM管理ポリシーの「AWSRayDeamonWriteAccess」がECSタスクロールに付与されている必要がある。

またECSタスクがプライベートサブネットにデプロイされている場合、インターフェース型のVPCエンドポイントを設置する必要あり。

メンテナンス

ECR

コンテナイメージのリポジトリ

裏側ではS3が動いているため、ライフサイクルポリシーの設定で一定の条件での保存と破棄可能、かつ高い耐久性を持つ。

タグ付けでリソースを管理する。

踏み台設計

パブリックサブネットにEC2を置く

通常のパターン。SSHで接続。

EC2運用の手間がかかる。踏み台がインターネット向けに公開されるリスクもあり。

セッションマネージャーを利用する

セッションマネージャーを利用することで、コンソールから接続できる。プライベートサブネットに置いても接続できるため、踏み台がインターネット向けに公開されるリスクを減らせる。

ECSで踏み台を設計

タスク内にSSMエージェントを設置することで、セッションマネージャーから接続できる。

インスタンス管理等の手間が省ける。

参考

AWSでECSを利用したコンテナ環境を設計、運用するうえでとても参考になります。