EKSにRailsをのせた

C582b722e015633f7900083f8ea75732?s=47 hatappi
January 16, 2019

 EKSにRailsをのせた

#otemachirb

C582b722e015633f7900083f8ea75732?s=128

hatappi

January 16, 2019
Tweet

Transcript

  1. EKSʹRailsをのせた Otemachi.rb #13

  2. ⾃⼰紹介 • Yusaku Hatanaka (@hatappi) • Mercari, Inc • ϓϥΠϕʔτͰͷRubyΛ࢖ͬͨ׆ಈ

    • roppongi.rbͷΦʔΨφΠβʔ • Red Data ToolsͰRed Chainerͭͬͯ͘·͢ • RailsΛ࢖ͬͨαʔϏεͷ։ൃ <= ࠓ೔͸͜ͷ࿩ • 煎り⼤⾖が好き
  3. None
  4. Anketとは? • Slack上でアンケートをとるためのサービス • アンケートの作成や投票はSlack上から⾏う • 集計結果はSlack上やWEB上から確認する • 今後は回答結果を取得するようなAPIを追加予定 https://slack.com/apps/ADJRPSY1Y-anket-

  5. なぜ作ったのか? • Slack Appを作ってみたかった • 会社でSlackは使っているけど、もっと使い倒したい • 技術を試せる場所がほしかった • 僕はドキュメントや記事を読んでわかった気になって

    しまうので実際にそれを試すような場がほしかった • サービス作るのおもしろい
  6. 構成

  7. Rails • Ruby 2.5.3 (2.6.1が出たら2.6にしたいなぁ) • Rails 5.2.2 • JSはTypeScriptで書いていて⼀部でReactを使⽤

  8. Kubernetsとは? • コンテナ化されたアプリのデプロイなどを⾃動化してくれ るコンテナオーケストレーションエンジン • k8sと略して使う • kubernetes => k8s

  9. EKSとは? • AWSの提供するマネージドなKubernetsのサービス • AWSならではの特徴 • VPC サポート • IAM

    認証 • EKS APIのAPIコールはCloudTailで記録 • etc
  10. 例えばRailsに機能追加 をしてデプロイする

  11. サービスを ⽌めたくない!

  12. RollingUpdate old new old new old new old new old

    new • maxUnavailableでRolling Update時 に使えなくなるpod数を指定 • maxSurgeで超過を許可するpod数を 指定します。
  13. _⼈⼈⼈⼈⼈⼈_ > 当然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄

  14. しょ障害が

  15. セルフヒーリング _⼈⼈⼈⼈⼈⼈_ > 当然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄ 起動数を設定することでk8sがその数を維持するようにしてくれる

  16. 他にも • 複数のNodeの管理 • オートスケーリング • サービスディスカバリ • ロードバランシング •

    etc
  17. 悩んだところ

  18. 秘匿値はどうわたす? • Databaseへの接続情報やSECRET_KEY_BASEとか • Docker Image をbuildする時にわたす? => • セキュリティ的にもだし秘匿値の変更があるたびにビ

    ルドするの? • k8sのSecret リソースを使⽤する => • マニフェストファイルはどう管理するのか?
  19. 秘匿値はどうわたす? CBTFͰFODPEF͞Ε͍ͯΔ͚ͩͳͷͰ (JUͰ؅ཧ͢Δͷ͸ɾɾɾ "84,.4Λ࢖ͬͯ4FDSFUͷEBUBͷ஋͚ͩΛ҉߸Խʂ (JUͰ΋؅ཧͰ͖Δ͠LFZ͕࢒ΔͷͰϨϏϡʔ΋Ͱ͖Δ TIZJLPLVCFTFD

  20. まとめ • RailsをEKSにのせました • Railsのコンテナ化よりもEKSにのせることよりもk8sと 仲良くなるのが1番時間かかった • Anketをぜひ使っていただいてフィードバックください!!

  21. 余談

  22. プライベートで継続して開発する • ⼟⽇にまとめて書こうだと出来ない時に萎えてしまう • ⼟⽇はなんだかんだでイベントが⼊る • 毎⽇ちょっとずつ開発する • 30分とか1commitとか •

    いつか完成する • https://johnresig.com/blog/write-code-every-day/