빠른 시작: 배포 자동화

참고 항목

기본, 표준엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.

표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.

이 문서의 적용 대상:❌ 기본/표준 ✔️ Enterprise

이 빠른 시작에서는 GitHub Actions 및 Terraform을 사용하여 Azure Spring Apps Enterprise 플랜에 대한 배포를 자동화하는 방법을 보여줍니다.

필수 조건

GitHub 리포지토리 설정 및 인증

샘플 애플리케이션과 연결된 자동화에는 Terraform 상태를 유지하기 위한 Storage 계정이 필요합니다. 다음 단계에서는 GitHub Actions 및 Terraform에서 사용할 스토리지 계정을 만드는 방법을 보여 줍니다.

  1. 다음 명령을 사용하여 스토리지 계정을 포함할 새 리소스 그룹을 만듭니다.

    az group create \
        --name <storage-resource-group> \
        --location <location>
    
  2. 다음 명령을 사용하여 스토리지 계정을 만듭니다.

    az storage account create \
        --resource-group <storage-resource-group> \
        --name <storage-account-name> \
        --location <location> \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. 다음 명령을 사용하여 스토리지 계정 내에 스토리지 컨테이너를 만듭니다.

    az storage container create \
        --resource-group <storage-resource-group> \
        --name terraform-state-container \
        --account-name <storage-account-name> \
        --auth-mode login
    
  4. 다음 명령을 사용하여 Azure 자격 증명을 가져옵니다. Azure 로그인 작업에 권한을 부여하려면 Azure 서비스 사용자 자격 증명이 필요 합니다.

    az login
    az ad sp create-for-rbac \
        --role contributor \
        --scopes /subscriptions/<SUBSCRIPTION_ID> \
        --json-auth
    

    명령은 JSON 개체를 출력해야 합니다.

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        ...
    }
    
  5. 이 예제에서는 GitHub의 fitness 스토어 샘플을 사용합니다. 샘플을 포크하고 GitHub 리포지토리 페이지를 연 다음 설정 탭을 선택합니다. 다음 스크린샷과 같이 비밀 메뉴를 열고 새 비밀 추가를 선택합니다.

    GitHub 설정 새 비밀 추가를 보여 주는 스크린샷

  6. 비밀 이름을 AZURE_CREDENTIALS로 설정하고 해당 값을 GitHub 리포지토리 설정 및 인증이라는 제목 아래에서 찾은 JSON 문자열로 설정합니다.

    GitHub 설정 설정 비밀 데이터를 보여 주는 스크린샷

  7. GitHub Actions에 다음 비밀을 추가합니다.

  8. 다음 값을 사용하여 GitHub Actions에 TF_BACKEND_CONFIG 비밀을 추가합니다.

    resource_group_name  = "<storage-resource-group>"
    storage_account_name = "<storage-account-name>"
    container_name       = "terraform-state-container"
    key                  = "dev.terraform.tfstate"
    

GitHub Actions로 자동화

이제 리포지토리에서 GitHub Actions를 실행할 수 있습니다. 프로비전 워크플로는 예제 애플리케이션을 실행하는 데 필요한 모든 리소스를 프로비전합니다. 다음 스크린샷은 실행 예제를 보여줍니다.

프로비전 워크플로의 출력을 보여 주는 GitHub의 스크린샷

각 애플리케이션에는 해당 애플리케이션을 변경할 때 애플리케이션을 다시 배포하는 배포 워크플로가 있습니다. 다음 스크린샷은 카탈로그 서비스의 몇 가지 예제 출력을 보여줍니다.

카탈로그 배포 워크플로의 출력을 보여 주는 GitHub의 스크린샷

정리 워크플로를 수동으로 실행하여 provision 워크플로에서 만든 모든 리소스를 삭제할 수 있습니다. 다음 스크린샷은 출력을 보여 줍니다.

정리 워크플로의 출력을 보여 주는 GitHub의 스크린샷

리소스 정리

후속 빠른 시작 및 자습서를 계속 사용하려는 경우 이러한 리소스를 그대로 유지할 수 있습니다. 더 이상 필요 없으면 리소스 그룹을 삭제합니다. 그러면 리소스 그룹의 리소스가 삭제됩니다. Azure CLI를 사용하여 리소스 그룹을 삭제하려면 다음 명령을 사용합니다.

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

다음 단계

다음 중 원하는 빠른 시작을 계속 진행합니다.