導入


サービスの分散は、AWS開発者のための非常に有用な概念です。AWSを使用することで、クラウド上の任意の場所にアプリケーションをデプロイできます。しかし、常にbest-in-classなサービスを提供するためには、ミッションクリティカルなシステムがインフラストラクチャの分散を使用する必要があります。本稿では、AWS開発者がサービスの分散を実装するための手法について検討します。



地理的分散


AWSのインフラストラクチャは、弊社のデータセンターで提供されています。これらのデータセンターを使用して、任意のURLに部分的な内容を配信することができます。地理的分散とは、リクエストされたリソースを安全な内部ネットワークを使用せずに、最も距離の近い地域にあるデータセンターから配信することを意味します。

// 地理的分散のサンプル
// ユーザーからリクエストがあった時
if (userLocation == "europe") {
// europe データセンターのリソースを取得する
var resources = getResourcesFrom(europeDatacenter);
}


軽量な分散


AWSは、サーバレスなインフラストラクチャを提供するサービスも備えています。これにより、AWS開発者は集中型のアーキテクチャを実装する際に複数の背景プロセスを一括実行できます。AWS Lambdaなしで、AWS開発者は関数を without サーバーを使用して実行し、インフラストラクチャを低価格でスケールアップできるようになります。

// 簡素なサーバレス関数
export.handler = () => {
// 必要な処理を行う
let result = someProcessing();
return result;
}


クラウドレプリケーション


クラウドレプリケーションという技術を使用すると、AWS開発者はチームをそれぞれのプラットフォーム上で完全に同期させることができます。これにより、遠隔地の従業員も変更を受け入れができ、生産性を向上させるためのより効率的なリリースモデルを実装できます。

// クラウドレプリケーションのサンプル
async function replicateData() {
// データを同期させる
let data = await synchronizeData();
// 同期されたデータをスケーリングする
let results = await scaleData(data);
// 結果を返す
return results;
}

投稿者: systemreach_engineer