🎼
Azure Container Apps でコンテナ間の TCP 接続を行う
Azure Container Apps にて、待望の TCP サポートが GA されました!
今までは HTTP(S) のみしかコンテナ間通信が出来なかったのですが、他の TCP ポートによる通信もできるようになりました。
手元で試してみましたので残しておこうと思います。
環境・準備
- Azure Container Apps
Azure Container Apps
下記の公式チュートリアルを参考にデプロイしておきます。
やってみた
今回のサンプルは、いつもの azure-vote-app-redis です。
バックエンド (Redis) アプリのデプロイ
Azure portal の「コンテナーアプリの作成」ページにて、下記のように設定していきます。
- コンテナーアプリ名: 任意の名前を設定します。この名前は後で使用します。
- イメージのソース: "Docker Hub またはその他のレジストリ"
- イメージの種類: "パブリック"
- レジストリ ログイン サーバー: "mcr.microsoft.com"
- レジストリ ログイン サーバー: "oss/bitnami/redis:6.0.8"
- 環境変数: "ALLOW_EMPTY_PASSWORD:yes" のキーを作成
- イングレス: "有効"
- イングレス トラフィック: "Container Apps 環境に限定"
- イングレス タイプ: "TCP"
- ターゲット ポート: "6379"
- 公開されたポート: "6379"
フロントエンドアプリのデプロイ
Azure portal の「コンテナーアプリの作成」ページにて、下記のように設定していきます。
- コンテナーアプリ名: 任意の名前を設定します。画面は割愛。
- イメージのソース: "Docker Hub またはその他のレジストリ"
- イメージの種類: "パブリック"
- レジストリ ログイン サーバー: "mcr.microsoft.com"
- レジストリ ログイン サーバー: "azuredocs/azure-vote-front:v1"
- 環境変数: "REDIS:<フロントエンドコンテナの名前>" のキーを作成
- イングレス: "有効"
- イングレス トラフィック: "どこからでもトラフィックを受け入れます"
- イングレス タイプ: "HTTP"
- セキュリティで保護されていない接続: "許可"
- ターゲット ポート: "80"
動作確認
フロントエンドアプリの画面に記載の アプリケーション URL から、接続できることを確認します。
こんな感じで投票画面が表示されていれば OK です。
Azure portal でフロントエンドアプリのログストリームを確認すると、ちゃんと REDIS 側に接続されていることも確認できます。
これ、以前は REDIS プロトコルでの TCP 接続が出来なかったので、実現できていなかったんですよね。できるようになっていました!
まとめ
ということで、Azure Container Apps のアプリ間で HTTP(S) 以外でも TCP 接続が実現できる機能が GA されました!
しかもめちゃくちゃ簡単な設定で実現でき、このあたりはさすがだなと思いました🤗
Discussion