Azure MinIO Gateway를 사용할 때 GitLab 차트

MinIO는 S3와 호환되는 API를 노출하는 객체 저장소 서버로, Azure Blob Storage로의 요청을 프록시로 전달하는 게이트웨이 기능을 갖추고 있습니다. 우리의 게이트웨이를 설정하기 위해 Azure의 Web App on Linux를 활용하겠습니다.

시작하려면 Azure CLI가 설치되어 있고 (az login으로) 로그인되어 있는지 확인하세요. 이미 Resource group이 없다면 리소스 그룹을 생성하세요:

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+..."
}

Web App on Linux에 MinIO 배포

먼저, 동일한 리소스 그룹에 App Service Plan을 생성해야 합니다.

az appservice plan create \
    --name "gitlab-azure-minio-app-plan" \
    --is-linux \
    --sku B1 \
    --resource-group "gitlab-azure-minio" \
    --location "WestUS"

minio/minio 도커 컨테이너를 구성한 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_KEYMINIO_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"

# 시작 명령
az webapp config set \
    --startup-file "gateway azure" \
    --name "gitlab-minio-app" \
    --resource-group "gitlab-azure-minio"

결론

이 게이트웨이를 s3-compatible 클라이언트와 함께 사용할 수 있습니다. 웹 애플리케이션의 URL이 s3 엔드포인트, 스토리지 계정 이름이 accesskey, 스토리지 계정 키가 secretkey가 될 것입니다.

참고

본 가이드는 Alessandro Segala의 블로그 게시물을 바탕으로 하여 영구적으로 적용되었습니다.