【図解】AWSでマイクロサービスを実現する方法【コンテナサービスの利用】

★悩み★
・AWSでマイクロサービスってできるのだろうか。
・AWSでマイクロサービスを実現する方法を知りたいなぁ。
・AWSでのマイクロサービスを利用するユースケースを知りたいなぁ。

こういった「悩み」に答えます。

★本記事の内容★
(1) マイクロサービスとは何か?を徹底解説
(2) AWSでマイクロサービスを実現する方法をご紹介

これからご紹介する「AWSでマイクロサービスを実現する方法」を理解しておくことで、「AWS 認定 ソリューションアーキテクト アソシエイト」の資格に合格しやすくなります。

本記事の前半では「マイクロサービスとは何か?」を具体的に解説し、本記事の後半では「AWSでマイクロサービスを実現する方法」をご紹介します。

この記事を読み終えることで、「AWSでマイクロサービスをどのようにして実現するのか」を理解した状態になります。

「AWSとは何か?」や「AWSの基礎的なサービスは何か?」を知りたい方は、以下の記事をご覧ください。

マイクロサービスとは何か?

マイクロサービスと何か?を説明します。

マイクロサービスは、以下の定義になります。

★マイクロサービスとは★
アプリケーションの構成要素を独立したサービス群 (マイクロサービス) へと分け、連携させる手法です。

参照:マイクロサービスとは

マイクロサービスでないアプリ(モノシリックなアプリ)とマイクロサービスなアプリの構成に関して下図に示します。


モノシリックなアプリの場合、ある一部の機能(上図の例だと「分析」)が異常終了した場合、他の機能(上図の例だと「認証」と「ユーザ管理」)が使えなくなる可能性があります。

マイクロサービスなアプリだと、機能ごとにREST APIなどで疎結合しているため、ある機能が異常終了したことでその他機能が停止することはありません。

以上が、「マイクロサービスとは何か?」になります。

AWSでマイクロサービスを実現する方法

AWSでマイクロサービスを実現する方法をご紹介します。

マイクロサービスは、サービス単位で1つのアプリケーションにします。

サービス単位で1つのアプリケーションを作るということから、コンテナ技術を利用します。

まずは、「コンテナ技術とは何か?」を解説しつつ、「AWSでのマイクロサービス」に関して説明します。

コンテナ技術とは何か?【マイクロサービスを実現する手段】

コンテナ技術とは何か?に関して説明します。

★コンテナ技術とは?★
OS上に他のプロセスからは隔離されたアプリケーション実行環境を構築することで、仮想的な動作環境をより少ないコンピュータリソースで実現する技術のことである。

参照元:コンテナ技術の定義

コンテナ技術を使うことで、以下のメリットがあります。

★コンテナ技術のメリット★
・コンテナ化されたアプリケーションを高速に起動可能
・コンテナ化されたアプリケーションのバージョン管理が容易
・異なる環境で信頼性を損なわずに実行可能(高いポータビリティ)

コンテナと仮想マシンの違いは、下図のように仮想化を実現する方法で異なります。

★コンテナと仮想マシンの違い★
・ハイパーバイザーを利用しないため、コンテナは仮想マシンより起動が早い。
・Dockerエンジンがあれば、他マシンで作成したコンテナを起動できる。
・コンテナは、Linuxのカネールバージョンが同じ(もしくは互換性があるカーネル)環境であれば、どこでも動く。
 → Windowsで動いたコンテナがLinuxで動くことは保証していない。


以上が、「コンテナ技術とは何か?」となります。

AWSでのコンテナサービス【マイクロサービス実現方法】

AWSでのコンテナサービスに関して説明します。

AWSでのコンテナサービスとして、以下のサービスがあります。

★AWSでのコンテナサービス★
・Amazon Elastic Container Service
・Amazon Elastic Kubernetes Service
・AWS Fargate

各サービスに関してご紹介します。

Amazon Elastic Container Service

AWSでのコンテナサービスの1つとして、Amazon Elastic Container Service(略称は、ECS)があります。

★Amazon Elastic Container Serviceとは★
ECSを利用することで、複数のコンテナを管理することができます。
ECSを利用することで、Dockerコンテナを簡単に実行停止ができます。

ECSを利用することで、リクエストしたコンテナを適切な場所で実行してくれます。

配備したコンテナが以上終了した場合、Auto Scalingと連携することで、新しいコンテナを割り当て起動することができます。


以上が、「Amazon Elastic Container Service」となります。

Amazon Elastic Kubernetes Service

AWSでのコンテナサービスの1つとして、Amazon Elastic Kubernetes Service(略称は、EKS)があります。

★Amazon Elastic Kubernetes Serviceとは★
Amazon Elastic Container Serviceと同様な機能を有しています。
Amazon Elastic Kubernetes Serviceは、OSSであるKubernetesをサービスとして提供したものです。
そのため、Kubernetesと互換性があります。

以上が、「Amazon Elastic Kubernetes Service」となります。

AWS Fargate

Amazon Elastic Container ServiceとAmazon Elastic Kubernetes Serviceの運用を簡単にしてくれるサービスとして、AWS Fargateがあります。

★AWS Fargateとは★
・フルマネージド型のコンテナサービス
・コンテナを実行する仮想マシンを自動でプロビジョニング
・自動でスケーリング

ECSやEKSでFargateを利用しない場合、ユーザーがコンテナを実行する仮想マシンを手動で準備する必要がありました。

AWS Fargateを使うことで、コンテナを実行する仮想マシンの自動プロビジョニングや自動でスケーリングが可能となります。

引用元:AWS公式サイト


ECSやEKSの準備や管理を手軽にしたい場合は、AWS Fargateを利用することも検討しましょう。

以上が、「AWSでのコンテナサービス」となります。

【まとめ】AWSでマイクロサービスを実現する方法

今回の記事を通して、「AWSでマイクロサービスを実現」をご紹介することで、以下の悩みを解消しました。

★悩み★
・AWSでマイクロサービスってできるのだろうか。
・AWSでマイクロサービスを実現する方法を知りたいなぁ。
・AWSでのマイクロサービスを利用するユースケースを知りたいなぁ。

AWSでマイクロサービス化したいなぁ」と思い悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

 

 


 

コメント