빠른 시작: Azure Container Apps에서 Azure App Configuration 사용
이 빠른 시작에서는 Azure Container Apps에서 실행되는 앱에서 Azure 앱 구성을 사용합니다. 이렇게 하면 Container Apps에서 앱 구성의 스토리지 및 관리를 중앙 집중화할 수 있습니다. 이 빠른 시작에서는 빠른 시작: App Configuration을 사용하여 ASP.NET Core 앱 만들기에서 만든 ASP.NET Core 앱을 활용합니다. 앱을 컨테이너화하고 Azure Container Apps에 배포합니다. 계속하기 전에 빠른 시작을 완료합니다.
팁
이 빠른 시작을 수행하는 동안 모든 새 리소스를 하나의 리소스 그룹 내에 등록하는 것이 좋습니다. 그러면 모든 리소스를 한 곳에서 다시 그룹화하고 나중에 더 이상 필요하지 않으면 더 빨리 삭제할 수 있습니다.
필수 조건
- App Configuration 저장소를 사용하는 애플리케이션. 없는 경우 빠른 시작: App Configuration으로 ASP.NET Core 앱 만들기를 사용하여 인스턴스를 만듭니다.
- Azure Container Apps 인스턴스. 이 인스턴스가 없으면 Azure Portal 또는 CLI를 사용하여 Azure portal 또는 CLI를 사용하여 만듭니다.
- Docker Desktop
- Azure CLI
컨테이너 앱에 Azure App Configuration 연결
Azure Portal에서 컨테이너 앱 인스턴스로 이동합니다.
Azure Container Apps에 대한 Service Connector 빠른 시작에 따라 다음 설정을 사용하여 App Configuration 저장소에 대한 서비스 연결을 만듭니다.
기본 사항 탭에서 다음을 수행합니다.
인증 탭에서 다음을 수행합니다.
- 시스템 할당 관리 ID 인증 유형 선택
- 고급 메뉴 확장
- ID에 앱 구성 데이터 판독기 역할 할당
- 구성 정보 아래에서 라는
AZURE_APPCONFIGURATION_ENDPOINT
환경 변수를 찾습니다. 오른쪽에 있는 연필 아이콘을 선택하고 앱 구성 엔드포인트를 로드하는 애플리케이션의 변수 이름과 일치하도록 환경 변수 이름을 편집합니다. ASP.NET Core 빠른 시작 후 애플리케이션을 빌드한 경우 변수 이름은 다음과 입니다Endpoints:AppConfiguration
. 변수 이름을 편집할 때 콜론을 이중 밑줄로 바꿉니다Endpoints__AppConfiguration
. 다른 애플리케이션으로 작업하는 경우 해당 환경 변수 이름을 입력한 다음 완료를 선택합니다.
다른 모든 항목에 기본값을 사용합니다.
연결이 만들어지면 컨테이너 앱 리소스의 컨테이너에 명명된
Endpoints__AppConfiguration
환경 변수가 추가됩니다. 해당 값은 App Configuration 저장소의 엔드포인트인 컨테이너 앱 비밀에 대한 참조입니다.
컨테이너 빌드
dotnet publish 명령을 실행하여 릴리스 모드에서 앱을 빌드하고 게시된 폴더에 자산을 만듭니다.
dotnet publish -c Release -o published
.csproj 파일이 포함된 디렉터리에 Dockerfile이라는 파일을 만든 다음, 텍스트 편집기에서 열어 다음 콘텐츠를 입력합니다. Dockerfile은 확장명이 없고 컨테이너 이미지를 만드는 데 사용되는 텍스트 파일입니다.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime WORKDIR /app COPY published/ ./ ENTRYPOINT ["dotnet", "TestAppConfig.dll"]
다음 명령을 실행하여 컨테이너를 빌드합니다.
docker build --tag aspnetapp .
Azure Container Registry 인스턴스 만들기
ACR(Azure Container Registry) 만들기. ACR을 사용하면 컨테이너 이미지를 빌드, 저장, 관리할 수 있습니다.
- 컨테이너 레지스트리를 만들려면 Azure Container Registry 빠른 시작을 따릅니다.
- 배포가 완료되면 ACR 인스턴스를 열고 왼쪽 메뉴에서 설정 > 액세스 키를 선택합니다.
- 이 페이지에 나열된 로그인 서버 값을 기록해 둡니다. 이후 단계에서 이 정보가 필요합니다.
- 관리 사용자를 사용으로 전환합니다. 이 옵션을 사용하면 관리 사용자 자격 증명을 사용하여 ACR을 Azure Container Apps에 연결할 수 있습니다. 또는 사용하지 않도록 설정한 상태로 두고 관리 ID를 사용하여 레지스트리에서 이미지를 끌어오도록 컨테이너 앱을 구성할 수 있습니다.
Azure Container Registry로 이미지 푸시
이전에 만든 ACR에 Docker 이미지를 푸시합니다.
az acr login 명령을 실행하여 레지스트리에 로그인합니다.
az acr login --name myregistry
로그인에 성공하면 이 명령이
Login Succeeded
를 반환합니다.docker tag를 사용하여 이미지에 적절한 세부 정보를 태그로 지정합니다.
docker tag aspnetapp myregistry.azurecr.io/aspnetapp:v1
팁
기존 Docker 이미지 및 태그 목록을 검토하려면
docker image ls
명령을 실행합니다. 이 시나리오에서는 최소한 두 개의 이미지(aspnetapp
및myregistry.azurecr.io/aspnetapp
)가 표시됩니다.다음과 같이 docker push를 사용하여 컨테이너 레지스트리에 이미지를 푸시합니다. 이 예제에서는
aspnetapp
이미지가 포함된 ACR에 aspnetapp 리포지토리를 만듭니다. 아래 예제에서 자리 표시자<login-server
,<image-name>
및<tag>
를 ACR의 로그인 서버 값, 이미지 이름 및 이미지 태그로 바꿉니다.Method:
docker push <login-server>/<image-name>:<tag>
예시:
docker push myregistry.azurecr.io/aspnetapp:v1
Azure Portal에서 Azure Container Registry를 열고 리포지토리에서 새 리포지토리를 볼 수 있는지 확인합니다.
Azure Container Apps에 컨테이너 이미지 추가
Container App을 업데이트하여 ACR에서 컨테이너 이미지를 로드합니다.
Azure Portal에서 Azure Container Apps 인스턴스를 엽니다.
왼쪽 메뉴의 애플리케이션 아래에서 컨테이너를 선택합니다.
편집 및 배포를 선택합니다.
컨테이너 이미지에서 기존 컨테이너 이미지의 이름을 클릭합니다.
다음 설정을 업데이트합니다.
설정 제안 값 설명 이미지 원본 Azure Container Registry 이미지 원본으로 Azure Container Registry를 선택합니다. 인증 관리자 자격 증명 컨테이너 레지스트리에서 이전에 사용하도록 설정한 관리 사용자 자격 증명 옵션을 사용합니다. 관리 사용자를 사용하도록 설정하지 않았지만 관리 ID를 사용하도록 구성한 경우 양식에 이미지와 태그를 수동으로 입력해야 합니다. 등록 myregistry.azurecr.io 이전에 만든 Azure Container Registry를 선택합니다. 이미지 aspnetapp 이전에 만들어 ACR로 푸시한 Docker 이미지를 선택합니다. 이미지 태그 v1 목록에서 이미지 태그를 선택합니다. 저장을 선택한 다음, 만들기를 선택하여 Azure Container App에 업데이트를 배포합니다.
Azure Container App의 URL로 이동합니다.
Azure Portal의 Azure Container Apps 에서 개요 탭으로 이동하여 애플리케이션 URL을 엽니다.
웹 페이지는 다음과 같습니다.
리소스 정리
이 문서에서 만든 리소스를 계속 사용하지 않으려면 여기서 만든 리소스 그룹을 삭제하여 요금이 부과되지 않도록 합니다.
Important
리소스 그룹을 삭제하면 다시 되돌릴 수 없습니다. 리소스 그룹 및 포함된 모든 리소스가 영구적으로 삭제됩니다. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 합니다. 유지하려는 다른 리소스가 포함된 리소스 그룹 내에서 이 문서에 대한 리소스를 만든 경우 리소스 그룹을 삭제하는 대신 해당 창에서 각 리소스를 개별적으로 삭제합니다.
- Azure Portal에 로그인하고 리소스 그룹을 선택합니다.
- 이름으로 필터링 상자에서 리소스 그룹의 이름을 입력합니다.
- 결과 목록에서 리소스 그룹 이름을 선택하여 개요를 확인합니다.
- 리소스 그룹 삭제를 선택합니다.
- 리소스 그룹 삭제를 확인하는 메시지가 표시됩니다. 리소스 그룹의 이름을 입력하여 확인하고 삭제를 선택합니다.
잠시 후, 리소스 그룹 및 모든 해당 리소스가 삭제됩니다.
관련 콘텐츠
이 빠른 시작에서 관련 정보는 다음과 같습니다.
- Azure App Configuration을 Azure Container Apps에 연결했습니다.
- Docker를 사용하여 App Configuration 설정으로 ASP.NET Core 앱에서 컨테이너 이미지를 빌드했습니다.
- Azure Container Registry 인스턴스를 만들었습니다.
- Azure Container Registry 인스턴스로 이미지를 푸시했습니다.
- 컨테이너 이미지를 Azure Container Apps에 추가했습니다.
- App Configuration 저장소에서 구성한 설정으로 업데이트된 Azure Container Apps 인스턴스의 URL로 이동했습니다.
관리 ID를 사용하면 비밀을 유지 관리하지 않고도 한 Azure 리소스가 다른 리소스에 액세스할 수 있습니다. Container Apps에서 다른 Azure 리소스로의 액세스를 간소화할 수 있습니다. 자세한 내용은 관리 ID를 사용하여 App Configuration에 액세스하는 방법 및 관리 ID 를 사용하여 Container Registry에 액세스하는 방법을 참조하세요.
구성 설정을 동적으로 새로 고치도록 ASP.NET Core 웹앱을 구성하는 방법을 알아보려면 다음 자습서를 계속 진행하세요.