Slide 1

Slide 1 text

2023.10.7
 JAWS Festa in Kyushu
 スタートアップにおけるクラ ウド上でのシステム設計の 進化とその実践


Slide 2

Slide 2 text

自己紹介 ● 樋口 浩平(ひぐち こうへい) ● 2013年、ヤマップに2番目にジョイン ● YAMAPローンチ前から開発に関わり、システム開 発責任者として従事した後、CTOとしてエンジニア 組織のパフォーマンス最大化に努める ● 好きな山は宝満山 ● アビスパ福岡サポーター

Slide 3

Slide 3 text

YAMAPについて 電波が届かない山の中でも、GPSで現在地と登山ルートがわ かる、登山を楽しく安全にするアプリ 日本最大の登山・アウトドアプラットフォーム

Slide 4

Slide 4 text

YAMAPについて 400万ダウンロードを超え、国内トップシェアとなっている 毎週10万件の登山記録と250万枚の写真が投稿され、 毎月10億件のAPIリクエストを受け付ける

Slide 5

Slide 5 text

● クラウド上のシステム設計の変遷 ● システム設計をリニューアルしたときの話 ● リニューアルの社内合意形成の進め方 今日話すこと

Slide 6

Slide 6 text

システム構成変遷の年表 シード アーリー ミドル レイター 2013年 2016年 2018年 2020年 ローンチ 資金調達 資金調達 資金調達 リニューアル リニューアル 日々ブラッシュアップ

Slide 7

Slide 7 text

立ち上げ期の小咄 メールアドレスとパスワードが入れ替わる事件 メールアドレス「もしかして...」 パスワード「私たち...」 _人人人人人人人人人人人人人_ >  入れ替わってるーー!? <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

Slide 8

Slide 8 text

2013年のインフラ構成 ● EC2インスタンスが1台とS3があるのみ ● Webサーバ、DB、開発環境、管理画面すべてEC2の中にAll in One

Slide 9

Slide 9 text

あんなトラブル、こんな障害 ● アクセスが増えると、すぐにCPU使用率が100%になる ● ボトルネックが多すぎて原因が分からない ● スケールアップするために全部を再起動しないといけない ● 開発環境で障害が起きて Production環境もろとも落ちる

Slide 10

Slide 10 text

リニューアル計画 ● Web サーバと DB の分離 ● Web サーバのインスタンスを分けて配置する ● ALB で負荷分散 ● Web の Auto Scalling ● 他多数

Slide 11

Slide 11 text

2016年のインフラ構成

Slide 12

Slide 12 text

2019年にフルリニューアル ● バックエンドの API を Rails で作り直す ● ECS で Docker コンテナ化 ● Terraform での管理に着手 ● フロントエンドを分離して Vue.js で実装 ● Web サイトのデザインをリニューアル ● ドメイン変更 yamap.co.jp -> yamap.com

Slide 13

Slide 13 text

社内合意形成 ● アプリケーションまでリニューアルするので、新機能開発は1年以上停滞 することになる ● 重要な経営の意思決定になる ● エンジニアではない方には建築に例えて説明してみる ● ローンチ時はプレハブ。増改築を繰り返して今の状態。 このままではビルは建てられない。基礎から建て替える必要がある

Slide 14

Slide 14 text

2019年のインフラ構成

Slide 15

Slide 15 text

2023年のインフラ構成 ● 運用の自動化、省力化 ● IaC が進み、いい感じになっている ● ほぼ全て Terraform で管理されている ● ほぼ全て Auto Scaling されている ● ECS と Lambda を適切に使い分けている ● Aurora の Graviton2 インスタンスを早期導入した

Slide 16

Slide 16 text

2023年のインフラ構成

Slide 17

Slide 17 text

2023年のインフラチーム体制 ● インフラは 2022 年 4 月まで 1 人で運用していた ● 1 人でも運用できていたのは AWS のマネージドサービスのおかげ

Slide 18

Slide 18 text

カンブリア砲にも耐えるインフラ ● 6/29のカンブリア宮殿でYAMAPの特集回が放送された ● アクセスがスパイクするもサービスへの影響は無し

Slide 19

Slide 19 text

まとめ ● スタートアップの初期フェーズでは、とりあえずアプリケーションが動けば良 いというケースがある ● その後、改善を重ねていくことが大事 ● 大きなロードマップを描いて ● 小さなことからコツコツと ● 社内説明は相手にとって分かりやすい説明を