AWS Copilot、Amazon ECS、Docker、AWS Fargate を使用してモノリシックアプリケーションをマイクロサービスに分割する

チュートリアル

はじめに

概要

このチュートリアルでは、モノリシックな ノード.js アプリケーションを Docker コンテナにデプロイし、ダウンタイムなしでアプリケーションをマイクロサービスに分離します。このノード.js アプリケーションでは、スレッド機能付きのシンプルな掲示板とユーザー間のメッセージをホストします。

これが重要な理由

従来型のモノリシックアーキテクチャはスケーリングが困難です。アプリケーションのコードベースが拡大するにつれ、更新と維持が複雑になります。新しい機能、言語、フレームワーク、テクノロジーの導入は非常に難しくなり、イノベーションや新たな発想が制限されます。

マイクロサービスアーキテクチャ内では、各アプリケーションコンポーネントは独自のサービスとして動作し、明確に定義された API を介して他のサービスと通信します。マイクロサービスはビジネス機能を中心に構築され、各サービスが単一の機能を実行します。マイクロサービスは、さまざまなフレームワークやプログラミング言語を使用して作成することができ、単一のサービスとして、またはサービスのグループとして個別にデプロイできます。

実行する内容

このチュートリアルでは、Docker コンテナ内でシンプルなモノリシックアプリケーションを実行する方法、その同じアプリケーションをマイクロサービスとしてデプロイする方法、ダウンタイムなしでトラフィックをこのマイクロサービスに切り替える方法について説明します。終了後、このチュートリアルとチュートリアルで使用されたコードをテンプレートとして使用して、コンテナ化した独自のマイクロサービスを AWS で構築しデプロイできます。

モノリシックアーキテクチャ

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

マイクロサービスアーキテクチャ

ノード.js アプリケーションの各機能は、コンテナ内で独立したサービスとして実行されます。サービスはスケール可能であり、他のサービスとは独立して更新できます。

前提条件

  • AWS アカウント: アカウントをまだお持ちでない場合は、「 AWS 環境のセットアップ」チュートリアルに従うことで、概要を短時間で確認できます。
  • AWS CLI をインストールして設定します
  • AWS Copilot をインストールして設定します
  • Dockerをインストール して設定する
  • テキストエディタ。このチュートリアルでは VS Code を使用しますが、お好みの IDE を使用できます。

 AWS エクスペリエンス

中級コース

 最短所要時間

110 分

 完了までにかかるコスト

無料利用枠の対象

 必要なもの

  • AWS アカウント: アカウントをまだお持ちでない場合は、「AWS 環境のセットアップ」チュートリアルに従うことで、概要を短時間で確認できます。
  • AWS CLI をインストールして設定します。
  • AWS Copilot をインストールして設定します。
  • Dockerをインストールして設定する
  • テキストエディタ。このチュートリアルでは VS Code を使用しますが、お好みの IDE を使用できます。 

 利用するサービス

 最終更新日

2023 年 3 月 31 日

モジュール

このチュートリアルは次の短いモジュールに分かれています。各モジュールを完了してから次のモジュールに進む必要があります。

  1. セットアップ (20 分): このモジュールでは、AWS CLI のインストールと設定、AWS Copilot のインストール、Docker のインストールを行います。
  2. モノリスのコンテナ化とデプロイ (30 分): このモジュールでは、アプリケーションをコンテナ化し、AWS Copilot を使用して EC2 コンピューティングインスタンスのマネージドクラスターをインスタンス化し、そのクラスター上で実行されるコンテナとしてイメージをデプロイします。
  3. モノリスを壊す (20 分): このモジュールでは、ノード.js アプリケーションを相互に接続された複数のサービスに分割し、各サービスのイメージを Amazon Elastic Container Registry (Amazon ECR) リポジトリにプッシュします。
  4. マイクロサービスのデプロイ (30 分): このモジュールでは、ノード.js アプリケーションを、Application Load Balancer (ALB) の背後に相互接続されたサービスのセットとしてデプロイします。次に、ALB を使用し、トラフィックをモノリスからマイクロサービスにシームレスに移行します。
  5. クリーンアップ (10 分): このモジュールでは、チュートリアル中に作成したリソースを終了します。Amazon ECS で実行されているサービスを停止し、ALB を削除し、AWS CloudFormation スタックを削除して、基盤となるすべての EC2 インスタンスを含む Amazon ECS クラスターを終了します。

このページは役に立ちましたか?