何百万人ものユーザーのためのシステム設計 (パート2)
何百万人ものユーザーをサポートするシステムを設計することは小さな課題ではなく、継続的かつ継続的な改善が必要です。 何百万人ものユーザーのためのシステム設計(パート1)に続き、数百万人のユーザーに拡大するシステムを構築する方法を調べ続けます。
2022年04月01日
何百万人ものユーザーをサポートするシステムを設計することは小さな課題ではなく、継続的かつ継続的な改善が必要です。 何百万人ものユーザーのためのシステム設計(パート1)に続き、数百万人のユーザーに拡大するシステムを構築する方法を調べ続けます。
何百万人ものユーザーをサポートするシステムを設計することは小さな課題ではなく、継続的かつ継続的な改善が必要です。 何百万人ものユーザーのためのシステム設計(パート1)に続き、数百万人のユーザーに拡大するシステムを構築する方法を調べ続けます。
1. CDN
CDNは、静的コンテンツの配信に使用されるサーバーの地理的に分散したネットワークです。 静的コンテンツには、画像、ビデオ、CSSファイル、JSファイルなどがあります。
動的コンテンツキャッシングは新しい概念であり、この記事の範囲を超えています。 リクエストパス、クエリ文字列、Cookie、リクエストヘッダーに基づいてHTMLページをキャッシュできます。
CDNのワークフロー
・ユーザーが画像のURLを使用してimage.pngを取得した場合。 CDNによって提供されるURLのドメイン名。 最後の2つの画像URLは、AmazonサイトとAkamaiCDNでの画像URLの状態を示すために使用されます。
https://mysite.cloudfront.net/logo.jpg
https://mysite.akamai.com/image-manager/img/logo.jpg
・CDNサーバーのキャッシュにimage.pngがない場合、ネイティブWebサーバーまたはAmazonS3などのオンラインストレージからファイルを要求します。
・オリジンは、キャッシュされた画像の保存期間を説明するHTTPヘッダーTime-to-Liveを含むimage.pngをCDNサーバーに返します。
・CDNは画像をキャッシュしてユーザーAに返します。TTLが期限切れになるまで画像はキャッシュに残ります。
・ユーザーBが同じ写真にリクエストを送信します。
・TTLが満了していない場合、画像はキャッシュから返されます。
2. Stateless web tier
web tierをスケールアウトするには、Web層の状態を変換する必要があります。 これは、SQLやNoSQLなどの長期的なメモリ内セッションデータにとっての課題です。 クラスタ内の各Webサーバーは、データベースの状態データにアクセスできます。 これはstateless web tierと呼ばれます。
3. Stateful architecture
ステートフルサーバーとステートレスサーバーのいくつかの違いは、ステートフルサーバーは、ある要求から次の要求までクライアントのデータ(状態)を記憶することです。 ステートレスサーバーはその状態を記憶する必要はありません。
ユーザーAのセッションデータとユーザーイメージもサーバー1に保存されます。ユーザーAを認証するには、HTTPリクエストをサーバー1に送信する必要があります。リクエストがサーバー2などの別のサーバーに送信されると、リクエストはエラーを受け取ります。Aのセッションはそうではないためです。同様に、ユーザーBを認証するためのHTTP要求は、サーバー2に送信され、ユーザーCはサーバー3に送信される必要があります。
4. Stateless architecture
ステートレスアーキテクチャでは、ユーザーからのHTTPリクエストは、共有ストレージから状態データをロードする任意のWebサーバーに送信できます。 状態データは、Webサーバーの外部にあるデータ共有に保存されます。 ステートレスシステムは、よりシンプルで、より強力で、より拡張性があります。
セッションデータをWeb層から移動し、永続ストレージに保存します。 データ共有者は、RDBMS、Redis、NoSQLなどです。NoSQLは拡張性のための最も簡単な選択です。 Auto-scalingとは、トラフィックに基づいてWebサーバーを自動的に追加または削除するプロセスを意味します。 状態データがWebサーバーからクリアされた後、自動スケーリングが機能します。
ウェブサイトを徐々に拡大し、多くの海外ユーザーを魅了します。 可用性を向上させ、すべての地域でより良いエクスペリエンスを提供するには、複数のデータセンターをサポートすることが不可欠です。
5. データセンター
次の図は、2つのデータセンターの例です。
通常の操作では、ユーザーは地理的にルーティングされ、英語でgeoDNSルーティングされます。geoDNSは、ドメイン名をユーザーの場所に基づいてIPアドレスに解決できるようにするDNSサービスです。データセンターがダウンした場合、すべてのトラフィックを稼働中のデータセンターに転送します。
マルチデータセンターを設置する際に取り組むべき技術的課題
・交通ナビゲーション
適切なデータセンターへのトラフィックを促進するには、効果的なツールが必要です。 GeoDNSを使用すると、ユーザーの場所に基づいてトラフィックを最寄りのデータセンターに転送できます。
・データ同期
異なるドメインのユーザーは、異なるローカルキャッシュまたはデータベースを使用できます。フェイルオーバーが発生した場合、トラフィックはデータが利用できないデータセンターに転送される可能性があります。一般的な戦略は、複数のデータセンター間でデータを複製することです。
・テストと展開
マルチデータセンターのセットアップでは、さまざまな場所でWebサイト/アプリをテストすることが重要です。自動展開ツールは、すべてのデータセンターでサービスの一貫性を維持するために重要です。
6. Message Queue
メッセージキューは、非同期通信をサポートする永続的なメモリ内コンポーネントです。 バッファとして機能し、リクエストを非同期で配信します。 メッセージキューの基本的なアーキテクチャは非常に単純です。 パブリッシャーまたはプロデューサーと呼ばれる入力サービスは、メッセージを作成し、メッセージキューに公開します。 サブスクライバーまたはコンシューマーと呼ばれる他のサービスまたはサーバーがキューに接続し、メッセージで定義されたアクションを実行します。
デカップリングにより、メッセージキューは、拡張性と信頼性の高いアプリケーションを構築するための優れたアーキテクチャになります。 メッセージキューを使用すると、パブリッシャーはキューにメッセージを作成して、現在存在しないサブスクライバーが後でメッセージを処理できるようにすることができます。 サブスクライバーは、パブリッシャーがいない場合でもメッセージを読むことができます。
以下の画像では、Webサーバーが画像処理をメッセージキューにアップロードしています。 画像処理ワーカーは、メッセージキューから作業を受け取り、画像のカスタマイズタスクを非同期で実行します。 パブリッシャーとサブスクライバーは独立してスケーリングできます。 キューのサイズが大きくなると、処理時間を短縮するためにワーカーが追加されます。 ただし、ほとんどの場合キューが空の場合、ワーカーの数が減少する可能性があります。
数百万人以上のユーザー
システム拡張は無限ループです。 反復するたび、新しいことを学びます。 数百万人のユーザーに拡張するための新しい戦略では、より多くの調整が必要です。 たとえば、システムを最適化し、より均一なサブサービスに分割する必要がある場合があります。 このレッスンで学んだすべてのテクニックは、新しい問題を解決するための優れた基盤を提供します。 記事の最後に、調べたことの要約があります。
・ステートレスWebアーキテクチャ
・どこにでもバックアップを作成する
・可能な限りキャッシュする
・マルチデータセンターのサポート
・・CDNに静的リソースを保存する
・シャーディングを使用したデータのスケーリング
・複数のデバイスに階層を分割する
・システムを監視し、自動化ツールを使用する
オフショア開発でシステムをご検討されている方々はぜひ一度ご相談ください。
※以下通り弊社の連絡先
アカウントマネージャー: クアン(日本語・英語対応可)
電話番号: (+84)2462 900 388
メール:konnichiwa@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
- オフショア開発
- エンジニア人材派遣
- ラボ開発
- ソフトウェアテスト
電話番号: (+84)2462 900 388
メール: contact@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
無料見積もりはこちらから
Tags
ご質問がある場合、またはハチネットに協力する場合
こちらに情報を残してください。折り返しご連絡いたします。
関連記事
情報技術分野における人工知能の応用
デジタル化の時代において、人工知能(AI)は、さまざまなプロセスを改善し、自動化することで、多くの分野、特に情報技術(IT)分野において飛躍的な効果をもたらしています。単なる技術ツールを超えて、AIはエンジニア、企業、個人ユーザーが情報を利用・活用する方法に大きな変革をもたらしています。 この記事では、IT分野におけるAIの応用について、各側面を詳しく分析し、AIがもたらす変化と、その影響について掘り下げて解説します。
2024年の中国IT市場とベトナムIT企業のチャンス
2024年、中国の情報技術(IT)産業は急速な発展を続けており、先進的な技術分野が台頭し、多くの企業に新たなトレンドやチャンスを提供しています。同時に、ベトナムも世界的に注目を集める技術拠点として浮上し、中国のIT企業との協力機会がますます広がっています。この記事では、中国の2024年のIT市場の状況を分析し、ベトナムのIT人材やベトナムのITエンジニアが活躍できる協力の可能性を探ります。
日本企業のEORサービス利用の理由
グローバル化が進むビジネス環境の中で、多くの日本企業が国際的な人材リソースを最適化し、規模を拡大するための解決策を模索しています。その中で、効果的な戦略の一つがEmployer of Record (EOR) サービスの利用です。このサービスは、新しい市場で迅速にプレゼンスを確立するだけでなく、他国での人材管理に関する法的リスクやコストを最小限に抑えることができます。それでは、なぜ日本企業がEORサービスの利用を検討すべきなのでしょうか?このソリューションがもたらすメリットについて詳しく見ていきましょう。
企業がEORサービスを利用すべきタイミング
近年、グローバル化が進展する中で、多くの企業が海外市場への進出を目指しています。特に、ベトナムなどの新興市場では、質の高い人材を安価に確保できることから、多くの企業が注目しています。しかし、異国での事業展開には様々な課題が伴います。特に、現地の法令遵守や人事管理の複雑さは、企業にとって大きな負担となります。このような状況下で、雇用代行 (EOR) サービスは、企業にとって非常に有効な解決策となります。本記事では、企業がEORサービスを利用すべき具体的なタイミングとその利点について探っていきます。
IT業界でおすすめの人材派遣ベトナム会社4選【2023年最新版】
こんにちは、皆さん!IT業界で最新の人材派遣会社をお探しの方におすすめのベトナム会社をご紹介します。ベトナムは、多くの優秀なIT人材が育成されており、コストパフォーマンスが高く、日本企業にとっても魅力的な市場です。そこで、2023年最新版のおすすめの人材派遣ベトナム会社4選をご紹介します。
ITサービスにおけるボディショッピングとは?
ボディショッピングとは、情報技術サービスにおける人材派遣の一形態であり、企業が必要とする技術者を外部の派遣会社から借り入れることを指します。この記事では、ボディショッピングについて詳しく説明し、そのメリットとデメリットについても取り上げます。