このチュートリアルでは、モノリシックな node.js アプリケーションを Docker コンテナにデプロイし、ダウンタイムなしでアプリケーションをマイクロサービスに分離します。この node.js アプリケーションでは、スレッド機能付きのシンプルな掲示板とユーザー間のメッセージをホストします。
従来型のモノリシックアーキテクチャはスケーリングが困難です。アプリケーションのコードベースが拡大するにつれ、更新と維持が複雑になります。新しい機能、言語、フレームワーク、テクノロジーの導入は非常に難しくなり、イノベーションや新たな発想が制限されます。
マイクロサービスアーキテクチャ内では、各アプリケーションコンポーネントが独自のサービスとして実行され、明確に定義された API を使用して他のサービスと通信します。マイクロサービスはビジネス機能を中心に構築され、各サービスが単一の機能を実行します。マイクロサービスは、さまざまなフレームワークやプログラミング言語を使用して作成することができ、単一のサービスとして、またはサービスのグループとして個別にデプロイできます。
このチュートリアルでは、Docker コンテナ内でシンプルなモノリシックアプリケーションを実行する方法、その同じアプリケーションをマイクロサービスとしてデプロイする方法、ダウンタイムなしでトラフィックをこのマイクロサービスに切り替える方法について説明します。終了後、このチュートリアルとチュートリアルで使用されたコードをテンプレートとして使用して、コンテナ化した独自のマイクロサービスを AWS で構築しデプロイできます。


モノリシックアーキテクチャ
node.js アプリケーション全体が、単一のサービスとしてコンテナ内で実行されます。各コンテナは他のすべてのコンテナと同じ機能を持ちます。1 つのアプリケーション機能の需要が急激に増加した場合に、アーキテクチャ全体をスケールする必要があります。

マイクロサービスのアーキテクチャ
node.js アプリケーションの各機能は、コンテナ内で独立したサービスとして実行されます。サービスはスケール可能であり、他のサービスとは独立して更新できます。
完了までの時間: 2 時間
完了までのコスト: このアーキテクチャで使用する各サービスは、AWS 無料利用枠の対象となります。無料利用枠を利用できない場合、この学習過程を完了するための費用は 0.25 USD* 未満です。
使用するテクノロジー: このチュートリアルを完了するために使用するものは、以下のとおりです。
- アクティブな AWS アカウント**
- テキストエディタ: Atom (AWS 推奨)
- ブラウザ: Chrome (AWS 推奨)
- Amazon EC2
- Amazon Elastic Container Service
- Amazon Elastic Container Registry
- Amazon VPC
- AWS CloudFormation
- Elastic Load Balancing
- Docker
- Github
- node.js
*この見積もりでは、ユーザーがチュートリアル全体で推奨される構成に従い、24 時間以内にすべてのリソースを終了することを前提としています。
**過去 24 時間以内に作成されたアカウントは、このプロジェクトを完了するために必要なすべてのリソースへのアクセス権がまだ付与されていない可能性があります。