Slide 1

Slide 1 text

ECS on FargateへのSeekable OCI導入レポート 2024-03-07 JAWS-UG コンテナ支部 #26 新春大LT祭り https://jawsug-container.connpass.com/event/307354/ ENECHANGE株式会社 VPoT兼CTO室マネージャー 岩本 隆史

Slide 2

Slide 2 text

岩本 隆史 (iwamot) 現職:ENECHANGE CTO室にて全社的な施策を提案・実施 前職:AWS Japan クラウドサポートアソシエイトの一員 AWS Community Builder (Cloud Operations)

Slide 3

Slide 3 text

2023-11:ECS on FargateでSOCIの利用が現実的に 2023-07:提供開始(X86_64のみ + 全イメージでの利用が必須) https://aws.amazon.com/jp/about-aws/whats-new/2023/07/aws-fargate-container- startup-seekable-oci/ 2023-08:ARM64でも利用可能に https://github.com/aws/containers-roadmap/issues/2078 2023-11:一部イメージだけでも利用可能に https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-fargate-amazon- ecs-tasks-selectively-leverage-soci/

Slide 4

Slide 4 text

2023-12:アプリAに導入 → 18%の起動高速化 環境 導入前 導入後 改善率 prod-app-a 71秒 58秒 18% SOCI Index BuilderスタックをTerraformで作成/更新できるように整備 ここまでの話は https://tech.enechange.co.jp/entry/2023/12/06/170306 で紹介 書いていなかったこと CTO室で運用している社内システムのため進めやすかった 起動時間はバラつきがあるので、あくまで目安

Slide 5

Slide 5 text

2024-01:アプリB/Cに導入 → 40~42%の起動高速化 サービス 導入前 導入後 改善率 prod-app-b 92秒 53秒 42% prod-app-c 136秒 82秒 40% 事業部に提案して導入 イメージ軽量化も実施(例:ベースイメージをrubyからruby:slimに変更) prod-app-b:57%の軽量化 prod-app-c:30%の軽量化

Slide 6

Slide 6 text

導入に際し、イメージタグを調整 環境 調整前 調整後 production 1.0.0 prod-1.0.0 staging stg-1.0.0 stg-1.0.0(そのまま) SOCI Index Builderで対象が絞りやすくなる(例: app-b:prod-*,app-b:stg-* ) 「環境ごとにイメージ必要?」という疑問はなくもない

Slide 7

Slide 7 text

ENECHANGEでは、無条件で導入することに 導入した全アプリで起動が高速化、かつ、不具合なし もし不具合があっても、インデックス削除で対処可能

Slide 8

Slide 8 text

2024-02:新規構築のアプリDに導入 Elastic Beanstalkからの移行案件 ECS環境構築用の社内Terraformモジュールを使用(アプリA/B/Cでは未使用)

Slide 9

Slide 9 text

導入に際し、社内Terraformモジュールを調整 aws_ecr_lifecycle_policyリソースに、インデックス削除ルールを追加 イメージタグは下表の通り インデックス種別 イメージタグ イメージインデックス sha256- から始まる文字列 SOCIインデックス なし

Slide 10

Slide 10 text

2024-03:新規構築のアプリEに導入 モジュールの調整が済んでいたため、Terraformで簡単に完了

Slide 11

Slide 11 text

全アプリへの導入を進める予定 単純にアプリが多いため、まだまだ残っている とはいえやるだけ

Slide 12

Slide 12 text

まとめ 2023-11:ECS on FargateでSOCIの利用が現実的に 2023-12:アプリAに導入 → 18%の起動高速化 2024-01:アプリB/Cに導入 → 40~42%の起動高速化(イメージ軽量化も実施) 導入に際し、イメージタグを調整 ENECHANGEでは、無条件で導入することに 2024-02:新規構築のアプリDに導入 導入に際し、社内Terraformモジュールを調整 2024-03:新規構築のアプリEに導入 全アプリへの導入を進める予定