1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure Container Appsを用いてRabbitMQを起動させてみた

Last updated at Posted at 2023-05-11

はじめに

どうも、クソ雑魚のなんちゃてエンジニアです。
本記事は我がAzure Container AppsでRabbitMQを立てた際の 注意ポイント を記載していこうかと思う。
我の備忘録程度に書くのであまり期待しないでほしい。

Azure Container Appsとは?

「Azureでコンテナを複数立ててアプリを組みたい!でもkubernetesは触ったことあまりないので自信がない」
こういった層に受けるのがこのサービスではなかろうか?

RabbitMQとは?

メッセージングキューの非同期通信オープンソースである。
image.png
上記コンソールである。

環境

2023/05/11での環境である。

開発環境

  • Docker 20.10.21
  • terraform 3.55.0

本番環境

  • Azure Container Apps
  • Azure Container Registry
  • A Container Apps environment
  • Vnet

これだけ書いとけばもうわかる人にはイメージついてるのではないかと思う。

注意ポイント

【ポイント1】コンテナイメージ

これはまぁMac使いの人がハマる瞬間ですね。
MSなのでarm64でイメージを作るのは止めましょう(偏見)。以下のDockerfileのようにamd64を明示しておけばいいです。

Dockerfile
FROM --platform=linux/amd64 rabbitmq:3.11.15-management

EXPOSE 5672 15672

【ポイント2】Ingress設定

これはHTTP通信を行うコンテナ以外のコンテナを動かす際に注意しなければなりません。
redisの6379とかもそうですね。
Azure Container Appsでの外部コンテナ間TCP通信を行うには カスタムVnetを用意しないといけません。
外部公開しないのならば別に気にしなくていいのですが、
公開しない設定でもVnet上でコンテナは立てることができるので、どうせならVnetを用意しておいて損はないでしょう。
まぁキューイングサービスは外部公開しないですけどね。

以下参考。

【ポイント3】TerraformでのIngress設定

ポイント2同様、HTTP通信を行うコンテナ以外のコンテナを動かす際に注意しなければなりません。
現在Azure Container Appsでのコンテナ間通信はTCP通信をサポートしていますがTerraformさんがサポートしてくれてません。

image.png
TCPサポートしてくれているところなら以下のように書いてる。
image.png

なのでAzure Container AppsをTerraformで管理したいなら、一旦手動(Azure Portal上)で立てて以下のようにdataで取り込むのが良いと思います。

container.tf
data "azurerm_container_app" "rabbitmq" {
  name                = "rabbitmq-app"
  resource_group_name = "example-resources"
}

【ポイント4】Ingressにおける2Port設定

基本的にAzure Container Appsは1コンテナ1Portの解放構成です。
ターゲットポートの欄で設定します。
まぁコンテナはプロセスなんで1つの役割でいこうってのもわかります。
でもrabbitmqの場合は結構困ったりします。以下ように複数Port使ったりするので。

Port Number 内容
5672 メッセージの送受信(非暗号化)
15672 管理画面コンソールアクセス

この場合、TCPでのIngress設定をしたときのみの解決策があります。
公開されたポートに2つめのPortを開ければいいです。

S__10985485.jpg
以下参考

まとめ

ただの備忘録デス。
間違ってたら教えてください。
Azure Container Apps何もわからん。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?