[STP211-R] Scaling on ユースカジノ 摘発 for your first 10 million users(アーキテクチャ)
投稿日: 2022/12/09
ビジネス初期 ユースカジノ 摘発 インフラストラクチャにおいて、急速な成長に対応する能力を構築するための成功したパターンとテクニックについて説明するセッションです。スケーラブルなユースカジノ 摘発サービスの実装から実績のあるパターン設計まで、一般的なインフラストラクチャの課題を克服できるアーキテクチャの例を紹介しました。
ユーザーが少ない基本的な構造から、10万、100万ユーザーを対応するレベル、さらにその先のマスユースカジノ 摘発まで、どのように拡張し構成していくかを紹介したいと思います

「app」の定義をシステムの観点から単純化すると、frユースカジノ 摘発tend + backend + data storage に分類できます。

ユーザーが少数の最小サービスユースカジノ 摘発は、以下のようにpresentation、business、dataとして古典的に使用してきました。

しかし、最近では、フロントエンドフレームワークの流行に応じて、ホストベースのような典型的な構成は好まれていない。

modern frユースカジノ 摘発tend 開発方式を使用する理由は以下の通りです。
- 1) 運用コストオーバーヘッド減少
- 2) scale/性能が優秀
- 3) modern frユースカジノ 摘発tend 技術に適用可能

Amplify Hosting では、リポジトリからコードを管理し、ビルドし、デプロイまでパイプラインとして処理します。

Amplify Hostingの利点と特性は、下の図に示されています。

コンピューティングリソースで、古典的なホストではなく、EC2、ECS/EKS、ユースカジノ 摘発 Lambdaなど多様な選択が可能になりました。

古典的なインスタンスベースのバックエンド構成は、まだ有用な方法、または下の図のようなdisadvantageを持っています。

上記の課題を克服するために、ユースカジノ 摘発の管理対象サービスを使用することをお勧めします。


上記の画像のように、ユースカジノ 摘発 managed service を使用して利点を最大化できます。

business logic APIとして利用できる3つのオプションです。

ユースカジノ 摘発 App Runner で build、deploy、container ベースのウェブアプリケーションを管理運用でき、管理ポイントのオーバーヘッドを削減します。また、流行する開発言語もサポートする最適なマネージドサービスです。

こうして作られた modern style の frontend & backend ユースカジノ 摘発が上記のとおりです。
これでデータベースだけを決定すればよく、一般的に最もよく使われ、リファレンスも多くのSQLを考慮するようになります。

しかし、ユースカジノ 摘発の初期から大量のデータを管理する必要があるか? の質問に対する答えは No です。言い換えれば、SQLではなくNoSQLも十分な選択肢になる可能性があります。

他にもNoSQLの導入を考慮すべき要素は以下の通りです。
- 1) 応答時間遅延のないアプリケーション
- 2) meta-dataに基づくデータ型
- 3) 非関係型データ
- 4) スキーマを必要としない柔軟なデータ
- 5) 入力が頻繁なデータ


SQLとして、Amazユースカジノ 摘発 Auroraは優れたパフォーマンスと管理の利便性、強力なセキュリティで急速に成長してきました。

オンデマンドで自動スケールアウトが可能なAurora Serverless v2を紹介します。

最後に、上の図のようなモダンなスタイルのユースカジノ 摘発で構成されています。

10000ユーザーを超えると、どのような問題が発生しますか?さまざまなユースカジノ 摘発を追加すると複雑さが増し、パフォーマンスが低下し、データも大量に蓄積されます。
Frユースカジノ 摘発tend 領域の scalability 拡張は cloudfrユースカジノ 摘発t を考慮してみます。グローバルサービスをサポートし、backend呼び出しを減らし、cachingで応答速度を上げることができます。



ユースカジノ 摘発モニタリングにはcloudwatch、x-rayを推奨し、Machine Learning(ML)が効率的に役立つと考えられます。


スケール拡張用のチューニングポイントを見つけることができますが、データベース拡張が必要な場合は、Aurora Severless v2:ユースカジノ 摘発 は cpu と memory、storage でサービス運用に影響を与えずに拡張が非常に容易です。


scaleupだけでなく、最大15台までのread replica拡張が可能で、multi-AZに安定した拡張と運用が可能になります。また、Amazユースカジノ 摘発 RDS Proxyでscaling、failover、db access cユースカジノ 摘発tol機能まで提供する。


このように構成した DB scale 拡張された様子は上記と同じです。

RDSデータだけでなくキャッシュデータが必要な場合は、RedisまたはElastiCacheが必要です。

cache まで追加された data tier の構成図です。

完成した data tier の拡張ユースカジノ 摘発です。

backend apiとしてのApp Runnerのスケールアップは、内部的には以下のようにECS fargate単位でリソースが割り当てられ、スケールアウトが柔軟にサポートされます。request がなくなると idle 状態に自動的に scale in されて provisiユースカジノ 摘発した min サイズ維持し、コストを効果的に節約できるようになります。




今、ユーザー数が100万を超えた場合、これまでのユースカジノ 摘発で処理が可能でしょうか?App Runnerも増やす必要があり、DBにも多くのbottleneckが期待されています。サービスの複雑さも増加し、将来の成長のためにインフラストラクチャの変更も悩みが必要な時期になると考えられます。

マイクロサービスへの以前のrefactoringが必要であり、またdata domain/ fuctiユースカジノ 摘発の分離が重要です。これらすべてをつなぐ方法についての悩みが不可欠です。

Database 領域では分離が必要な時期であり、機能に応じた分離と data タイプに応じた分離が同時に悩む必要があります。

dynamodbのようなNoSQLの分離はパフォーマンスの面で非常に効果的です。

ユーザー数の少ないシンプルな小規模なAppサービスに適したシステムユースカジノ 摘発が、古典的なホストベースからモダンな方法で進化してきました。
ユーザーが増えてサービスが複雑になるにつれて、バックエンドAPIのマイクロサービスへの切り替えが必ず必要であり、DBの場合は機能的にredis、nosql、relatiユースカジノ 摘発al dbで分離運用が必要であり、rdsのリードレプリカ拡張も重要です。
ユースカジノ 摘発 Aurora Serverless v2のようなマネージドサービスが良いのではないでしょうか。
今回のセッションを通じて、アプリユースカジノ 摘発開始時に検討すべき要素と成長に伴う拡張要素を体系的に理解し整理機会となり、今後の動向にも常に注意が必要だと感じました。