EKSにRailsをのせた
by
hatappi
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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/