ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村...
Transcript of ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村...
![Page 1: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/1.jpg)
FiNCを支えるインフラ技術〜 ECSとDevOps 〜
![Page 2: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/2.jpg)
自己紹介
⚫ 名前: 中村 郷史(なかむら さとし)
⚫ 所属: プロダクト本部 技術開発部 SREグループ
⚫ 担当: Technical Lead in SRE
⚫ 社歴: 2017年1月ジョイン。約1年半。
⚫ よく使っているAWSのサービス
ECS、CloudFormation
![Page 3: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/3.jpg)
人の行動を変え、健康を実現するヘルスケアカンパニー
< O u r V i s i o n >
一生に一度のかけがえのない人生の成功をサポートする
![Page 4: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/4.jpg)
「健康寿命」という言葉はご存知ですか?
![Page 5: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/5.jpg)
人の支えがなければ生きられなくなってしまう年齢のことを言います
![Page 6: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/6.jpg)
![Page 7: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/7.jpg)
24.1%
21%
13%
9%
7%
26%
脳卒中
認知症
衰弱
骨折
関節疾患
その他
寝たきりの原因厚生労働省 国民基礎調査より
![Page 8: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/8.jpg)
「生活習慣の改善」に必要な三要素
栄養
何をすべきか分からない
継続できない
1
2
運動 休養
![Page 9: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/9.jpg)
Mission
すべての人にパーソナルコーチを
![Page 10: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/10.jpg)
FiNCのサービス
有料課金 EC広告
FiNCインタラクティブコミュニケーション
![Page 11: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/11.jpg)
ライフログがたまるほど、あなたにフィットするパーソナルトレーナーAIアプリ
![Page 12: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/12.jpg)
FiNCアプリ
歩数・睡眠時間が自動で記録体重・食事・生理日なども
モデルやアスリート、栄養士/トレーナー等による
ヘルシーレシピ・フィットネス等の動画
家族や友達、著名人・専門家と楽しくコミュニケーション
動画コンテンツライフログの記録 SNS
![Page 13: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/13.jpg)
FiNCのシステム
マイクロサービス・アーキテクチャ
![Page 14: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/14.jpg)
アカウント管理機能ライフログ機能
ランキング機能
チャット機能
グループ機能
企業管理機能
AI機能
決済機能
主機能
姿勢解析機能
APIAPI
API
API
API
マイクロサービス・アーキテクチャ
アカウント管理機能
ライフログ機能
ランキング機能
チャット機能
グループ機能
企業管理機能
AI機能
決済機能
主機能
姿勢解析機能
モノリシック・アーキテクチャ
マイクロサービスとは
![Page 15: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/15.jpg)
ヘルスケアの中で様々なサービスを提供するというビジネス構想があったから
なぜマイクロサービスか?
FiNC インタラクティブコミュニケーション
![Page 16: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/16.jpg)
アジェンダ
⚫なぜECSにしたのか
⚫ECS Tips
⚫ECS 事件簿
![Page 17: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/17.jpg)
アジェンダ
⚫なぜECSにしたのか
⚫ECS Tips
⚫ECS 事件簿
![Page 18: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/18.jpg)
ECS以前の構成の振り返り
⚫EC2
⚫Ansible
⚫Capistrano
![Page 19: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/19.jpg)
⚫ スケール性能
サーバの起動、構築からサービスに組み込まれる時間
⚫ 余剰リソース
余剰CPU、メモリの有効活用
⚫ 多様な構成管理
OS、言語、フレームワーク、バージョン等
⚫ 異なる設定管理
非同期処理、DB設定、環境設定
EC2時代の問題点
![Page 20: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/20.jpg)
⚫ スケール性能
コンテナ(サーバ)増強の速さ
⚫ リソース最適化
1台のサーバリソースを使いきれる
(最大70コンテナ稼動)
⚫ 多様な構成管理、異なる設定管理
SREが中央管理するのではなく、開発側に委譲
なぜECSにしたのか
![Page 21: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/21.jpg)
⚫ スケール性能
コンテナ(サーバ)増強の速さ
⚫ リソース最適化
1台のサーバリソースを使いきれる
(最大70コンテナ稼動)
⚫ 多様な構成管理、異なる設定管理
SREが中央管理するのではなく、開発側に委譲
なぜECSにしたのか
![Page 22: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/22.jpg)
⚫ 多様な構成
OS、言語、フレームワーク、バージョン等
初期:Ansible(Ops)
移行期:Dockerfile(Ops)
現在:Dockerfile(Dev)
⚫ 異なる設定
非同期処理、DB設定、環境設定
初期:Capistrano(Ops)
移行期:Envfile(Ops)
現在:Envfile(Dev)
※Envfile・・・環境変数によってデプロイフロー使い分けているファイル
構成管理ファイル
![Page 23: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/23.jpg)
⚫ 移行期間
約半年
⚫ 移行方法
Route53 RoutingPolicy: Weighted
EC2 99%
ECS 1% => 5% => 30% => 100%
・・・1日放置 ⇄ エラー、リソース確認
ECS移行期間、方法
![Page 24: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/24.jpg)
トラフィック推移
![Page 25: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/25.jpg)
⚫ スケール性能
急激なトラフィックに耐えられるようになった
⚫ 余剰リソース
集約率向上 => 1コンテナインスタンスに平均約20タスク
⚫ 多様な構成
開発者がSREに依頼することなく変更が可能
⚫ 異なる設定
開発者がSREに依頼することなく変更が可能
ECSに移行した結果
![Page 26: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/26.jpg)
アジェンダ
⚫なぜECSにしたのか
⚫ECS Tips
⚫ECS 事件簿
![Page 27: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/27.jpg)
発表内容の全体像
Build Test Deploy
doker pull docker exec
Batch Jenkins
CI/Monitoring Jenkins
Utility
ALB
Cluster
Application
S3
RDS
Amazon
ECR
Task
Definition
worker
gateway
ECS
Lambda
function
Amazon
CloudWatch
RedShift
![Page 28: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/28.jpg)
Tips1
DBマイグレーション実行方法
![Page 29: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/29.jpg)
Build Test Deploy
⚫ docker run
⚫ package install
⚫ db create
⚫ test code ⚫ (image upload)
⚫ migration
⚫ ECS TaskDefinition update
⚫ ECS Service update
デプロイフロー
![Page 30: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/30.jpg)
どうしたか?
アプリケーションクラスターと
同じクラスターを作る
![Page 31: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/31.jpg)
デプロイフロー
Build Test Deploy
Utility
ALB
ECS
EC2
デプロイフロー
1. utilityクラスターのサービス更新
2. 画像アップロード
3. migration
4. Applicationクラスターのサービ
ス更新
rails consoleの実行
①
Application
S3
RDS
②
③
④
gateway
![Page 32: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/32.jpg)
Tips2
テスト高速化
![Page 33: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/33.jpg)
ある日・・・
テストめちゃくちゃ遅いんですけど
![Page 34: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/34.jpg)
Build Test Deploy
⚫ docker run
⚫ package install
⚫ db create
⚫ test code ⚫ (image upload)
⚫ migration
⚫ ECS TaskDefinition update
⚫ ECS Service update
デプロイフロー(再掲)
![Page 35: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/35.jpg)
テストフロー
Build Test Deploy
開発者 GitHub
ECS
テストフロー
1. 開発者がGitHubにpush/merge
2. イメージをpull
3. コンテナを起動
4. 必要パッケージをインストール
5. db create
6. テストコード実行
①
②③ ④ ⑤ ⑥
Amazon ECR
Task Definition
ECS Cluster Service
S3
![Page 36: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/36.jpg)
どうしたか?
環境に変更がない場合はビルド処理をスキップ
![Page 37: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/37.jpg)
対象ファイル、ディレクトリをSHA256に変換
⚫ インストール
Dockerfile、Gemfile
⚫ マイグレーション
db/migrate
環境構成チェック方法
![Page 38: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/38.jpg)
Build Test Deploy
開発者 GitHub
ECS Cluster Service
ECS
テストフロー
1. 開発者がGitHubにpush/merge
2. config check
3. ECRからインストール済みイ
メージをpull
4. コンテナを起動
5. 必要パッケージをインストール
6. config check
7. db create
8. テストコード実行
①
③
② ⑥
④ ⑤ ⑦ ⑧
テストフロー(改善版)
Amazon ECR
Task Definition
S3
![Page 39: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/39.jpg)
実測値
15分 -> 5分
![Page 40: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/40.jpg)
Tips3
オートスケール方法
![Page 41: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/41.jpg)
Lambda
function
Amazon
CloudWatch
Auto
Scaling
ECS
task1
task2
publish metrics
get metrics
publish metrics
ScaleIn/Out
スケールイン/アウト(ECS)
スケールイン/アウト
1. unicorn worker num
2. lambda function
3. 1.をCloudWatchに送る
4. トリガー発動
①
②
③④
![Page 42: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/42.jpg)
Amazon
CloudWatch
Auto
Scaling
EC2
task1
task2
Scaleout
publish metrics
スケールアウト(EC2)
スケールアウト
1. CPU Utilization
2. Scale Out①
②
![Page 43: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/43.jpg)
Amazon
CloudWatchEC2
task1
task2
monitoring
publish metrics
スケールアウト(EC2)
スケールアウト
1. CPU Utilization
2. monitoring
3. draining/terminate
①
draining/terminate
③②
![Page 44: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/44.jpg)
Tips4
バッチ処理実行方法
![Page 45: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/45.jpg)
EC2時代
cronで実行
![Page 46: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/46.jpg)
どうしたか?
バッチ用のJenkins
![Page 47: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/47.jpg)
バッチ用Jenkins
In-house-tool
Amazon
ECR
Task
Definition
ECS Cluster
Servicedoker pull docker exec
ECS
Batch Jenkins
ジョブ例
ServieName=AAA
Container=rails
batch-tool bundle exec rake XXX
①
②
③
④
バッチ実行方法
1. タスク定義を検索
2. リポジトリとタグを検索
3. docker pull
4. コマンド実行
![Page 48: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/48.jpg)
Tips5
Dockerfileの管理
![Page 49: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/49.jpg)
⚫ 多様な構成
OS、言語、フレームワーク、バージョン等
Dockerfile
⚫ 異なる設定
非同期処理、DB設定、環境設定
Envfile
構成管理ファイル
![Page 50: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/50.jpg)
⚫ 管理しているもの
Dockerfile
Envfile(環境変数)
・・・徐々に移行
⚫ 管理していないもの
オートスケールの設定
Devが管理
![Page 51: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/51.jpg)
アジェンダ
⚫なぜECSにしたのか
⚫ECS Tips
⚫ECS 事件簿
![Page 52: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/52.jpg)
問題1
fluentdサーバSPOF問題
![Page 53: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/53.jpg)
⚫ awslogs(当時)
30GB/日 x 15サービス=450GB
450GB x $0.76=$342/日 x 30day = $10,260/月
・・・fluentdを使った
fluentdを使っている理由
![Page 54: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/54.jpg)
なぜかコンテナが起動しない
ある日・・・
![Page 55: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/55.jpg)
原因
fluentdサーバに障害
コンテナが上がらない
![Page 56: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/56.jpg)
ECS
S3
RedShift
application log
access log
activity log
fluentdの設定
![Page 57: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/57.jpg)
コンテナホストに
fluentdの中継サーバーを立てる
どうしたか?
![Page 58: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/58.jpg)
ECS
application log
access log
activity log
fluentdの中継
S3
RedShift
![Page 59: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/59.jpg)
問題2 (ラスト)
push通知重複問題
![Page 60: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/60.jpg)
ある日・・・
1人に同じプッシュ通知が重複して届く
![Page 61: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/61.jpg)
原因
非同期処理ワーカーが処理中にコンテナが停止してしま
い、最初から処理を再開
⚫ ECSタスクの停止動作
$ kill -SIGTERM (kill -15)
$ kill -SIGKILL (kill -9)
![Page 62: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/62.jpg)
どうしたか?
$ kill -USR1
停止シグナルを送ってから、停止するまで待つ
コンテナ監視を社内で構築
![Page 63: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/63.jpg)
System Manager
1. 稼働中のタスクの最大メモリとワーカー数を確認
2. SystemManagerにメモリとワーカー数を問い合わせ
3. 最大メモリ値を超えたタスクに対してユーザシグナルを送りタスクを終了
In-house-tool
ECS Cluster
Service
ECS
monitoring Jenkins
①③
②
ワーカー監視方法
![Page 64: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/64.jpg)
ライフログがたまるほど、あなたにフィットするパーソナルトレーナーAIアプリ
![Page 65: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/65.jpg)
エンジニア採用してます
⚫SiteReliabilityエンジニア
⚫サーバサイドエンジニア(Rails)
⚫iOSエンジニア
⚫Androidエンジニア
https://www.wantedly.com/companies/finc/projects
採用
![Page 66: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/66.jpg)
https://medium.com/finc-engineering
エンジニアブログ
⚫Redshiftディスク使用量削減大作戦
⚫細部カイゼン合宿が思ったより有意義だった件
⚫マイクロサービス指向 Rails API開発ガイド
・・・この後、AWS Summit Tokyo
の話しもアップします
![Page 67: ECSとDevOps - d1.awsstatic.com · 〜 ECSとDevOps 〜 自己紹介 ⚫名前:中村 郷史(なかむら さとし) ... 何をすべきか分からない 継続できない](https://reader030.fdocument.pub/reader030/viewer/2022041220/5e098f75df33047b2c1ff564/html5/thumbnails/67.jpg)
Thank you