×

何百万人ものユーザーのためのシステム設計 (パート2)

何百万人ものユーザーをサポートするシステムを設計することは小さな課題ではなく、継続的かつ継続的な改善が必要です。 何百万人ものユーザーのためのシステム設計(パート1)に続き、数百万人のユーザーに拡大するシステムを構築する方法を調べ続けます。

 2022年04月01日

何百万人ものユーザーをサポートするシステムを設計することは小さな課題ではなく、継続的かつ継続的な改善が必要です。 何百万人ものユーザーのためのシステム設計(パート1)に続き、数百万人のユーザーに拡大するシステムを構築する方法を調べ続けます。

何百万人ものユーザーをサポートするシステムを設計することは小さな課題ではなく、継続的かつ継続的な改善が必要です。 何百万人ものユーザーのためのシステム設計(パート1)に続き、数百万人のユーザーに拡大するシステムを構築する方法を調べ続けます。

1. CDN


CDNは、静的コンテンツの配信に使用されるサーバーの地理的に分散したネットワークです。 静的コンテンツには、画像、ビデオ、CSSファイル、JSファイルなどがあります。

動的コンテンツキャッシングは新しい概念であり、この記事の範囲を超えています。 リクエストパス、クエリ文字列、Cookie、リクエストヘッダーに基づいてHTMLページをキャッシュできます。

CDN – Mạng lưới phân phối nội dung cho hệ thống lớn

CDNのワークフロー

コンテンツ配信ネットワーク (CDN) の使用 - AWS Elemental MediaStore

 

・ユーザーが画像の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サーバーの外部にあるデータ共有に保存されます。 ステートレスシステムは、よりシンプルで、より強力で、より拡張性があります。

Stateful and Stateless Applications and its Best Practices

セッションデータをWeb層から移動し、永続ストレージに保存します。 データ共有者は、RDBMS、Redis、NoSQLなどです。NoSQLは拡張性のための最も簡単な選択です。 Auto-scalingとは、トラフィックに基づいてWebサーバーを自動的に追加または削除するプロセスを意味します。 状態データがWebサーバーからクリアされた後、自動スケーリングが機能します。

ウェブサイトを徐々に拡大し、多くの海外ユーザーを魅了します。 可用性を向上させ、すべての地域でより良いエクスペリエンスを提供するには、複数のデータセンターをサポートすることが不可欠です。

5. データセンター


次の図は、2つのデータセンターの例です。

データセンター16選を比較!選定の重要ポイント8つを解説 | QEEE

 

通常の操作では、ユーザーは地理的にルーティングされ、英語でgeoDNSルーティングされます。geoDNSは、ドメイン名をユーザーの場所に基づいてIPアドレスに解決できるようにするDNSサービスです。データセンターがダウンした場合、すべてのトラフィックを稼働中のデータセンターに転送します。

マルチデータセンターを設置する際に取り組むべき技術的課題

・交通ナビゲーション
適切なデータセンターへのトラフィックを促進するには、効果的なツールが必要です。 GeoDNSを使用すると、ユーザーの場所に基づいてトラフィックを最寄りのデータセンターに転送できます。

・データ同期
異なるドメインのユーザーは、異なるローカルキャッシュまたはデータベースを使用できます。フェイルオーバーが発生した場合、トラフィックはデータが利用できないデータセンターに転送される可能性があります。一般的な戦略は、複数のデータセンター間でデータを複製することです。

・テストと展開
マルチデータセンターのセットアップでは、さまざまな場所でWebサイト/アプリをテストすることが重要です。自動展開ツールは、すべてのデータセンターでサービスの一貫性を維持するために重要です。

6. Message Queue


メッセージキューは、非同期通信をサポートする永続的なメモリ内コンポーネントです。 バッファとして機能し、リクエストを非同期で配信します。 メッセージキューの基本的なアーキテクチャは非常に単純です。 パブリッシャーまたはプロデューサーと呼ばれる入力サービスは、メッセージを作成し、メッセージキューに公開します。 サブスクライバーまたはコンシューマーと呼ばれる他のサービスまたはサーバーがキューに接続し、メッセージで定義されたアクションを実行します。

Messege Queue – Bộ phận không thể thiếu trong các hệ thống lớn và  microservice architecture | Từ coder đến developer – Tôi đi code dạo

 

デカップリングにより、メッセージキューは、拡張性と信頼性の高いアプリケーションを構築するための優れたアーキテクチャになります。 メッセージキューを使用すると、パブリッシャーはキューにメッセージを作成して、現在存在しないサブスクライバーが後でメッセージを処理できるようにすることができます。 サブスクライバーは、パブリッシャーがいない場合でもメッセージを読むことができます。

以下の画像では、Webサーバーが画像処理をメッセージキューにアップロードしています。 画像処理ワーカーは、メッセージキューから作業を受け取り、画像のカスタマイズタスクを非同期で実行します。 パブリッシャーとサブスクライバーは独立してスケーリングできます。 キューのサイズが大きくなると、処理時間を短縮するためにワーカーが追加されます。 ただし、ほとんどの場合キューが空の場合、ワーカーの数が減少する可能性があります。

数百万人以上のユーザー

システム拡張は無限ループです。 反復するたび、新しいことを学びます。 数百万人のユーザーに拡張するための新しい戦略では、より多くの調整が必要です。 たとえば、システムを最適化し、より均一なサブサービスに分割する必要がある場合があります。 このレッスンで学んだすべてのテクニックは、新しい問題を解決するための優れた基盤を提供します。 記事の最後に、調べたことの要約があります。

・ステートレスWebアーキテクチャ
・どこにでもバックアップを作成する
・可能な限りキャッシュする
・マルチデータセンターのサポート
・・CDNに静的リソースを保存する
・シャーディングを使用したデータのスケーリング
・複数のデバイスに階層を分割する
・システムを監視し、自動化ツールを使用する

 

オフショア開発でシステムをご検討されている方々はぜひ一度ご相談ください。

※以下通り弊社の連絡先

アカウントマネージャー: クアン(日本語・英語対応可)

電話番号: (+84)2462 900 388

メール:konnichiwa@hachinet.com

お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。

 無料見積もりはこちらから▶

いずれかのサービスについてアドバイスが必要な場合は、お問い合わせください。
  • オフショア開発
  • エンジニア人材派遣
  • ラボ開発
  • ソフトウェアテスト
※以下通り弊社の連絡先
電話番号: (+84)2462 900 388
メール: contact@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
無料見積もりはこちらから

Tags

ご質問がある場合、またはハチネットに協力する場合
こちらに情報を残してください。折り返しご連絡いたします。

 Message is sending ...

関連記事

 2025年06月27日

3Dゲームの世界:技術革新とゲーム開発の未来

3Dゲームは、ゲーム開発における革新を象徴する存在であり、プレイヤーにこれまでにないリアルで没入感のある体験を提供しています。今日、3D技術はゲームのグラフィックスやインタラクションの質を飛躍的に向上させ、VRやARといった新技術とともに、ゲーム業界の未来を形作っています。本記事では、3Dゲームの開発に必要な技術や、代表的なゲームエンジンであるUnityとUnreal Engineの違いを比較し、これからのゲーム開発におけるトレンドについても探っていきます。

 2025年06月26日

3Dゲーム開発に必須!無料で使えるアセット&ツールまとめ【初心者〜上級者向け】

3D games の開発は魅力的ですが、初期費用や学習コストが高いと感じている人も多いのではないでしょうか?しかし、現在は高品質な無料アセットやツールが豊富に存在しており、誰でも気軽に開発を始めることが可能です。本記事では、3Dゲーム制作に役立つ無料のアセット&ツールを厳選して紹介します!

 2025年06月25日

3Dゲームエンジニアになるには?年収・スキル・キャリアパス完全ガイド

3Dゲームの需要が年々高まる中、「3Dゲームエンジニア」という職種が注目を集めています。ゲームエンジンを使ってキャラクターや世界を動かすこの仕事は、高度な技術と創造力の融合が求められるプロフェッショナルな分野です。本記事では、3Dゲームエンジニアに必要なスキルやツール、気になる年収、そして将来性や学び方まで、これから目指す人にも、キャリアアップを考える人にも役立つ情報を網羅的に解説していきます。

 2025年06月17日

ブロックチェーンゲームが直面する問題点とは?

ブロックチェーン技術は、近年急速に発展し、さまざまな業界で革新的な変化をもたらしています。その中でも、ゲーム業界におけるブロックチェーンの活用は特に注目を集めています。ブロックチェーンを基盤にしたゲームは、プレイヤーの所有権や取引の透明性を確保し、よりエンターテイメント性の高い体験を提供することができます。しかし、この新しい技術の導入にはいくつかの課題も存在します。本記事では、ブロックチェーンゲームが直面している主な問題点について掘り下げ、これらをどのように克服できるのかを考察していきます。

 2025年06月16日

【2025年版】Go言語とは?特徴・年収・メリットとデメリットを徹底解説!

近年、Go言語(Golang)は、シンプルで高性能なプログラミング言語として注目を集めています。Googleが開発したこの言語は、特にバックエンド開発やクラウドアプリケーション、マイクロサービスにおいてその威力を発揮しています。Go言語の特徴は、シンプルな文法、高速なコンパイル時間、そして強力な並行処理機能にあります。これにより、開発者は効率的でスケーラブルなアプリケーションを迅速に構築できるようになります。この記事では、Go言語の特徴、メリット・デメリット、さらにGo言語を活用したエンジニアの年収や求人情報について詳しく解説します。

 2025年06月12日

Go言語(Golang)とは?シンプルで強力な言語の魅力と適用シーンを徹底解説

現代のソフトウェア開発において、軽量かつ高性能で、しかも学びやすいプログラミング言語が求められています。そんなニーズに応えるのが、Googleが開発したGo言語(Golang)です。Goはシンプルな構文と強力な並行処理能力を兼ね備え、クラウドネイティブや分散システムの分野で急速に存在感を高めています。本記事では、Go言語の基本的な特徴から、どんな場面で使うべきか、逆に不向きなケースまでを分かりやすく解説していきます。Goの導入を検討している方や、興味を持ち始めたエンジニアの皆様は、ぜひ参考にしてみてください。

 2025年06月10日

文字認識の流れ|機能とメリット・デメリット解説

ビジネスの現場では、日々大量の紙書類や帳票がやり取りされ、それらの情報をデジタル化する作業に多くの時間と人手がかかっています。そこで注目されているのが、OCR(光学文字認識)です。この記事では、OCRの仕組みからメリット・デメリットまで、文字認識技術の全体像をわかりやすく解説します。