TOPコラム一覧[STP211-R] Scaling on AWS for your first 10 million users(アーキテクチャ)

ユースカジノ 摘発 [STP211-R] Scaling on AWS for your first 10 million users(アーキテクチャ)

ビジネス初期 AWS インフラストラクチャにおいて、急速な成長に対応する能力を構築するための成功したパターンとテクニックについて説明するセッションです。スケーラブルなAWSユースカジノ 摘発の実装から実績のあるパターン設計まで、一般的なインフラストラクチャの課題を克服できるアーキテクチャの例を紹介しました。

ユーザーが少ない基本的な構造から、10万、100万ユーザーを対応するレベル、さらにその先のマスユースカジノ 摘発まで、どのように拡張し構成していくかを紹介したいと思います

ユースカジノ 摘発

「app」の定義をシステムの観点から単純化すると、frontend + backend + data storage に分類できます。

ユースカジノ 摘発

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

ユースカジノ 摘発

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

modern frontend 開発方式を使用する理由は以ユースカジノ 摘発通りです。

  • 1) 運用コストオーバーヘッド減少
  • 2) scale/性能が優秀
  • 3) modern frontend 技術に適用可能

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

Amplify Hostingの利点と特性は、ユースカジノ 摘発図に示されています。

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

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

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



上記の画像のように、AWS managed service を使用して利点を最大化できます。

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

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

こうして作られた modern style の frontend & backend アーキテクチャが上記のとおりです。

これでユースカジノ 摘発ベースだけを決定すればよく、一般的に最もよく使われ、リファレンスも多くのSQLを考慮するようになります。

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

他にもNoSQLの導入を考慮すべき要素は以ユースカジノ 摘発通りです。

  • 1) 応答時間遅延のないアプリケーション
  • 2) meta-dataに基づくユースカジノ 摘発型
  • 3) 非関係型ユースカジノ 摘発
  • 4) スキーマを必要としない柔軟なユースカジノ 摘発
  • 5) 入力が頻繁なユースカジノ 摘発


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

オンデマンドで自動ユースカジノ 摘発ウトが可能なAurora Serverless v2を紹介します。

最後に、上の図のようなモダンなスタイルのアーキテクチャで構成されています。

10000ユーザーを超えると、どのような問題が発生しますか?さまざまなユースカジノ 摘発を追加すると複雑さが増し、パフォーマンスが低下し、データも大量に蓄積されます。

Frontend 領域の scalability 拡張は cloudfront を考慮してみます。グローバルユースカジノ 摘発をサポートし、backend呼び出しを減らし、cachingで応答速度を上げることができます。





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



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



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



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

RDSユースカジノ 摘発だけでなくキャッシュユースカジノ 摘発が必要な場合は、RedisまたはElastiCacheが必要です。

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

完成した data tier の拡張アーキテクチャです。

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







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

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

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

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

ユーザー数の少ないシンプルな小規模なAppユースカジノ 摘発に適したシステムアーキテクチャが、古典的なホストベースからモダンな方法で進化してきました。

ユーザーが増えてユースカジノ 摘発が複雑になるにつれて、バックエンドAPIのマイクロユースカジノ 摘発への切り替えが必ず必要であり、DBの場合は機能的にredis、nosql、relational dbで分離運用が必要であり、rdsのリードレプリカ拡張も重要です。

AWS Aurora Serverless v2のようなマネージドユースカジノ 摘発が良いのではないでしょうか。

今回のセッションを通じて、アプリユースカジノ 摘発開始時に検討すべき要素と成長に伴う拡張要素を体系的に理解し整理機会となり、今後の動向にも常に注意が必要だと感じました。

お問い合わせ

引用元

TOPコラム一覧[STP211-R] Scaling on AWS for your first 10 million users(アーキテクチャ)

pagetop