2022/07/13

AWS App Meshとは? AWS App Meshを利用する3つのメリットを解説!

 
  

AWSとは?


AWSとは、世界中で広く包括的に採用されているクラウドプラットフォームの事です。

正式名称をAmazon web serviceといい、世界中にあるデータセンターから様々な機能のサービスを提供しています。大企業や政府機関など多種多様なユーザーが、AWSの利用によってコストの削減や俊敏性の向上を実現させています。

AWS App Meshとは?


AWS App Meshとは、サービス間で行う通信のモニタリングや管理、そしてデバッグを簡単にする事の出来るサービスです。

AWS App Meshは、追跡およびモニタリングのために、他のAWSサービスと統合し、様々なサードパーティ製のツールと使用する事が可能です。

AWS App Meshは、Amazon ECS、AWS Fargate、Amazon EKS、AWSで実行されるKubernetesの管理するマイクロサービスコンテナ、そしてAmazon EC2で実行するサービスにて使用する事ができます。

AWS App Meshの仕組み

AWS App Meshは、サービスに向けたサービスメッシュを設定して管理します。

サービスそれぞれと並行し、オープンソースであるEnvoyプロキシを行うと、各コンテナへと出入りする全ての通信の処理をするよう、AWS App Meshによってプロキシが設定されます。

AWS App Meshは、エラー率などのメトリクス、1秒あたりのアクセスを収集します。これらはStatsDコレクターを用いて、Amazon CloudWatchへとエクスポートすることが可能です。

AWS App Mesh API を使用する事で、加重もしくはパスに基づき、特定のサービスバージョンにトラフィックをルーティングすることが出来ます。

サービスメッシュとは?

サービスメッシュとは、サービス間で行う通信全ての処理をするソフトウェアレイヤーです。

サービス間の接続や、接続の管理をするための機能を提供し、サービスそれぞれのコードから独立しているので、ネットワークの枠を越えて、様々なサービス管理システムと連携することが出来ます。

AWS App Meshを利用するメリット3つ


AWS App Meshの利用をする上で、知っておきたいメリットが3つあります。エンドツーエンドの可視性を持つ点、運用の合理化が可能である点、ネットワークセキュリティの向上が可能である点です。

サービスを使いこなすためには、正しい知識を身につけて理解を深めることが大切です。それでは、1つ1つ説明していきます。

メリット1:エンドツーエンドの可視性

AWS App Meshを利用するメリットを紹介します。1つ目は、エンドツーエンドの可視性を持つ点です。

AWS App Meshは、全てのアプリケーションからのログ、トレース、メトリクスを取り込みます。

このデータは、AWS X-Ray、Amazon CloudWatch、互換性のあるAWSパートナーやコミュニティの監視、そしてトレース用のツールと掛け合わせたり、エクスポートしたりする事が出来ます。

そのため、どのサービスに発生した問題でも迅速に特定が出来、アプリケーション全体の最適化が可能なのです。

メリット2:運用の合理化

AWS App Meshを利用するメリットを紹介します。2つ目は、運用の合理化が可能である点です。

AWS App Meshは、サービス間でのトラフィックがどのように流れるか設定し、標準化するための制御機能を搭載しています。

簡単にオリジナルのトラフィックルーティングルールを実装し、デプロイの最中や障害発生後、そしてアプリケーションのスケーリング中に、サービスの可用性を維持する事が出来ます。

これによって、サービスそれぞれの通信プロトコル設定、コードの記述、そしてライブラリの実装をすることなく、アプリケーションの運用が出来ます。

メリット3:ネットワークセキュリティの向上

AWS App Meshを利用するメリットを紹介します。3つ目は、ネットワークセキュリティを向上させる事が出来る点です。

AWS App Meshは、プライベートネットワークにサービスがある場合も、サービス間の全てのリクエストを暗号化することが出来ます。そして、認証制御の追加をする事で、許可したサービスのみを相互に通信出来るようにすることも出来ます。

AWSサービスとの統合


AWS App Meshは、モニタリングや追跡のため、AWS のサービスと統合して使われます。

Amazon ECS(Elastic Container Service)やAWS Fargate 、Amazon EKS(Elastic Container Service for Kubernetes)、Amazon EC2 で実行されるサービスと、どのように連携するのかを解説していきます。

Amazon ECS やAWS Fargateとの連携

Amazon ECS(Elastic Container Service)やAWS Fargateが、どのようにAWS App Meshと連携するのか説明します。

AWS App Meshでは、Amazon ECS やAWS Fargateで管理されるアプリケーションに向けた通信や観測、管理機能を提供します。

タスク定義にEnvoyプロキシイメージを追加すると、AWS App Meshは、サービスメッシュ機能の提供をするようにEnvoy設定を管理します。

AWS App Meshは、提供したEnvoyブートストラップ設定によって指定されるエンドポイントに、メトリクス、ログ、トレースのエクスポートをします。

AWS App Meshは、メッシュに対応したマイクロサービス間にて、トラフィックルーティングの制御を設定するAPIを使用する事が出来ます。

Amazon EKSとの連携

AWS App Meshが、Amazon EKS(Elastic Container Service for Kubernetes)とどのように連携するのか説明します。

オープンソースであるAWS App Meshコントローラーもしくは、ミューテートしたwebhookアドミッションコントローラーを使って下さい。

このコントローラーにより、AWS App Mesh にKubernetesサービスが接続され、確実にEnvoyプロキシがポッドへと入ります。

AWS App Meshは、Envoyブートストラップの設定で指定されたエンドポイントに、メトリクス、ログ、トレースのエクスポートをします。

AWS App Meshでは、メッシュに対応しているマイクロサービスの間で、トラフィックルーティングの制御を設定するAPIを使用する事が出来ます。

Amazon EC2 で実行されるサービスとの連携

AWS App Meshでは、Amazon EC2によって実行されるサービスと、どのように連携するのかを説明します。

EC2インスタンスを使って、Envoyプロキシをプロセスもしくはコンテナとして実行して下さい。

AWSの提供するコンテナプロキシであるinitコンテナを使うか、オリジナルのスクリプトを実行し、プロキシを経由してインスタンスのネットワークトラフィックを転送します。

AWS App Meshは、サービスメッシュ機能の提供をするようにEnvoy設定を管理します。AWS App Meshは、Envoyブートストラップの設定で指定されたエンドポイントに、メトリクス、ログ、トレースのエクスポートをします。

AWS App Meshでは、メッシュに対応しているマイクロサービスの間で、トラフィックルーティングの制御を設定するAPIを使用する事が出来ます。

AWS App Meshを活用してみよう!


この記事では、AWS App Meshについて説明してきました。AWS App Meshを利用する事で、コードを新しく書いたり、AWSインフラストラクチャを追加で実行したりせずとも、サービス間での通信を簡単に管理する事が出来ます。

興味を持たれた方は、是非とも実際にAWS App Meshを活用してみて下さい。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】