Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
内定者バイトが1ヶ月ちょいでDSPをAmazonECSに乗っけた話
Search
Hiromu Masuda
September 28, 2018
Technology
1.3k
1
Share
内定者バイトが1ヶ月ちょいでDSPをAmazonECSに乗っけた話
DSPサーバーをAmazonECSとFargateを用いて動かした際のアーキテクチャ・デプロイフローについてまとめました。
Hiromu Masuda
September 28, 2018
Other Decks in Technology
See All in Technology
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
130
ビジュアルプログラミングIoTLT vol.23
1ftseabass
PRO
0
160
AIが変えた"品質の守り方"
kkakizaki
13
5.4k
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
0
150
Platform engineering for developers, architects & the rest of us (AI agents)
danielbryantuk
0
150
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
2
170
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1k
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
360
oracle-to-databricks-migration-with-llm-and-dbt
casek
1
370
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
470
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
240
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
160
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
320
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
370
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
120
Practical Orchestrator
shlominoach
191
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Test your architecture with Archunit
thirion
1
2.3k
BBQ
matthewcrist
89
10k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
290
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Transcript
内定者バイトが1ヶ月ちょいで DSPをAmazonECSに乗っけた話 増田 大夢|Hiromu Masuda
自己紹介 増田 大夢|HiromuMasuda 東京大学工学部システム創成学科4年 静岡県浜松市出身 趣味:ボディビル・海外旅行 休日の過ごし方:ボディビル・海外旅行
アジェンダ 1. Amazon ECS / Fargate 導入の背景 2. Amazon ECS
/ Fargate とは 3. アーキテクチャ 4. デプロイ 5. 苦労話 6. 最後に
Amazon ECS / Fargate 導入背景
Amazon ECS / Fargate 導入の背景 • 挙動・設定がブラックボックスすぎる • ELB/SGの名前が自動生成で探しづらい •
Blue-Greenデプロイがroute53経由なため、DNSキャッシュがきいてしまい上手く切 り変わらない Elastic Beanstalkの苦労
Amazon ECS / Fargate 導入の背景 • コンテナ化してモダンにしたい • Fargateが東京リージョンでも使えるようになった •
今後EKSが東京リージョンに来た時に移行しやすそう Amazon ECS / Fargate を選んだ理由
Amazon ECS / Fargate とは
Amazon ECS / Fargate とは Amazon Elastic Container Service (Amazon
ECS) は、Docker コンテナをサポートする 拡張性とパフォーマンスに優れたコンテナオーケストレーションサービスです。これによ り、コンテナ化されたアプリケーションをAWSで簡単に実行およびスケールできます。
Amazon ECS / Fargate とは task / service / cluster
というレイヤー
Amazon ECS / Fargate とは task definition / task とは
docker-composeのようなもの。 task definitionにどのようなイメージを使ってどのようなコンテナを立てるのか、 CPU/メモリの割り当てをどうするか、環境変数・ポートの設定などをしておくと、 taskという形で定義されたコンテ ナの集合体を生成できる。
Amazon ECS / Fargate とは service とは 「指定したtask definitionからtaskを生成する」 という作業をいい感じにやってくれる。taskの希望台数・最大数・
最低数、オートスケールの ルールを設定することで、CPU/メモリの使用量やタスクのステータスを監視しながら 自動でタスクの台数を調節 してくれる。
Amazon ECS / Fargate とは cluster とは taskとserviceをグルーピングする概念
Amazon ECS / Fargate とは Fargate とは サーバレスでコンテナが実行できる技術 であり、タスク(コンテナの実行単位)に割り当てたvCPUとメモリの量に 応じて秒単位での課金でコンテナを実行できる。Fargateを用いれば
EC2インスタンスの管理が不要 になり、オー トスケールに柔軟に対応 できる。
アーキテクチャ
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP AWS版DockerHub Docker image用レポジトリ
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP ECRのimageから task definitionを作成
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP serviceは task definitionを用いて taskを生成する
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP task内では、 DSP/datadog/flumeの 3つのプロセスが コンテナとして動く
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP コンテナは Fargate上で 動いている
アーキテクチャ ECR cluster: service Fargate task task task DSP task
definition ELB images SSP DSP DSP serviceはロードバランサを管理。ELBがリ クエストを 複数のtaskに振り分ける
デプロイ
- ECSにはblue-greenデプロイを実現する機能は存在するが、それ以外はない - デプロイ用ライブラリも「これだ!」というものがない - カナリアデプロイがしたい - そのため、1からデプロイを実装した デプロイ
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins カナリアデプロイ
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins カナリアデプロイ images 1. push
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins カナリアデプロイ images 1. push task definition 2. create
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins カナリアデプロイ images 1. push task definition 2. create 3. run task DSP
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins カナリアデプロイ images 1. push task definition 2. create task DSP 3. run 4. connect
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins 全デプロイ images task definition task DSP
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins 全デプロイ images task definition task DSP 1. update
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins 全デプロイ images task definition 1. update 2. remove
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins ロールバック images task definition
デプロイ ECR cluster: service Fargate task task DSP task definition
ELB SSP DSP Jenkins ロールバック images task definition 1. update
苦労話
苦労話 Fargateに関する周辺ツールのバグが多い 「datadogにDSPのメトリクスが送れない」という問題があった。Fargateを使うとホストに紐づくタグがメトリクスに 引き継がれないという バグが原因。
苦労話 ライブラリ・ツールがFargateに追いついていない 2つくらいしかデプロイ用のライブラリが見つからない上に、それがまだ Fargateに対応できていない 状況。issue もできたばっかり。結局デプロイ用のスクリプトは1から構築した。
苦労話 Fargateで動くコンテナにdocker execできない 「コンテナに入ってみてデバックする」というのが当たり前すぎて、それができず辛かった。
最後に
最後に 現在DSPはECS上で 正常に動いています。 苦労して作り上げてよかったです。