다음을 통해 공유


빠른 시작: 배포 자동화

참고 항목

기본, 표준엔터프라이즈 계획은 2025년 3월 17일에 사용 중지 기간에 들어갔습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.

❎ 적용됩니다.

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

필수 조건

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
  • Azure CLI 버전 2.45.0 이상.
  • Git
  • jq
  • Azure Spring Apps Enterprise 계획 확장입니다. 다음 명령을 사용하여 이전 버전을 제거하고 최신 엔터프라이즈 플랜 확장을 설치합니다. 이전에 spring-cloud 확장을 설치한 경우 구성 및 버전 불일치를 방지하기 위해 이 확장을 제거합니다.
    az extension add --upgrade --name spring
    az extension remove --name spring-cloud
    

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에 다음 비밀을 추가합니다.

    • TF_PROJECT_NAME: 선택한 값을 사용합니다. 이 값은 Terraform 프로젝트의 이름이 됩니다.
    • AZURE_LOCATION: 리소스가 생성될 Azure 지역입니다.
    • OIDC_JWK_SET_URI: JWK_SET_URI에 정의된 를 사용합니다.
    • OIDC_CLIENT_ID: CLIENT_ID에 정의된 를 사용합니다.
    • OIDC_CLIENT_SECRET: CLIENT_SECRET에 정의된 를 사용합니다.
    • OIDC_ISSUER_URI: ISSUER_URI에 정의된 를 사용합니다.
  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 ..."

다음 단계

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