Mesh#AWSもきゅりん2021.09.12185122この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。おはようございます、もきゅりんです。再入門という体にしてみました。どちらかというと、未来の自分のための備忘録と言えます。入門されていなかった方も、すでに脱会されてしまった方も興味があれば再入門して下さい。ブラックベルトにならってまとめると以下のような機能があります。HTTP通信のリトライやタイムアウト通信のトレーシングやログ、メトリクスの取得TLSを使用した暗号化通信なるほど。それはすばらっっ!と理解できた貴方、ここまで読んで頂いてありがとうございました。この先は不要でございます。何だかそれはありがたいような気がするけど、それが何なんですかね...?という方、多分自分も同じようなモヤモヤ感を最初抱いていました。必要になってくるのかを抑えると、モヤモヤ感が薄れてくるはずです。詳しく触れられていますので、できるだけ簡潔にまとめていきます。(サービスメッシュ)が必要になるのかキーワードは「マイクロサービス」です。マイクロサービスとは、を引用します。マイクロサービスは、小さな独立した複数のサービスでソフトウェアを構成する、ソフトウェア開発に対するアーキテクチャ的、組織的アプローチです。(中略)マイクロサービスアーキテクチャでは、アプリケーションは独立した複数のコンポーネントとして構築されます。つのサービスとして個別にアプリケーションプロセスを実行します。使用した、正確に定義されたインターフェイスを通じてやり取りします。さまざまな機能がひとまとまりになっている一枚岩のモノリスアーキテクチャから、機能が一つ一つ独立されたマイクロサービス化されたアーキテクチャのイメージが下の図です。モノリスからマイクロサービスになることで必要になるものの例は以下になります。以上のことより、冒頭に挙げたような機能が必要になってきます。サービス間において直接通信するのではなく、Envoyプロキシを介して相互通信することで実現します。導入する必要はないかもしれません。要不要を検討しましょう。利用できるサービスは現在(2021/9/12)、下記になります。中心として進めていきます。Meshのコンポーネント基本的なコンポーネントは、下図に描かれているものです。(デフォルトでは、メッシュ外へのトラフィック転送しない)。他のアカウントとメッシュを共有することもできる。(図の左のサービスのように)直接的に仮想ノードによって提供されるサービス、または(図の右のサービスのように)間接的に仮想ルータを経由して仮想ノードによって提供される実際のサービスを抽象化する。Kubernetesサービスなどの検出可能なサービスへ充てる論理ポインター。プロキシとして介在する。リスナーポートやプロトコル、必要であればバックエンドを設定する。メッシュ構成を読み取り、トラフィックを設定した通りに転送、制御する。ポッド、EC2インスタンスにコンテナを追加する必要がある。外部リソースのアクセスをメッシュ内リソースとをつなぐ。統合されてルーティングするような機能。ブラックベルトをご参照下さい。ユースケースリンクのGitHubにめっちゃ色々なパターンがあります。興味のあるものをご参照下さい。ように構成の変遷をしていくため、とっかかりとして理解しやすいのではないでしょうか。Examples弊社ブログでは以下のようなものを対応しています。この環境は構築済みの前提とします。サービスで名前空間とサービス検出名が以下のように設定しました。上に名前空間とサービスレコードが作成されています。これから、以下の変更をできるだけコンソールを使って設定していきます。方がケースもとても豊富で、数回スクリプトを叩くだけで環境がお手軽に構築されて、確認できます。この節の意義としては、敢えて手動で設定していくことで何をやっているかを確認しやすくすることです。