$30 off During Our Annual Pro Sale. View Details »

Amazon EKSで構築する社内PaaS - AWS Summit Startup Central / create-paas-eks

VTRyo
June 12, 2019

Amazon EKSで構築する社内PaaS - AWS Summit Startup Central / create-paas-eks

AWS Summit Tokyo 2019 Startup Central 2019/6/12

VTRyo

June 12, 2019
Tweet

More Decks by VTRyo

Other Decks in Technology

Transcript

  1.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Amazon EKSで構築する社内PaaS
    ج൫νʔϜ Ryo
    AWS Summit Tokyo 2019
    ɹɹ Startup Central BtoB SaaS Day 2019/6/12

    View Slide

  2.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    #AWSJP_Startup
    イベントハッシュタグ

    View Slide

  3.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Ryo / @3s_hv
    ➤ 株式会社マツリカ 

     基盤チーム / Engineer PR
    ➤ 最近の流⾏ → キャッシュレス
    ➤ 技術書典 → 累計1千部

     “物語でわかる○○”
    ➤ 転職系勉強会の主催etc
    https://blog.vtryo.me
    illustration by 湊川あい

    View Slide

  4.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    スライドは後で公開します
    @3s_hv Twitterにて

    View Slide

  5.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    株式会社マツリカ

    View Slide

  6.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    世界を祭り化する
    私達が⽬指す"祭り化"とは
    「⼈々が夢中になり、充実感や達成感に満ち満ちた」状態だ。

    View Slide

  7.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    営業をもっと⾃由に、もっと創造的に。

    View Slide

  8.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    営業をもっと⾃由に、もっと創造的に。

    View Slide

  9.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    営業をもっと⾃由に、もっと創造的に。

    View Slide

  10.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    営業をもっと⾃由に、もっと創造的に。

    View Slide

  11.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    営業をもっと⾃由に、もっと創造的に。

    View Slide

  12.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Agenda
    ➤ Sensesを⽀える技術
    ➤ わたしたち基盤チームが実現したい世界観
    ➤ なぜAmazon EKSを採⽤したのか
    ➤ 社内PaaSの構成
    ➤ Tips
    ➤ 今後の展望

    View Slide

  13.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Sensesを⽀える技術

    View Slide

  14.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Sensesを⽀える技術

    View Slide

  15.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Sensesを⽀える技術

    View Slide

  16.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    わたしたち基盤チームには
    実現したい世界観がある

    View Slide

  17.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ビジネスの意思決定者が

    Sensesの機能リリースを実施する

    View Slide

  18.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤営業⽀援ツールのため、⾃社メンバーが実際に営業
    活動をしながらドッグフーディングしている
    ➤顧客へ届けるレベル感かどうかは、彼らが⼀番知っ
    ている
    ビジネスの意思決定者が

     Sensesの機能リリースを実施してもらいたい理由

    View Slide

  19.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ビジネスの意思決定者が

    Sensesの機能リリースを実施する

    View Slide

  20.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    どうやって実現するのか

    View Slide

  21.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤低リスクでリリースできる環境
    ➤開発成果物を継続的にデリバリする環境
    ➤開発者がより⾼速に開発できる環境
    ビジネスの意思決定者が
     Sensesの機能リリース可能になるための最初の⼀歩

    View Slide

  22.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤低リスクでリリースできる環境
    ➤開発成果物を継続的にデリバリする環境
    ➤開発者がより⾼速に開発できる環境
    改善の余地あり
    ビジネスの意思決定者が
     Sensesの機能リリース可能になるための最初の⼀歩

    View Slide

  23.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    MutableからImutableへ

    View Slide

  24.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ “AWS Opsworks スタック” に依存している
    ➤ Mutable Infrastructure
    ➤ 事業拡⼤→⼈材増加→開発環境の不⾜(使⽤者希望が競合する)
    ➤ (それでも⾜りないエンジニア)
    ボトルネック

    View Slide

  25.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    簡易構成図
    ➤ Opsworksによる構築、Deploy
    ➤ そもそも5年前の創業期から

    変更されていない
    ➤ Stackによって失敗したりする
    ➤ 詳細なログを出してくれない…
    ➤ 構成変更に時間がかかる(停⽌も⻑い)
    ➤ Chef
    ➤ 毎回Setupコマンド待ち
    ➤ ローカル開発環境はDockerなんだけど…


    View Slide

  26.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    簡易構成図
    ➤ Opsworksによる構築、Deploy
    ➤ そもそも5年前の創業期から

    変更されていない
    ➤ Stackによって失敗したりする
    ➤ 詳細なログを出してくれない…
    ➤ 構成変更に時間がかかる(停⽌も⻑い)
    ➤ Chef
    ➤ 毎回Setupコマンド待ち
    ➤ ローカル開発環境はDockerなんだけど…

    つらい
    AWSさんごめんなさい

    View Slide

  27.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    簡易構成図
    ➤ Opsworksによる構築、Deploy
    ➤ そもそも5年前の創業期から

    変更されていない
    ➤ Stackによって失敗したりする
    ➤ 詳細なログを出してくれない…
    ➤ 構成変更に時間がかかる(停⽌も⻑い)
    ➤ Chef
    ➤ 毎回Setupコマンド待ち
    ➤ ローカル開発環境はDockerなんだけど…

    どんなシステムも
    アップデートしなければ古くなるもの

    View Slide

  28.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    簡易構成図
    ➤ Opsworksによる構築、Deploy
    ➤ そもそも5年前の創業期から

    変更されていない
    ➤ Stackによって失敗したりする
    ➤ 詳細なログを出してくれない…
    ➤ 構成変更に時間がかかる(停⽌も⻑い)
    ➤ Chef
    ➤ 毎回Setupコマンド待ち
    ➤ ローカル開発環境はDockerなんだけど…

    今がそのとき

    View Slide

  29.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Imutableへ

    View Slide

  30.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    わたしたちはAmazon EKSを採⽤した

    View Slide

  31.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Amazon EKSは理想実現への1st Step

    View Slide

  32.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Amazon EKSは現在のボトルネックを解消できる

    View Slide

  33.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Opsworksから脱却し
    開発環境を増強する

    View Slide

  34.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 開発環境を かんたんに・すぐに・⾃分で 構築できる
    ➤ エンジニアだけでなく、Notエンジニアメンバー(QAチーム)も
    ➤ よりカジュアルに・柔軟に 開発環境を増やせる
    Amazon EKSで創るこれからのSenses基盤

    View Slide

  35.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 開発環境を かんたんに・すぐに・⾃分で 構築できる
    ➤ エンジニアだけでなく、Notエンジニアメンバー(QAチーム)も
    ➤ よりカジュアルに・柔軟に 開発環境を増やせる
    Amazon EKSで創るこれからのSenses基盤
    継続的リリース
    継続的デリバリ
    ⾼速開発
    柔軟な開発環境

    View Slide

  36.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    開発環境は社内PaaSで提供する

    View Slide

  37.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 開発環境の使⽤者がやること
    ➤ Githubにブランチを作成してPushする
    ➤ CircleCIで起動したい環境番号を選択する
    開発環境は社内PaaSで提供する

    View Slide

  38.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 開発環境の使⽤者がやること
    ➤Githubにブランチを作成してPushする
    ➤CircleCIで起動したい環境番号を選択する
    開発環境は社内PaaSで提供する

    View Slide

  39.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 開発環境の使⽤者がやること
    ➤ Githubにブランチを作成してPushする
    ➤ CircleCIで起動したい環境を選択する
    開発環境は社内PaaSで提供する
    以上

    View Slide

  40.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 開発環境の使⽤者がやること
    ➤ Githubにブランチを作成してPushする
    ➤ CircleCIで起動したい環境を選択する
    開発環境は社内PaaSで提供する
    ソースコードをPushするだけで
    検証⽤の開発環境が起動する

    View Slide

  41.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    開発環境は社内PaaSで提供する

    View Slide

  42.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    何が起こっているのか?

    View Slide

  43.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Amazon EKSの構成図

    View Slide

  44.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    簡易構成図

    View Slide

  45.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ AWS上には構成図通りのリソースが構築されている
    ➤ 開発者がソースコードをPushすると…
    ➤ CircleCIがDocker Buildを開始
    ➤ ECRにPush
    ➤ 定義されたkubernetesテンプレートが

    環境を構築する
    何が起こっているのか?

    View Slide

  46.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ AWS上には構成図通りのリソースが構築されている
    ➤ 開発者がソースコードをPushすると…
    ➤ CircleCIがDocker Buildを開始
    ➤ ECRにPush
    ➤ 定義されたkubernetesテンプレートが

    環境を構築する
    何が起こっているのか?
    想像よりも簡単ではないですか?

    View Slide

  47.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ⼀⽅でつらいこともやはりある

    View Slide

  48.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ ローカルで使⽤していたDockerfileはそのまま使えなかった
    ➤ FQDNʹґଘͨ͠ϦιʔεʢreCAPTCHAͳͲʣ͸ϋʔυίʔτ͞Ε͍ͯΔ
    ➤ DBͰRDSΛ࢖༻͍ͯ͠ΔͨΊɺ·ͩ͜͜͸Mutableͷ··
    ➤ CircleCIでECRやEKSを扱うためのJob設定
    ➤ 作成したブランチでDocker Tagを付与し、そのタグ名でPullするひと⼿間
    社内PaaS構築までのつらみ

    View Slide

  49.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    しかし、もたらすものは⼤きい

    View Slide

  50.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤ 迅速に開発環境を提供できる
    ➤ コスト最適化
    ➤ 開発環境は増えたが、

    ⺟体となるEC2インスタンスの数は既存よりも減った
    ➤ 開発環境の操作をCircleCIによる制御に限定することで開発に集中できる
    社内PaaSがもたらすもの

    View Slide

  51.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤Amazon EKSの本番環境適⽤
    ➤開発者の増員
    今後の展開

    View Slide

  52.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    ➤Amazon EKSの本番環境適⽤
    ➤開発者の増員
    今後の展開

    View Slide

  53.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    We are hiring!!
    ➤ 株式会社マツリカはあなたが最も⽣産性
    を発揮できる場所・時間を尊重します
    ➤ フルリモートワーカー在籍

    (北海道、栃⽊、岐⾩、⼤阪、兵庫、
    ⾹川、沖縄、ベトナム)
    ➤ フレックスコアタイムなし

    View Slide

  54.  © 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved.
    Amazon EKSで構築する社内PaaS
    ج൫νʔϜ Ryo
    AWS Summit Tokyo 2019
    ɹɹ Startup Central BtoB SaaS Day 2019/6/12
    ׬

    View Slide