EKSにRailsをのせた
by
hatappi
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
EKSʹRailsをのせた Otemachi.rb #13
Slide 2
Slide 2 text
⾃⼰紹介 • Yusaku Hatanaka (@hatappi) • Mercari, Inc • ϓϥΠϕʔτͰͷRubyΛͬͨ׆ಈ • roppongi.rbͷΦʔΨφΠβʔ • Red Data ToolsͰRed Chainerͭͬͯ͘·͢ • RailsΛͬͨαʔϏεͷ։ൃ <= ࠓ͜ͷ • 煎り⼤⾖が好き
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
Anketとは? • Slack上でアンケートをとるためのサービス • アンケートの作成や投票はSlack上から⾏う • 集計結果はSlack上やWEB上から確認する • 今後は回答結果を取得するようなAPIを追加予定 https://slack.com/apps/ADJRPSY1Y-anket-
Slide 5
Slide 5 text
なぜ作ったのか? • Slack Appを作ってみたかった • 会社でSlackは使っているけど、もっと使い倒したい • 技術を試せる場所がほしかった • 僕はドキュメントや記事を読んでわかった気になって しまうので実際にそれを試すような場がほしかった • サービス作るのおもしろい
Slide 6
Slide 6 text
構成
Slide 7
Slide 7 text
Rails • Ruby 2.5.3 (2.6.1が出たら2.6にしたいなぁ) • Rails 5.2.2 • JSはTypeScriptで書いていて⼀部でReactを使⽤
Slide 8
Slide 8 text
Kubernetsとは? • コンテナ化されたアプリのデプロイなどを⾃動化してくれ るコンテナオーケストレーションエンジン • k8sと略して使う • kubernetes => k8s
Slide 9
Slide 9 text
EKSとは? • AWSの提供するマネージドなKubernetsのサービス • AWSならではの特徴 • VPC サポート • IAM 認証 • EKS APIのAPIコールはCloudTailで記録 • etc
Slide 10
Slide 10 text
例えばRailsに機能追加 をしてデプロイする
Slide 11
Slide 11 text
サービスを ⽌めたくない!
Slide 12
Slide 12 text
RollingUpdate old new old new old new old new old new • maxUnavailableでRolling Update時 に使えなくなるpod数を指定 • maxSurgeで超過を許可するpod数を 指定します。
Slide 13
Slide 13 text
_⼈⼈⼈⼈⼈⼈_ > 当然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄
Slide 14
Slide 14 text
しょ障害が
Slide 15
Slide 15 text
セルフヒーリング _⼈⼈⼈⼈⼈⼈_ > 当然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄ 起動数を設定することでk8sがその数を維持するようにしてくれる
Slide 16
Slide 16 text
他にも • 複数のNodeの管理 • オートスケーリング • サービスディスカバリ • ロードバランシング • etc
Slide 17
Slide 17 text
悩んだところ
Slide 18
Slide 18 text
秘匿値はどうわたす? • Databaseへの接続情報やSECRET_KEY_BASEとか • Docker Image をbuildする時にわたす? => • セキュリティ的にもだし秘匿値の変更があるたびにビ ルドするの? • k8sのSecret リソースを使⽤する => • マニフェストファイルはどう管理するのか?
Slide 19
Slide 19 text
秘匿値はどうわたす? CBTFͰFODPEF͞Ε͍ͯΔ͚ͩͳͷͰ (JUͰཧ͢Δͷɾɾɾ "84,.4Λͬͯ4FDSFUͷEBUBͷ͚ͩΛ҉߸Խʂ (JUͰཧͰ͖Δ͠LFZ͕ΔͷͰϨϏϡʔͰ͖Δ TIZJLPLVCFTFD
Slide 20
Slide 20 text
まとめ • RailsをEKSにのせました • Railsのコンテナ化よりもEKSにのせることよりもk8sと 仲良くなるのが1番時間かかった • Anketをぜひ使っていただいてフィードバックください!!
Slide 21
Slide 21 text
余談
Slide 22
Slide 22 text
プライベートで継続して開発する • ⼟⽇にまとめて書こうだと出来ない時に萎えてしまう • ⼟⽇はなんだかんだでイベントが⼊る • 毎⽇ちょっとずつ開発する • 30分とか1commitとか • いつか完成する • https://johnresig.com/blog/write-code-every-day/