意外とマネージドなECS on EC2の運用

82.8K Views

December 07, 22

スライド概要

Ops JAWS Meetup#22 re:Invent 2022 recap & LT大会の発表資料です
https://opsjaws.doorkeeper.jp/events/145430

profile-image

経済ニュースアプリのSREの仕事をしています。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

意外とマネージドなECS on EC2の運用 株式会社ニューズピックス 安藤裕紀 Ops-JAWS #22 2022.12.07(Wed)

2.

00 自己紹介 安藤 裕紀 / あんどぅ NewsPicks SREエンジニア SREチームのマネージャー兼テックリード 好きなAWSのサービス:ECS、Cost Explorer 、CDK ©NewsPicks Inc. All Rights Reserved.

3.

00 目次 1. ECS on EC2を採用するメリット 2. ECS on EC2だと、運用が大変なんじゃないの? ○ OS・コンテナランタイム ○ スケーリング ○ セキュリティ 3. まとめ ©NewsPicks I nc. All Rights Reserved.

4.

01 ECS on EC2を採用するメリット ©NewsPicks Inc. All Rights Reserved.

5.

01 ECS on EC2を採用するメリットについて、ブログを書きました https://tech.uzabase.com/entry/2022/12/01/175423 EC2からECSに移行した際、コンピューティングに Fargateを選択すると同等のパフォーマンスを出すの にコストが +40% かかった NewsPicksではコンテナ化で +40%のコスト増は許 容できなかったため ECS on EC2にした それでも運用楽な Fargateの方がいいなぁという、は てブやTwitterのコメントが多かった ©NewsPicks Inc. All Rights Reserved.

6.

01 Fargateがいいの、わかります 多少コストがかかっても実行環境 EC2インスタンスの 運用業務がなくなる方がいいですよね AWSのコストよりもエンジニアのコストの方が 問題視される現場は多いと思います 確かに自分ではやりたくない … AWS CON202 ECS Fargate 入門 ©NewsPicks Inc. All Rights Reserved. - OSやエージェント類への設定・パッチ当て 実行中のコンテナ数に基づく、最適なリソース使用率を保 つためのEC2インスタンス数のスケーリング

7.

01 ECS on EC2の実際の運用がどれくらい大変かを知ることで 適切な判断ができるのでは コンピューティングのコス トを最適化したい 運用は楽になりたい ©NewsPicks Inc. All Rights Reserved. ? 予想通り大変だから コスト追加で払っても Fargate使うわ EC2 on ECS 実際の運用 思ったよりマネージドだ からECS on EC2で コスト最適化するわ

8.

02 ECS on EC2だと、運用が大変なんじゃないの? ©NewsPicks Inc. All Rights Reserved.

9.

02 Q. OSやエージェントの運用、大変なんじゃないの? OS/ecs-agent/コンテナランタイムの管理がAWSのユーザーの責務になるので 運用が大変? EC2インスタンス ECSタスク EC2インスタンス EC2インスタンス ECSタスク ECSタスク container runtime ecs-agent OS ©NewsPicks Inc. All Rights Reserved. ECSタスク ECSタスク container runtime ecs-agent OS ECSタスク … container runtime ecs-agent OS 管理対象?

10.

02 Q. OSやエージェントの運用、大変なんじゃないの? A. ECS最適化AMIがあるので、OS/ecs-agent/コンテナランタイムには なんの設定もしてません EC2インスタンス ECSタスク ECS最適化 AMI EC2インスタンス ECSタスク ECSタスク container runtime ecs-agent OS ©NewsPicks Inc. All Rights Reserved. EC2インスタンス ECSタスク ECSタスク container runtime ecs-agent OS ECSタスク … container runtime ecs-agent OS

11.

02 Q. OSやエージェントの運用、大変なんじゃないの? CDKでAutoScaling Groupを作ると、ECS最適化AMIのAMI IDさえ指定不要 cdk deployのタイミングで常に最新のAMIに更新される CDKによるASG作成 AWS管理のSSMパラメーターストアに 格納された最新の AMIを取得する ↓ /aws/service/ecs/optimized-ami/amazon-linux2/recommended/image_id ©NewsPicks Inc. All Rights Reserved.

12.

02 Q. スケーリングの運用、大変なんじゃないの? ECSのタスク数を増やす前に、EC2インスタンスを増やす必要があるから スケーリングの考慮と運用が大変? EC2インスタンス ECSタスク EC2インスタンス EC2インスタンス ECSタスク ECSタスク container runtime ecs-agent OS ECSタスク ECSタスク container runtime ecs-agent OS ECSタスク … container runtime ecs-agent OS ECSタスクと独自にスケーリング? ©NewsPicks Inc. All Rights Reserved.

13.

02 Q. スケーリングの運用、大変なんじゃないの? A. EC2インスタンス数:ECSのタスク数を1:Nではなく1:1にすることで ECSのスケーリングだけを考えれば良くなり、 EC2インスタンスの余剰リソースを埋めるための考慮もなくなります EC2インスタンス ECSタスク 2vCPU,4GB のタスク 2vCPU,4GBの インスタンス (例:c6i.large) container runtime ecs-agent OS ©NewsPicks Inc. All Rights Reserved.

14.

02 Q.EC2の分スケーリングの速度が落ちて効率が悪くなるのでは? A. 新規タスクが起動するまでの時間はECS on Fargateで2〜3分、 ECS on EC2で3〜4分という1分程度の差でした NewsPicksではタスク起動の速度をそこまで重視していないため、 スケーリングの問題になっていません (参考)NewsPicksでは以下のスケーリングを使い分けています - プッシュ通知の前に SlackのChatOpsによる任意タイミングのスケーリング - Scheduled Actionによる定時スケーリング(通勤時間・昼休み・退勤時間) - ECSのターゲット追跡ポリシーによる CPU使用率ベースのスケーリング スケーリングの速度が問題になるのはターゲット追跡ポリシーによるスケーリングですが、最も優先 度の低いスケーリングパターンのため、 FargateとEC2の違いは問題になりません ©NewsPicks Inc. All Rights Reserved.

15.

02 Q. EC2があるとセキュリティの驚異が増えるんじゃないの? EC2にログインできたり、コンテナランタイムの脆弱性を利用した攻撃が可能? EC2インスタンス ECSタスク ECSタスク container runtime ecs-agent ログイン可能? ©NewsPicks Inc. All Rights Reserved. OS コンテナランタイムの脆弱 性を利用した攻撃が可 能?

16.

02 Q. EC2があるとセキュリティの驚異が増えるんじゃないの? A. ECS最適化AMIから起動したEC2には標準ではログインできない EC2のIAMロールを最小権限にしていれば、RPC等の驚異はコンテナに侵入され る(ECSタスクロールに与えた権限)以上に増えることはないはず EC2インスタンス ECSタスク key pairの指定なし、IAMロー ルでSSM Session Managerの 権限を付与しない ログイン可能? ©NewsPicks Inc. All Rights Reserved. ECSタスク container runtime ecs-agent OS コンテナランタイムの脆弱 性を利用した攻撃が可 能? 標準のコンテナインスタンス用ポリシー AmazonEC2ContainerServiceforEC2Role IAM ではかなりできることが限られている Role 更に自クラスターに絞るなど最小権限に

17.

03 まとめ ©NewsPicks Inc. All Rights Reserved.

18.

03 ECS on EC2の運用は意外とマネージド 設計面で考えることは増えるが、そこをクリアすれば実運用はほぼない 一定以上の規模ではコストパフォーマンスが良いECS on EC2が選択肢になり得る OS・コンテナランタイム スケーリング セキュリティ ECS最適化AMIがあるので、 OS・コ ンテナランタイム層の設計・運用に 手を出すことはない CDKを利用すると、 L2 Construct のユーティリティにより、最新 AMI の指定さえ意識しなくてよい EC2インスタンス: ECSタスクを1:1で 運用することでスケーリングの設計 考慮事項は ECSに準じる Fargate→EC2による1分程度のス ケーリング速度差はサービスの特 性やAuto Scalingに頼らないス ケーリングによって許容できる ログイン不可・ EC2のIAMロールを 最小権限に設計することで Fargateと大きく変わらないはず コンテナランタイム・ ECSエージェン ト以下のセキュリティパッチ適用は ECS最適化AMIに準じるので、 CDK の適用を定常的に行う SREチーム の運用体制があれば気にならない (CDで自動化も可) ©NewsPicks Inc. All Rights Reserved.

19.

ご清聴ありがとうございました! ©NewsPicks Inc. All Rights Reserved.