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
個人サービスをFargateに移行したよ
Search
hatappi
July 27, 2018
Programming
1
690
個人サービスをFargateに移行したよ
Repro Tech Meetup #1 Docker
#reprotech
hatappi
July 27, 2018
Tweet
Share
More Decks by hatappi
See All by hatappi
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience
hatappi
1
690
RubyではじめるGraphQL
hatappi
0
880
RubyでChainerつくってます!!
hatappi
2
1.4k
TDDな個人開発
hatappi
0
330
できるだけ楽して楽しくRails開発しよう
hatappi
2
340
EKSにRailsをのせた
hatappi
1
1.2k
RubyとApache Arrow
hatappi
0
2.5k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2.4k
Fargateで夢は見られるのか
hatappi
1
2.2k
Other Decks in Programming
See All in Programming
JJUG CCC 2025 Fall: Virtual Thread Deep Dive
ternbusty
3
140
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
9
3.7k
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
1
410
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
2
170
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
380
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
4
630
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
540
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する #phpconfuk
o0h
PRO
10
4k
競馬で学ぶ機械学習の基本と実践 / Machine Learning with Horse Racing
shoheimitani
6
5.4k
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
140
What's New in Web AI?
christianliebel
PRO
0
120
問題の見方を変える「システム思考」超入門
panda_program
0
190
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.5k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Rails Girls Zürich Keynote
gr2m
95
14k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
A designer walks into a library…
pauljervisheath
210
24k
Thoughts on Productivity
jonyablonski
73
4.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
GraphQLとの向き合い方2022年版
quramy
49
14k
Making Projects Easy
brettharned
120
6.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Transcript
個⼈サービスをFargateに移⾏したよ Repro Tech Meetup #1 Docker 畑中 悠作
About me • Yusaku Hatanaka (@hatappi) • Speee, Inc •
Ruby, Go, TypeScript, etc. • Roppongi.rb organizer • Vimmer (vimと同じ年) • 煎り⼤⾖が好き
IUUQTTQFBLFSEFDLDPNIBUBQQJSBJMTQMVTUZQFTDSJQUQMVTSFBDUQMVTIZQFSOPWBEFTIJNFSVTTSSBJIV Rails Developers Meetup 2018 Day 3 Extreme
時間は有限!!
出来るだけメンテするも のは減らしていきたい
None
Fargateとは? • ECSにて下回りのインスタンス群の管理を⾃分で管 理しなくても良くなる • 新しいサービスというよりはECSのEC2と並ぶ新し い起動タイプという捉え⽅がよいかも
下回りのインスタンス群の管理を ⾃分で管理しなくても良くなる
EC2 => Fargate IUUQTBXTBNB[PODPNKQCMPHTOFXTBXTGBSHBUFBQSPEVDUPWFSWJFX
今までのECS • Amazon ECSに対応したAMIでインスタン スをAuto Scaling グループなどで⽴てる必 要があった • AMIも⾃前で⽤意する場合はECS
Agentや docker daemonなどを⽤意する必要があ る • AMIを固定で使⽤している場合はECS AgentのUpdateなどを⼀定のメンテコス トがかかる • その上でECSのクラスターやタスクを管理 していく IUUQTBXTBNB[PODPNKQCMPHTOFXTBXTGBSHBUFBQSPEVDUPWFSWJFX
Fargate IUUQTBXTBNB[PODPNKQCMPHTOFXTBXTGBSHBUFBQSPEVDUPWFSWJFX • ユーザーが意識して管理するのはタスクの 管理 • クラスター管理や使⽤時の最適化も必要な い • ⾃分の使いたいメモリ、vCPUの組み合わ
せを指定するだけ後はタスク管理に注⼒で きる • Fargate⾃体はECSに組み込まれているの で新しくAPIを覚えていくみたいな必要は ない
⽇本にもきた!!!!
移⾏⼿順 • ローカルで動くようにDocker化していく • 今回はNginx, Rails, Hypernovaの3つ • docker-composeで⼀発で⽴ち上がるようにする •
ECSでクラスターを作成して新規作成したALBに紐 付ける形で動作検証を⾏う • Routes53で既存のALBとリプレイスを⾏う
Docker化 • Packer (https://www.packer.io/) • AMIやDocker Imageなどのマシンイメージを⽣ 成・管理するCLI • EC2で運⽤していた際にAnsibleで実現された資産
があったのでそれを使⽤ • 作成したイメージはECRへPUSH
デプロイは何で⾏ったか? • eagletmt/hako • Dockerコンテナをデプロイする ためのツール • YAML, Jsonnetで記載 •
以前ソースを全部読んだことがあり 使い勝⼿が分かっていたので採⽤
移⾏出来た
移⾏してどうだったか • ホストの管理をしなくても良くなったのでアプリ ケーションに集中できる • DockerImage化することでローカルなどでも同じ環 境で作業が出来るようになった • 何回もデプロイする時にDockerのImageサイズが⼤ きいとpullが毎回遅い
• EC2の時はホスト側でキャッシュされていた
監視周り • サービス単位ではCPU, メモリ使⽤率などが CloudWatchで取得が出来る • 実⾏しているコンテナ(Rails, Nginx, Hypernova)単 位でメトリクスを取りたい
監視周り • Datadog (https://www.datadoghq.com/) • IntegrationによってCloudWatchで取得できるメトリク スを収集できる • コンテナ単位はタスクメタデータを介して取得すること が出来る
• お⾦はかかる IUUQTBXTBNB[PODPNKQBCPVUBXTXIBUTOFXBXTGBSHBUFQMBUGPSNWFSTJPO
まとめ • Docker化してFargateにのせることでインスタンス の⾯倒を⾒なくても済みアプリケーションの開発に 集中できるようになった • Nginxはリダイレクト⽤途がメインだったので必要 ないかも • ALBでリダイレクトが出来るようになった