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
EKSにRailsをのせた
Search
hatappi
January 16, 2019
Technology
1
970
EKSにRailsをのせた
#otemachirb
hatappi
January 16, 2019
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
RubyとApache Arrow
hatappi
0
1.9k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2k
Fargateで夢は見られるのか
hatappi
1
1.9k
個人サービスをFargateに移行したよ
hatappi
1
560
Rails + TypeScript + React + Hypernovaで始めるSSRライフ
hatappi
1
1.8k
Other Decks in Technology
See All in Technology
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
350
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
4
440
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
370
私が trocco を推す理由
__allllllllez__
1
260
Cypress or Playwright?
rainerhahnekamp
0
120
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
160
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
310
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
260
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
250
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
MapLibreとAmazon Location Service
dayjournal
1
160
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
3
910
Featured
See All Featured
Happy Clients
brianwarren
92
6.4k
Building an army of robots
kneath
300
41k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
How to name files
jennybc
65
93k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Building Adaptive Systems
keathley
31
1.9k
Six Lessons from altMBA
skipperchong
21
3k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
How STYLIGHT went responsive
nonsquared
92
4.8k
Agile that works and the tools we love
rasmusluckow
325
20k
Designing with Data
zakiwarfel
96
4.8k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Transcript
EKSʹRailsをのせた Otemachi.rb #13
⾃⼰紹介 • Yusaku Hatanaka (@hatappi) • Mercari, Inc • ϓϥΠϕʔτͰͷRubyΛͬͨ׆ಈ
• roppongi.rbͷΦʔΨφΠβʔ • Red Data ToolsͰRed Chainerͭͬͯ͘·͢ • RailsΛͬͨαʔϏεͷ։ൃ <= ࠓ͜ͷ • 煎り⼤⾖が好き
None
Anketとは? • Slack上でアンケートをとるためのサービス • アンケートの作成や投票はSlack上から⾏う • 集計結果はSlack上やWEB上から確認する • 今後は回答結果を取得するようなAPIを追加予定 https://slack.com/apps/ADJRPSY1Y-anket-
なぜ作ったのか? • Slack Appを作ってみたかった • 会社でSlackは使っているけど、もっと使い倒したい • 技術を試せる場所がほしかった • 僕はドキュメントや記事を読んでわかった気になって
しまうので実際にそれを試すような場がほしかった • サービス作るのおもしろい
構成
Rails • Ruby 2.5.3 (2.6.1が出たら2.6にしたいなぁ) • Rails 5.2.2 • JSはTypeScriptで書いていて⼀部でReactを使⽤
Kubernetsとは? • コンテナ化されたアプリのデプロイなどを⾃動化してくれ るコンテナオーケストレーションエンジン • k8sと略して使う • kubernetes => k8s
EKSとは? • AWSの提供するマネージドなKubernetsのサービス • AWSならではの特徴 • VPC サポート • IAM
認証 • EKS APIのAPIコールはCloudTailで記録 • etc
例えばRailsに機能追加 をしてデプロイする
サービスを ⽌めたくない!
RollingUpdate old new old new old new old new old
new • maxUnavailableでRolling Update時 に使えなくなるpod数を指定 • maxSurgeで超過を許可するpod数を 指定します。
_⼈⼈⼈⼈⼈⼈_ > 当然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄
しょ障害が
セルフヒーリング _⼈⼈⼈⼈⼈⼈_ > 当然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄ 起動数を設定することでk8sがその数を維持するようにしてくれる
他にも • 複数のNodeの管理 • オートスケーリング • サービスディスカバリ • ロードバランシング •
etc
悩んだところ
秘匿値はどうわたす? • Databaseへの接続情報やSECRET_KEY_BASEとか • Docker Image をbuildする時にわたす? => • セキュリティ的にもだし秘匿値の変更があるたびにビ
ルドするの? • k8sのSecret リソースを使⽤する => • マニフェストファイルはどう管理するのか?
秘匿値はどうわたす? CBTFͰFODPEF͞Ε͍ͯΔ͚ͩͳͷͰ (JUͰཧ͢Δͷɾɾɾ "84,.4Λͬͯ4FDSFUͷEBUBͷ͚ͩΛ҉߸Խʂ (JUͰཧͰ͖Δ͠LFZ͕ΔͷͰϨϏϡʔͰ͖Δ TIZJLPLVCFTFD
まとめ • RailsをEKSにのせました • Railsのコンテナ化よりもEKSにのせることよりもk8sと 仲良くなるのが1番時間かかった • Anketをぜひ使っていただいてフィードバックください!!
余談
プライベートで継続して開発する • ⼟⽇にまとめて書こうだと出来ない時に萎えてしまう • ⼟⽇はなんだかんだでイベントが⼊る • 毎⽇ちょっとずつ開発する • 30分とか1commitとか •
いつか完成する • https://johnresig.com/blog/write-code-every-day/