初めに
日々成長していくビジネスと共にシステムも成長していかなければなりません
本セッションでは成長に対処していくための方法を、User数に応じて学ぶセッションとなります
全60枚以上のスライドでボリュームがあるため、一部を抜粋して記載させていただきますのでご了承ください。
アプリケーションの定義
このセッションで説明されるアプリについて定義されました
以下をアプリとして定義していきます
- ユーザーインターフェース層
- ビジネスロジック層
- データストレージ
Day1
ユーザーが1人以上
ユーザーが少ない立ち上げ初期のケースです
従来のシステム
JavaScriptを使用したシンプルなスタック
- ウェブサーバーアプリのホスティング層(例:nginx、Apacheなど)
- オプションの共有ストレージ層
- ロードバランサー
- CDN(コンテンツ配信ネットワーク)
新入社員トレーニングで作ってみようの教材になりそうです。
モダンなシステム
構成図を見ての通りスッキリしました
開発者はデプロイに集中できて、運用者が保守する必要も最小限です
- 運用の負担を大幅に削減
- スケールやパフォーマンスが組み込み
- モダンなフロントエンドフレームワークとの統合
- 開発者体験(DX)に適合した機能
重要なのはモダンな構成はフロント、バックエンドが別のコンポーネントになっていること
Amplify Hostingにより継続的なデプロイとアプリを簡単にデプロイ・管理・スケールできます
Amplify Hosting の未来
何枚もスライドで説明されていたのでAmplify Hosting を推していることが伝わってきます笑
モダンフレームワークのサポート
静的サイトジェネレーター(SSG)
サーバーサイドレンダリング(SSR)
クライアントサイドレンダリング(CSR:シングルページアプリケーション)
上記3つがあります
特にSSRはページロードの短縮によるSEOの改善につながるかと思います
知名度の少ない立ち上げ初期のシステムでは重要なことですね。
バックエンド
フロントエンドの次はバックエンドです
ここは悩ましいところですね、、
EC2をバックエンドにする場合
この環境はまず本番環境ではないですね
EC2が完全に単一障害点となっています
最後に面白い表現が「全ての卵を1つのバスケットに入れる?」
バスケットを落としたら終了です。分散させましょう。
ではどうすればいいか?
1つの答えはありません。ケース・バイ・ケースとなります。
EC2を使用すべきケースも当然あります
サービスを理解して適切な判断ができるようにしたいですね
ECS
とはいえやはりECSを推していそうです
説明を見る限りFagateが前提に見えます
保守に関してはFagateの場合かなり楽になります。パッチ適用の苦しみからも開放されます。
トラフィックに応じて自動スケールするので怯えることもありません。
EC2とECSは悩みますが、個人的にはこれからビジネス、システムが急成長していくのであればECSを選択します。
保守が全く無いわけではないですが、EC2と比べるとかなりの負荷が減ります。
運用者が個別でいないフェーズであればなおさらです。
まとめ
一部の内容だけでしたが、いかがでしたでしょうか。
Breakout sessionなのでこの後動画配信されるかもしれません。
これから成長していくシステムを開発、保守している方にはぜひすべての内容を見ていただきたいです。