빠른 시작: Azure Database for PostgreSQL 및 Azure Cache for Redis와 통합

참고 항목

Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.

이 문서의 적용 대상:❌ 기본/표준 ✔️ 엔터프라이즈

이 빠른 시작에서는 Azure Spring Apps Enterprise 계획을 실행하는 앱에서 사용할 Azure Database for PostgreSQL 및 Azure Cache for Redis를 프로비전하고 준비하는 방법을 설명합니다.

이 문서에서는 이러한 서비스를 데모용으로 사용합니다. 이 문서의 뒷부분에 있는 서비스 커넥터 만들기 섹션과 유사한 지침을 사용하여 원하는 지원 서비스에 애플리케이션을 연결할 수 있습니다.

필수 조건

서비스 프로비전

애플리케이션에 지속성을 추가하려면 Azure Cache for Redis 및 Azure Database for PostgreSQL 유연한 서버를 만듭니다.

다음 단계에서는 Azure CLI를 사용하여 Azure Cache for Redis 인스턴스 및 Azure Database for PostgreSQL 유연한 서버를 프로비저닝하는 방법을 설명합니다.

  1. 다음 명령을 사용하여 리소스 이름을 저장할 변수를 만듭니다. 자리 표시자를 사용자의 값으로 바꿔야 합니다.

    export REGION=<region>
    export RESOURCE_GROUP=<resource-group-name>
    export REDIS_CACHE_NAME=<redis-cache-name>
    export POSTGRES_SERVER_NAME=<postgres-server-name>
    export POSTGRES_USERNAME=<postgres-username>
    export POSTGRES_PASSWORD=<postgres-password>
    export AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME=<Azure-Spring-Apps-service-instance-name>
    
  2. 다음 명령을 사용하여 Azure Cache for Redis의 인스턴스를 만듭니다.

    az redis create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${REDIS_CACHE_NAME} \
        --location ${REGION} \
        --sku Basic \
        --vm-size c0
    

    참고 항목

    Redis Cache를 만드는 데 약 20분이 걸립니다.

  3. 다음 명령을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스를 만듭니다.

    az postgres flexible-server create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${POSTGRES_SERVER_NAME} \
        --location ${REGION} \
        --admin-user ${POSTGRES_USERNAME} \
        --admin-password ${POSTGRES_PASSWORD} \
        --yes
    
  4. 다음 명령을 사용하여 다른 Azure 서비스에서 새로 만든 유연한 서버로의 연결을 허용합니다.

    az postgres flexible-server firewall-rule create \
        --rule-name allAzureIPs \
        --name ${POSTGRES_SERVER_NAME} \
        --resource-group ${RESOURCE_GROUP} \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 0.0.0.0
    
  5. 다음 명령을 사용하여 새로 만든 유연한 서버에 대한 uuid-ossp 확장을 사용하도록 설정합니다.

    az postgres flexible-server parameter set \
        --resource-group ${RESOURCE_GROUP} \
        --name azure.extensions \
        --value uuid-ossp \
        --server-name ${POSTGRES_SERVER_NAME}
    
  6. 다음 명령을 사용하여 주문 서비스 애플리케이션에 대한 데이터베이스를 만듭니다.

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_order
    
  7. 다음 명령을 사용하여 카탈로그 서비스 애플리케이션에 대한 데이터베이스를 만듭니다.

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_catalog
    

서비스 커넥터 만들기

다음 단계에서는 서비스 커넥터를 사용하여 Azure Spring Apps Enterprise 계획에서 실행되는 애플리케이션을 다른 Azure 서비스에 바인딩하는 방법을 보여 줍니다.

  1. 다음 명령을 사용하여 주문 서비스 애플리케이션에 대한 Azure Database for PostgreSQL 서비스 커넥터를 만듭니다.

    az spring connection create postgres-flexible \
        --resource-group ${RESOURCE_GROUP} \
        --target-resource-group ${RESOURCE_GROUP} \
        --connection order_service_db \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --app order-service \
        --deployment default \
        --server ${POSTGRES_SERVER_NAME} \
        --database acmefit_order \
        --secret name=${POSTGRES_USERNAME} secret=${POSTGRES_PASSWORD} \
        --client-type dotnet
    
  2. 다음 명령을 사용하여 카탈로그 서비스 애플리케이션에 대한 Azure Database for PostgreSQL 서비스 커넥터를 만듭니다.

    az spring connection create postgres-flexible \
        --resource-group ${RESOURCE_GROUP} \
        --target-resource-group ${RESOURCE_GROUP} \
        --connection catalog_service_db \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --app catalog-service \
        --deployment default \
        --server ${POSTGRES_SERVER_NAME} \
        --database acmefit_catalog \
        --secret name=${POSTGRES_USERNAME} secret=${POSTGRES_PASSWORD} \
        --client-type springboot
    
  3. 다음 명령을 사용하여 카트 서비스 애플리케이션에 대한 Azure Cache for Redis 서비스 커넥터를 만듭니다.

    az spring connection create redis \
        --resource-group ${RESOURCE_GROUP} \
        --target-resource-group ${RESOURCE_GROUP} \
        --connection cart_service_cache \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --app cart-service \
        --deployment default \
        --server ${REDIS_CACHE_NAME} \
        --database 0 \
        --client-type java
    
  4. 다음 명령을 사용하여 카탈로그 서비스 애플리케이션을 다시 로드하여 새 연결 속성을 로드합니다.

    az spring app restart \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
    
  5. 다음 명령을 사용하여 데이터베이스 연결 정보를 검색합니다.

    export POSTGRES_CONNECTION_STR=$(az spring connection show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --deployment default \
        --connection order_service_db \
        --app order-service \
        | jq '.configurations[0].value' -r)
    

    참고 항목

    Nofsql 6.0에서 SSL 확인 예외가 발생하는 경우 SSL 모드를 Require에서 VerifyFull로 변경해야 합니다. 자세한 내용은 Npgsql 6.0 릴리스 정보를 참조하세요.

  6. 다음 명령을 사용하여 주문 서비스 애플리케이션을 업데이트합니다.

    az spring app update \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --env "DatabaseProvider=Postgres" "ConnectionStrings__OrderContext=${POSTGRES_CONNECTION_STR}"
    
  7. 다음 명령을 사용하여 Redis 연결 정보를 검색하고 카트 서비스 애플리케이션을 업데이트합니다.

    export REDIS_CONN_STR=$(az spring connection show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --deployment default \
        --app cart-service \
        --connection cart_service_cache | jq -r '.configurations[0].value')
    
    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} | jq -r '.properties.url')
    
    az spring app update \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --env "CART_PORT=8080" "REDIS_CONNECTIONSTRING=${REDIS_CONN_STR}" "AUTH_URL=https://${GATEWAY_URL}"
    

애플리케이션 액세스

Spring Cloud Gateway의 URL을 검색하고 업데이트된 애플리케이션을 탐색합니다. 다음 명령의 출력을 사용하여 애플리케이션을 탐색할 수 있습니다.

export GATEWAY_URL=$(az spring gateway show \
    --resource-group ${RESOURCE_GROUP} \
    --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} | jq -r '.properties.url')

echo "https://${GATEWAY_URL}"

리소스 정리

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

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

다음 단계

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