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
560
個人サービスをFargateに移行したよ
Repro Tech Meetup #1 Docker
#reprotech
hatappi
July 27, 2018
Tweet
Share
More Decks by hatappi
See All by hatappi
RubyではじめるGraphQL
hatappi
0
690
RubyでChainerつくってます!!
hatappi
2
1.3k
TDDな個人開発
hatappi
0
220
できるだけ楽して楽しくRails開発しよう
hatappi
2
280
EKSにRailsをのせた
hatappi
1
970
RubyとApache Arrow
hatappi
0
1.9k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2k
Fargateで夢は見られるのか
hatappi
1
1.9k
Rails + TypeScript + React + Hypernovaで始めるSSRライフ
hatappi
1
1.8k
Other Decks in Programming
See All in Programming
Let's learn code review
riofujimon
2
440
Git Lint
bkuhlmann
4
750
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
540
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.5k
Goのエラースタックトレースの歴史と今後
sonatard
9
1.6k
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
380
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
360
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
260
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
680
Code Reviews
bkuhlmann
4
890
Featured
See All Featured
Optimizing for Happiness
mojombo
370
69k
Building an army of robots
kneath
300
41k
Web development in the modern age
philhawksworth
202
10k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
Design by the Numbers
sachag
274
18k
Clear Off the Table
cherdarchuk
84
310k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Designing for Performance
lara
601
67k
Automating Front-end Workflow
addyosmani
1356
200k
Web Components: a chance to create the future
zenorocha
305
41k
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でリダイレクトが出来るようになった