AWS クラウドを使用してスケーラブルなアプリケーションを開発するにはどうすればよいですか? (Vaibhav Sharma) PlatoBlockchain データ インテリジェンス。垂直検索。あい。

AWS クラウドを使用してスケーラブルなアプリケーションを開発するには? (バイバブ・シャルマ)

アプリケーションのスケーラビリティは、その機能やユーザー インターフェイスと同じくらい重要です。 ソフトウェアが将来 1 万人以上のユーザーにサービスを提供するようになる場合、これはさらに重要です。 このブログでは、AWS でアプリを XNUMX 万ユーザーにスケールする方法を説明します。 推定
あなたは Web アプリケーションを構築し、いくつかのクライアントを持っています。 いくつかのコメントとアイデアの後、完全に機能する製品が完成します。 ここで、マーケティング スタッフは製品検索でアプリを宣伝して、新しいクライアントを獲得します。 何千人もの訪問者が突然利用しています
あなたのアプリ; ある瞬間、彼らはそれを利用できなくなります。

アプリをテストしたところ、機能することがわかりました。 それで、正確に何が起こったのですか?

「これはバグではなく、スケーラビリティの問題です。」 クラウド インフラストラクチャは、トラフィックの増加に合わせて拡張できるように構築されていません。」

スケーラビリティよりも機能を優先する多くのスタートアップを見てきました。 堅牢でスケーラブルなアプリを開発することは、あらゆるアプリケーション設計の重要な要素です。 深く掘り下げる前に、まず、スケーラビリティとは何か、またその理由を明確にしましょう。

スケーラビリティとは何ですか?

アプリケーションのスケーラビリティとは、ユーザー数やスコープが増加しても動作し続ける能力を指します。 ただし、スケーラビリティは、企業やチームを含むあらゆるシステムに適用できます。

スケーラビリティが正しく行われると、パフォーマンスの問題を引き起こすことなく、ユーザー トラフィックの増加に対応できます。 基盤を正しく設定すれば、コードやサーバー アーキテクチャに大きな変更を加える必要さえありません。

スケーラビリティが重要な理由

スマートフォンでお気に入りのアプリを考えてみましょう。 このアプリが頻繁なアプリのクラッシュ、お粗末なカスタマー サポート、不要なアプリ内アップデートなどの問題を引き起こしていると考えてください。 この状況であなたはどうしますか? 同じアプリを使い続けるか、より良いものを探し始めるか
代替案?

私はXNUMX番目のものを推測しています。 スケーラビリティの問題は次のようになります。 アプリの作成者が、ユーザー ベースが予期せず拡大し、需要の増加に対応するために追加のサーバーが必要になったことに気付くと、彼らはパニックに陥ります。 彼らは閉鎖するためにあらゆる実行可能な手段を試みます
パフォーマンスの違い。 顧客が以前にいくつかの障害に遭遇したことがある場合、顧客はあなたのアプリを削除し、競合他社のアプリを使い始めるでしょう。

ただし、スケーラブルなアプリは、急速な拡張に対応できるように構築されています。 それらはよりユーザーフレンドリーであり、スケーラブルでないプログラムよりも競争上の優位性を提供します. 彼らはパフォーマンスを改善し、ROI を高め、顧客を満足させました。

AWS クラウド サービスを使用してスケーラブルなアプリケーションを開発する手順

ステップ 1: クラウド アーキテクチャの初期構成

localhost でアプリを使用しているのはあなただけです。 ボックスにアプリケーションを展開することから始めることができます。 開始するには、
AWSサービス 以下に記載されています。

● Amazon マシン イメージ (AMI)

Amazon Machine Image (AMI) には、クラウド内の仮想サーバーであるインスタンスを起動するための手順が含まれています。 インスタンスの起動時に AMI を提供できます。 AMI には、インスタンスのルート ボリュームのテンプレート、起動権限が含まれています。
AMI を使用してインスタンスを起動できる AWS アカウントと、起動時にインスタンスにアタッチするボリュームを定義するブロック デバイス マッピングを指定します。

● Amazon Virtual Private Cloud (Amazon VPC)

Amazon Virtual Private Cloud を使用すると、AWS リソースを仮想ネットワークにデプロイできます。 IP アドレス範囲の選択、サブネットの形成、ルート テーブル、ネットワーク ゲートウェイの設定など、仮想ネットワーク環境を完全に制御できます。

● アマゾン エラスティック コンピューティング クラウド (Amazon EC2)

Amazon Elastic Compute Cloud は、AWS クラウドのスケーラブルなコンピューティング機能です。 これにより、事前にハードウェアを用意する必要がなくなり、アプリの設計と展開をより迅速に行うことができます。

●アマゾンルート53

Amazon Route 53 は、スケーラブルで可用性の高いクラウド DNS ウェブ サービスです。 Amazon Route 53 は、ユーザー リクエストを Amazon EC2 インスタンス、Elastic Load Balancing ロード バランサー、Amazon S3 バケットなどの AWS インフラストラクチャに接続します。

ここでは、より大きなボックスが必要です。 垂直スケーリングと呼ばれる、より大きなインスタンス タイプを選択するだけです。 最初は垂直方向のスケーリングで十分ですが、無限に垂直方向にスケーリングすることはできません。 やがてレンガの壁にたどり着きます。 さらに、それは対処しません
フェイルオーバーと冗長性。

ステップ 2: 多数のホストを作成し、データベースを選択する

ユーザー数が増えてデータが生成されると、最初にデータベースを選択する必要があります。 次の理由により、SQL Database の使用を開始することをお勧めします。

  • 十分に確立され、使い古されたテクノロジー。
  • コミュニティからのサポートと最新のツール
  • 最初の XNUMX 万人のユーザーで SQL データベースを粉々にするつもりはありません。

ユーザーが複数の種類の膨大な量のデータを作成する場合は、NoSQL データベースを利用する必要があります。 この時点で、すべてが XNUMX つのバケットに入っています。 長期的には、この設計は拡張と管理がより困難になります。 多層を作成する時が来ました
アプリケーションからデータベースを分離するためのアーキテクチャ。

ステップ 3: データベースを Amazon Rds に保存して操作を容易にする

ユーザーが 100 人に増えたら、データベースの展開を最初に行う必要があります。 AWS にデータベースをデプロイするには、XNUMX つの一般的な方法があります。 一番の選択肢は、Amazon Relational Database Service (Amazon
RDS) または Amazon DynamoDB を使用し、2 番目のステップは、Amazon ECXNUMX で独自のデータベース ソフトウェアをホストすることです。

● アマゾン RDS

Amazon RDS (Amazon Relational Database Service) を使用すると、クラウドでのリレーショナル データベースのセットアップ、実行、スケーリングが簡単になります。 Amazon RDS は、Amazon Aurora、Oracle、Microsoft SQL Server、PostgreSQL、MySQL、および
MariaDB。

● Amazon DynamoDB

Amazon DynamoDB は、Amazon.com が提供する完全マネージド型の独自の NoSQL データベース サービスです。
Amazon Webサービス ポートフォリオ。

ステップ 4: 可用性を高めるために、異なるアベイラビリティーゾーンを作成する

現在のアーキテクチャに基づく可用性の問題が発生する場合があります。 Web アプリのホストに障害が発生すると、ダウンする可能性があります。 そのため、RDS のスレーブ データベースをホストするには、別のアベイラビリティ ゾーンに別の Web インスタンスが必要になります。

  • エラスティック ロード バランサー (ELB)
  • マルチ – AZ 展開

ステップ 5: パフォーマンスを向上させるために、静的マテリアルをオブジェクト ベースのストレージに移動する

パフォーマンスと効率を高めるには、追加のリードレプリカを RDS に追加する必要があります。 これにより、書き込みマスター データベースへの負担が軽減されます。 静的情報を Amazon S3 および Amazon CloudFront に移動することも、ウェブ サーバーの負担を軽減するのに役立ちます。

  • アマゾンS3
  • アマゾンエラスティキャッシュ
  • アマゾンCloudFrontの
  • Amazon DynamoDB

ステップ 6: 変化する需要に自動的に対応するための Auto Scaling の設定

この時点で、小規模なチームが保守するにはアーキテクチャが複雑すぎます。効果的な監視と分析がなければ、先に進むのは困難です。

  • アマゾンクラウドウォッチ
  • AWSクラウドフォーメーション
  • AWS エラスティック Beanstalk
  • AWS OpsWorks
  • AWS コードデプロイ

ステップ 7: さらなる柔軟性のために、SOA を使用する

大規模なオンライン アプリケーションを作成する場合、サービス指向アーキテクチャ (SOA) を採用して XNUMX 万人を超えるユーザーをサポートする必要があります。

  • Amazon Simple Queue Service(SQS)
  • Amazon Simple Notification Service(SNS)
  • AWSラムダ

まとめ

いつ有名になるかわからないので、スケーリングへのアプローチ方法は事前に決定する必要があります。 さらに、ページのクラッシュ (または遅延) は、ユーザーを怒らせ、アプリのイメージを低下させます。 最終的には
収益への影響。

 スケーラブルな Web サイトの設計には、時間、労力、および多額の投資が必要です。 Exato Softwares は、要件があり、それを達成するのに苦労している企業にとって最も優れたソリューションです。 何百万ものクライアント向けにスケーラブルな Web アプリケーションを構築しました
ユーザー。 ご相談・お見積りは無料ですので、お気軽にお問い合わせください。

タイムスタンプ:

より多くの フィンテクトラ