자습서: Visual Studio를 사용하여 Azure Container Apps에 배포

Azure Container Apps를 사용하면 서버리스 플랫폼에서 마이크로서비스 및 컨테이너화된 애플리케이션을 실행할 수 있습니다. Container Apps를 사용하면 클라우드 인프라와 복잡한 컨테이너 오케스트레이터를 수동으로 구성해야 하는 걱정을 버리고 컨테이너를 실행하는 이점을 누릴 수 있습니다.

이 자습서에서는 Visual Studio를 사용하여 컨테이너화된 ASP.NET Core 6.0 애플리케이션을 Azure Container Apps에 배포합니다. 아래 단계는 이전 버전의 ASP.NET Core에도 적용됩니다.

필수 조건

  • 활성 구독이 있는 Azure 계정이 필요합니다. 계정이 아직 없는 경우 체험 계정을 만들 수 있습니다.
  • Visual Studio 2022 버전 17.2 이상 - 무료 다운로드로 사용 가능합니다.

프로젝트 만들기

먼저 Azure에 배포할 컨테이너화된 ASP.NET Core 애플리케이션을 만듭니다.

  1. Visual Studio 내에서 파일을 선택한 다음, 새로 만들기 => 프로젝트를 차례로 선택합니다.

  2. 대화 상자 창에서 ASP.NET을 검색한 다음, ASP.NET Core 웹앱, 다음을 차례로 선택합니다.

  3. 프로젝트 이름 필드에서 애플리케이션 이름을 MyContainerApp으로 지정하고, 다음을 선택합니다.

  4. 추가 정보 화면에서 Docker 사용을 선택한 다음, Docker OS 설정에 대해 Linux가 선택되어 있는지 확인합니다. Azure Container Apps는 현재 Windows 컨테이너를 지원하지 않습니다. 이 선택을 통해 프로젝트 템플릿에서 기본적으로 컨테이너화를 지원할 수 있습니다. 사용하도록 설정되어 있는 동안 프로젝트에서 실행 중이거나 빌드할 때 컨테이너를 사용합니다.

  5. 만들기를 클릭합니다. 그러면 Visual Studio에서 프로젝트를 만들고 로드합니다.

A screenshot showing to enable docker.

Azure Container Apps에 배포

프로젝트 템플릿에서 [Docker 사용] 설정이 선택되었으므로 애플리케이션에 Dockerfile이 포함되어 있습니다. Visual Studio는 Dockerfile을 사용하여 Azure Container Apps에서 실행되는 컨테이너 이미지를 빌드합니다.

이 프로세스의 세부 정보에 대한 자세한 내용은 Visual Studio에서 컨테이너화된 앱을 빌드하는 방법을 참조하세요.

이제 애플리케이션을 Azure Containers Apps에 배포할 준비가 되었습니다.

리소스 만들기

Visual Studio 게시 대화 상자는 기존 Azure 리소스를 선택하거나 애플리케이션을 배포하는 데 사용할 새 리소스를 만드는 데 도움이 됩니다. 또한 프로젝트에서 Dockerfile을 사용하여 컨테이너 이미지를 빌드하고, 이 이미지를 ACR에 푸시한 다음, 마지막으로 새 이미지를 선택한 컨테이너 앱에 배포합니다.

  1. 마우스 오른쪽 단추로 MyContainerApp 프로젝트 노드를 클릭하고, 게시를 선택합니다.

  2. 대화 상자의 게시 옵션 목록에서 Azure를 선택하고, 다음을 선택합니다.

    A screenshot showing to publish to Azure.

  3. 특정 대상 화면에서 Azure Container Apps(Linux)를 선택하고, 다음을 다시 선택합니다.

    A screenshot showing Container Apps selected.

  4. 다음으로 프로젝트를 호스트할 Azure Container App을 만듭니다. 오른쪽에서 녹색 더하기 아이콘을 선택하여 만들기 대화 상자를 엽니다. 새로 만들기 대화 상자에서 다음 값을 입력합니다.

    • Container App 이름: msdocscontainerapp의 이름을 입력합니다.
    • 구독 이름: 앱을 호스트할 구독을 선택합니다.
    • 리소스 그룹: 리소스 그룹은 Azure에서 관련 리소스를 구성하는 논리 컨테이너 역할을 합니다. 기존 리소스 그룹을 선택하거나 새로 만들기를 선택하여 선택한 이름(예: msdocscontainerapps)의 리소스 그룹을 만들 수 있습니다.
    • Container Apps 환경: 모든 컨테이너 앱은 컨테이너 앱 환경의 일부여야 합니다. 환경에서는 하나 이상의 컨테이너 앱에 대해 격리된 네트워크를 제공하므로 서로 쉽게 호출할 수 있습니다. 새로 만들기를 클릭하여 컨테이너 앱 환경에 대한 [새로 만들기] 대화 상자를 엽니다. 기본값을 그대로 두고, 확인을 선택하여 환경 대화 상자를 닫습니다.
    • 컨테이너 이름: 이 컨테이너 앱에 대해 실행할 컨테이너의 이름입니다. 이 빠른 시작에서는 msdocscontainer1이라는 이름을 사용합니다. 컨테이너 앱은 일반적으로 단일 컨테이너를 실행하지만, 둘 이상의 컨테이너가 필요한 경우가 있습니다. 이러한 한 가지 예는 특수 로깅 또는 통신과 같은 작업을 수행하기 위해 사이드카 컨테이너가 필요한 경우입니다.

    A screenshot showing how to create new Container Apps.

  5. 만들기를 선택하여 만들기 또는 컨테이너 앱을 완료합니다. Visual Studio 및 Azure에서 사용자를 대신하여 필요한 리소스를 만듭니다. 이 프로세스에는 몇 분 정도 걸릴 수 있으므로 실행이 완료될 때까지 기다린 후에 계속 진행합니다.

  6. 리소스가 만들어지면 다음을 선택합니다.

    A screenshot showing how to select the created resource.

  7. 레지스트리 화면에서 있는 경우 기존 레지스트리를 선택하거나 새 레지스트리를 만들 수 있습니다. 새 레지스트리를 만들려면 오른쪽에서 녹색 + 아이콘을 클릭합니다. 새 레지스트리 만들기 화면에서 다음 값을 입력합니다.

    • DNS 접두사: msdocscontainerregistry 선택한 값 또는 이름을 입력합니다.
    • 구독 이름: 사용하려는 구독을 선택합니다. 하나만 선택할 수 있습니다.
    • 리소스 그룹: 이전에 만든 msdocs 리소스 그룹을 선택합니다.
    • Sku: 표준을 선택합니다.
    • 레지스트리 위치: 지리적으로 가까운 지역을 선택합니다.

    A screenshot showing how to create the container registry.

  8. 이러한 값이 채워지면 만들기를 선택합니다. Visual Studio 및 Azure에서 레지스트리를 만드는 데 약간의 시간이 걸립니다.

  9. 컨테이너 레지스트리가 만들어지면 해당 레지스트리가 선택되어 있는지 확인한 다음, 마침을 선택합니다. Visual Studio에서 게시 프로필을 만드는 데 약간의 시간이 걸립니다. 이 게시 프로필은 VS에서 선택한 게시 옵션과 리소스를 저장하는 위치이므로 원할 때마다 빠르게 다시 게시할 수 있습니다. 완료되면 대화 상자를 닫을 수 있습니다.

    A screenshot showing how select the created registry.

Visual Studio를 사용하여 앱 게시

리소스 및 게시 프로필을 만드는 동안 여전히 앱을 Azure에 게시하고 배포해야 합니다.

게시 프로필 화면의 오른쪽 위에서 게시를 선택하여 Azure에서 만든 컨테이너 앱에 배포합니다. 이 프로세스에는 약간의 시간이 걸릴 수 있으므로 완료될 때까지 기다립니다.

A screenshot showing how to publish the app.

앱에서 배포가 완료되면 Visual Studio에서 배포된 사이트의 URL에 대한 브라우저를 엽니다. 모든 적절한 리소스에서 프로비전을 완료하지 않은 경우 처음에는 이 페이지에 오류가 표시될 수 있습니다. 브라우저를 주기적으로 계속 새로 고쳐 배포가 완전히 완료되었는지 확인할 수 있습니다.

A screenshot showing the published site.

GitHub Actions를 사용하여 앱 게시

Container Apps는 프로젝트의 GitHub 리포지토리를 통해 직접 개발 워크플로를 자동화, 사용자 지정 및 실행하는 강력한 도구인 GitHub Actions를 통해 CI/CD를 사용하여 배포할 수도 있습니다.

Visual Studio에서 게시 중인 프로젝트가 GitHub에서 호스트되는 것을 감지하면 게시 흐름에 추가 배포 유형 단계가 표시됩니다. 이 단계에서는 개발자가 빠른 시작의 앞부분에서 표시한 단계를 사용하여 Visual Studio를 통해 직접 게시할지 아니면 GitHub Actions 워크플로를 통해 게시할지 여부를 선택할 수 있습니다.

A screenshot showing the deployment type.

GitHub Actions 워크플로를 선택하면 Visual Studio에서 내부에 생성된 YAML 파일과 함께 .github 폴더를 프로젝트의 루트 디렉터리에 추가합니다. YAML 파일에는 코드를 푸시할 때마다 앱을 빌드하고 Azure에 배포하는 GitHub Actions 구성이 포함되어 있습니다.

코드가 변경되고 푸시되면 GitHub의 작업 탭 아래에서 빌드 및 배포 프로세스의 진행률을 확인할 수 있습니다. 이 페이지에서는 워크플로의 진행률 및 상태에 대한 자세한 로그와 지표를 제공합니다.

A screenshot showing GitHub actions.

빌드 및 배포 작업 옆에 녹색 확인 표시가 표시되면 워크플로가 완료된 것입니다. Container Apps 사이트로 이동하면 최신 변경 내용이 적용된 것을 볼 수 있습니다. 컨테이너 앱의 URL은 항상 Azure Portal 페이지를 사용하여 찾을 수 있습니다.

리소스 정리

이 애플리케이션을 계속 사용하지 않으려면 리소스 그룹을 제거하여 Azure Container Apps 인스턴스 및 모든 관련 서비스를 삭제할 수 있습니다.

Azure Portal에서 다음 단계에 따라 만든 리소스를 제거합니다.

  1. 개요 섹션에서 msdocscontainerapps 리소스 그룹을 선택합니다.
  2. 리소스 그룹 개요 위쪽에서 리소스 그룹 삭제 단추를 선택합니다.
  3. 'my-container-apps'를 삭제하시겠나요? 확인 대화 상자에서 msdocscontainerapps라는 리소스 그룹 이름을 입력합니다.
  4. 삭제를 선택합니다.
    리소스 그룹을 삭제하는 프로세스를 완료하는 데 몇 분 정도 걸릴 수 있습니다.

문제가 있나요? Azure Container Apps 리포지토리에서 문제를 열어 GitHub에 알려주세요.

다음 단계