GitLabチャート使用時のAzure MinIOゲートウェイ
MinIOはS3互換のAPIを公開するオブジェクトストレージサーバーで、Azure Blob Storageへのリクエストをプロキシするゲートウェイ機能を持っています。ゲートウェイをセットアップするために、Linux上のAzureのWebアプリを利用します。
まず、Azure CLI をインストールし、ログインしていることを確認してください (az login
)。リソースグループを作成してください:
az group create --name "gitlab-azure-minio" --location "WestUS"
ストレージアカウント
リソースグループにストレージアカウントを作成します。ストレージアカウント名はグローバルに一意でなければなりません:
az storage account create \
--name "gitlab-azure-minio-storage" \
--kind BlobStorage \
--sku Standard_LRS \
--access-tier Cool \
--resource-group "gitlab-azure-minio" \
--location "WestUS"
ストレージアカウントのアカウントキーを取得します:
az storage account show-connection-string \
--name "gitlab-azure-minio-storage" \
--resource-group "gitlab-azure-minio"
出力は以下の形式です:
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=gitlab-azure-minio-storage;AccountKey=h0tSyeTebs+..."
}
MinIOをLinux上のウェブアプリにデプロイします。
まず、同じリソースグループにアプリサービスプランを作成する必要があります。
az appservice plan create \
--name "gitlab-azure-minio-app-plan" \
--is-linux \
--sku B1 \
--resource-group "gitlab-azure-minio" \
--location "WestUS"
minio/minio
Dockerコンテナで設定したWebアプリを作成します。指定した名前はWebアプリのURLに使用されます:
az webapp create \
--name "gitlab-minio-app" \
--deployment-container-image-name "minio/minio" \
--plan "gitlab-azure-minio-app-plan" \
--resource-group "gitlab-azure-minio"
これでウェブアプリはhttps://gitlab-minio-app.azurewebsites.net
でアクセスできるようになります。
最後に、起動コマンドを設定し、ウェブアプリで使用するストレージアカウント名とキーを格納する環境変数MINIO_ACCESS_KEY
とMINIO_SECRET_KEY
を作成する必要があります。
az webapp config appsettings set \
--settings "MINIO_ACCESS_KEY=gitlab-azure-minio-storage" "MINIO_SECRET_KEY=h0tSyeTebs+..." "PORT=9000" \
--name "gitlab-minio-app" \
--resource-group "gitlab-azure-minio"
# Startup command
az webapp config set \
--startup-file "gateway azure" \
--name "gitlab-minio-app" \
--resource-group "gitlab-azure-minio"
結論
このゲートウェイは、s3-compability を持つ任意のクライアントで使用することができます。ウェブアプリケーションのURLはs3 endpoint
、ストレージアカウント名はaccesskey
、ストレージアカウントキーはsecretkey
となります。
リファレンス
このガイドは、Alessandro Segalaの同じトピックに関するブログ記事を後世に伝えるために改編したものです。