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.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
EKSにRailsをのせた
#otemachirb
hatappi
January 16, 2019
More Decks by hatappi
See All by hatappi
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
68
AlloyDB 奮闘記
hatappi
0
460
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience
hatappi
1
880
RubyではじめるGraphQL
hatappi
0
960
RubyでChainerつくってます!!
hatappi
2
1.5k
TDDな個人開発
hatappi
0
380
できるだけ楽して楽しくRails開発しよう
hatappi
2
370
RubyとApache Arrow
hatappi
0
2.7k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2.5k
Other Decks in Technology
See All in Technology
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
160
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
140
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
1.5k
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
1.2k
Pavlokで始める電撃駆動開発
sgrsn
0
140
信頼できるテスティングAIをどう育てるか?
odan611
0
180
20260801_スクフェス大阪
kgnkhkr
0
360
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
180
QAタスクをスキル化したいときに考えること
aomoriringo
0
140
数値で見る Microsoft MVP 〜Spec Kit と GitHub Copilot Agent で作るデータ可視化ダッシュボード〜
yutakaosada
0
180
ガバメントクラウドでのランサムウェア対策
techniczna
1
520
書籍セキュアAPIについて
riiimparm
0
400
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Abbi's Birthday
coloredviolet
3
8.9k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
Speed Design
sergeychernyshev
33
2k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
WENDY [Excerpt]
tessaabrams
11
39k
How GitHub (no longer) Works
holman
316
150k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Tell your own story through comics
letsgokoyo
1
1k
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/