랩 14: 컨테이너화된 솔루션 구현

Microsoft Azure 사용자 인터페이스

Microsoft 클라우드 도구의 동적 특성을 고려할 때 이 교육 콘텐츠를 개발한 후 발생하는 Azure UI 변경이 발생할 수 있습니다. 따라서 랩 지침 및 랩 단계가 올바르게 정렬되지 않을 수 있습니다.

Microsoft는 커뮤니티에서 변경해야 할 사항이 있음을 알려줄 때 이 학습 과정을 업데이트합니다. 그러나 클라우드 업데이트가 자주 이루어지기 때문에 이 학습 콘텐츠가 업데이트되기 전에 UI가 변경될 수 있습니다. 이 경우 변경 사항에 적응하고 필요에 따라 랩에서 작업합니다.

Instructions

시작하기 전에

랩 환경에 로그인

다음 자격 증명을 사용하여 Windows 11 VM(가상 머신)에 로그인합니다.

  • 사용자 이름: Admin
  • 암호: Pa55w.rd

참고: 강사가 가상 랩 환경 연결에 대한 지침을 제공합니다.

설치된 애플리케이션 검토

Windows 11 데스크톱에서 작업 표시줄을 찾습니다. 작업 표시줄에 이 랩에서 사용할 애플리케이션의 아이콘이 포함되어 있습니다.

  • Microsoft Edge

랩 시나리오

이 랩에서는 .NET 애플리케이션 및 Docker 파일을 사용하여 Container Registry에 컨테이너를 만들고 배포하는 방법을 살펴봅니다.

아키텍처 다이어그램

Azure Content Delivery Network를 사용하여 웹 애플리케이션을 향상시키는 사용자를 보여 주는 아키텍처 다이어그램

연습 1: Azure에서 컨테이너 만들기 및 실행

작업 1: Container Registry 만들기

  1. 작업 표시줄에서 Microsoft Edge 아이콘을 선택합니다.

  2. 브라우저 창에서 Azure Portal(https://portal.azure.com)로 이동한 다음, 이 랩에 사용할 계정으로 로그인합니다.

  3. 페이지 왼쪽 상단에서 + 리소스 만들기를 선택합니다.

  4. 검색 창에 Container Registry를 입력하고 결과에서 Container Registry를 선택합니다.

  5. 만들기를 실행합니다.

  6. Container Registry 만들기 페이지의 기본 사항 탭에서 다음 정보를 작성합니다(다른 정보는 기본값으로 유지).

    설정 작업
    구독 텍스트 상자 기본값을 유지합니다.
    리소스 그룹 섹션 새로 만들기를 선택하고 acr-sam-rg를 입력한 다음 확인을 선택합니다.
    레지스트리 이름 섹션 acrsam[사용자 이름] 을 입력합니다.
    위치 드롭다운 목록 미국 동부를 선택합니다.
    계획 드롭다운 목록 기본을 선택합니다.
  7. 검토 + 만들기를 선택하여 설정을 검토한 다음 만들기를 선택합니다.

    참고: 배포가 완료될 때까지 기다립니다. 몇 분 정도 걸릴 수 있습니다.

  8. 개요 블레이드에서 리소스로 이동 단추를 선택하여 새로 만들어진 컨테이너 레지스트리 계정의 블레이드로 이동합니다.

  9.  컨테이너 레지스트리 블레이드의  설정 섹션에서 액세스 키를 선택합니다.

  10.  액세스 키 블레이드에서 관리 사용자를 사용하도록 설정합니다.

  11.  username 상자의 값을 클립보드에 복사합니다.

  12. 메모장을 열고 복사한 값을 메모장에 붙여넣습니다. 나중에 이 랩에서 이 값을 사용하게 됩니다.

축하합니다! Azure에서 Container Registry를 성공적으로 만들었습니다.

작업 2: 컨테이너 이미지를 빌드하기 위한 Docker 파일 만들기

  1. 파일 탐색기 창을 열고 Allfiles(F):\Allfiles\Labs\14\Starter\webapp-lab14를 찾은 다음 텍스트 편집기를 엽니다.

  2. 프로젝트 디렉터리에 새 파일을 만들고 이름을 Dockerfile로 지정합니다.

  3. Dockerfile에 다음 코드를 추가합니다.

    
     FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
     WORKDIR /app
     EXPOSE 5151
    
     ENV ASPNETCORE_URLS=http://+:5151
    
     # Creates a non-root user with an explicit UID and adds permission to access the /app folder
     # For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers
     RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
     USER appuser
    
     FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
     ARG configuration=Release
     WORKDIR /src
     COPY ["<web-app-name>.csproj", "./"]
     RUN dotnet restore "<web-app-name>.csproj"
     COPY . .
     WORKDIR "/src/."
     RUN dotnet build "<web-app-name>.csproj" -c $configuration -o /app/build
    
     FROM build AS publish
     ARG configuration=Release
     RUN dotnet publish "<web-app-name>.csproj" -c $configuration -o /app/publish /p:UseAppHost=false
    
     FROM base AS final
     WORKDIR /app
     COPY --from=publish /app/publish .
     ENTRYPOINT ["dotnet", "<web-app-name>.dll"]
    
    
  4. <web-app-name>을 .NET 8 웹 애플리케이션 프로젝트의 이름으로 바꿔야 합니다.

  5. Dockerfile을 저장합니다.

축하합니다! Docker 파일을 성공적으로 만들었습니다.

작업 3: Docker 파일을 사용하여 Azure에서 Linux 컨테이너 만들기

로컬 컴퓨터에 Docker CLI가 설치되어 있는지 확인합니다. 아직 설치되어 있지 않은 경우 Docker 웹 사이트에서 설치합니다.

  1. 작업 표시줄에서 터미널 아이콘을 선택합니다.

  2. 열린 명령 프롬프트에 다음 명령을 입력하고 Enter 키를 선택하여 Azure CLI(명령줄 인터페이스)에 로그인합니다.

     az login
    
  3. Microsoft Edge 브라우저 창에서 Microsoft 계정의 메일 주소 및 암호를 입력한 후, 로그인을 선택합니다.

  4. 현재 열려 있는 터미널 명령 프롬프트 창으로 돌아갑니다. 로그인 프로세스가 완료될 때까지 기다립니다.

  5. 다음 명령을 입력한 후 Enter를 선택하여 현재 디렉터리를 랩 파일이 포함되어 있는 Allfiles(F):\Allfiles\Labs\14\Starter\webapp-lab14 디렉터리로 변경합니다.

     cd 'F:\Allfiles\Labs\14\Starter\webapp-lab14\'
    
  6. 다음 명령을 실행하여 소스 코드를 컨테이너 레지스트리에 업로드하고, 컨테이너 이미지를 Container Registry 작업으로 빌드하고, <레지스트리 이름="">을 Container Registry 이름으로 바꾸고, <이미지 이름="">을 이미지의 새 이름으로 바꿉니다.

     az acr build --registry <your-registry-name> --image <image-name>:latest .
    

    참고: 이 랩을 진행하기 전에 빌드 작업이 완료할 때까지 기다립니다.

  7. 터미널 창을 닫습니다.

  8. Azure Portal을 열고 Container Registry로 이동합니다.

  9.  컨테이너 레지스트리 블레이드의  서비스 섹션에서 리포지토리를 선택합니다.

  10. Docker 이미지가 리포지토리에 나열되어 있는지 확인합니다.

축하합니다! Docker 파일을 사용하여 Azure에서 Linux 컨테이너를 성공적으로 만들었습니다.

작업 4: Azure 컨테이너 인스턴스에 Linux 컨테이너 이미지 배포

  1. Azure Portal의 페이지 왼쪽 상단에서 + 리소스 만들기를 선택합니다.

  2. 검색 창에 Container Instances를 입력하고 결과에서 Container Instances를 선택합니다.

  3. 만들기를 실행합니다.

  4. 컨테이너 인스턴스 만들기 페이지의 기본 사항 탭에서 다음 정보를 작성하고(다른 정보는 기본값으로 유지) 다음:을 선택합니다. 네트워킹:

    설정 작업
    구독 텍스트 상자 기본값을 유지합니다.
    리소스 그룹 드롭다운 목록 목록에서 acr-sam-rg를 선택합니다.
    컨테이너 이름 섹션 acisam[이름] 을 입력합니다.
    지역 드롭다운 목록 미국 동부를 선택합니다.
    가용성 영역 드롭다운 목록 1을 선택합니다.
    이미지 원본 섹션 Azure Container Registry를 선택합니다.
    레지스트리 드롭다운 목록 acrsam[사용자 이름] 을 선택합니다.
    이미지 드롭다운 목록 docker-image-name을 선택합니다.
    이미지 태그 드롭다운 목록 docker-image-tag를 선택합니다.
    OS 유형 섹션 Linux를 선택합니다.
  5. 네트워킹 탭에서 다음 정보를 작성합니다.

    설정 작업
    DNS 이름 레이블 텍스트 상자 DNS 이름을 입력합니다.
    포트 텍스트 상자 DockerFile에 있는 port-number를 입력합니다.
    포트 프로토콜 드롭다운 목록 목록에서 TCP를 선택합니다.
  6. 검토 + 만들기를 선택하여 설정을 검토한 다음 만들기를 선택합니다.

    참고: 배포가 완료될 때까지 기다립니다. 몇 분 정도 걸릴 수 있습니다.

  7. 개요 블레이드에서 리소스로 이동 단추를 선택하여 새로 만들어진 컨테이너 인스턴스 계정의 블레이드로 이동합니다.

  8. 컨테이너의 공용 IP를 복사하여 포트 번호와 함께 웹 브라우저에 붙여넣은 다음 Enter 키를 누릅니다.

    <public-IP-number>:<port-number> 또는 <DNS-name>:<port-number>

  9. .NET 웹 애플리케이션의 웹 페이지가 표시되어야 합니다.

축하합니다! 컨테이너 인스턴스에 Linux 컨테이너를 성공적으로 배포했습니다.

작업 5: 기존 컨테이너에 대한 컨테이너 레지스트리 쿼리

  1. Azure Portal을 열고 이전에 만든 리소스 그룹으로 이동합니다.

  2. 작업 4에서 만든 Container Registry를 선택합니다.

  3. 리포지토리 탭을 선택한 다음 기존 컨테이너에 대해 쿼리할 리포지토리를 선택합니다.

  4. 태그 섹션에서는 선택한 리포지토리에 대한 태그 목록을 볼 수 있습니다.

  5. 컨테이너 이미지의 세부 정보를 보려면 태그를 선택합니다. 그러면 크기, 만든 날짜 및 관련 계층을 포함하여 컨테이너 이미지에 대한 메타데이터가 표시됩니다.

  6. 페이지 상단의 검색 창을 사용하여 특정 컨테이너 이미지를 검색할 수도 있습니다. 키워드나 태그 이름을 입력하고 검색 단추를 선택하기만 하면 됩니다.

  7. 컨테이너 이미지를 삭제하려면 태그를 선택한 다음 삭제 단추를 선택합니다.

    참고: 이렇게 하면 컨테이너 이미지가 영구적으로 삭제되며 복구할 수 없습니다.

정말 간단하죠. 기존 컨테이너에 대해 Container Registry를 쿼리하는 방법을 성공적으로 알아보았습니다.

검토

이 연습을 완료함으로써 Container Registry 만들기, Dockerfile 만들기, 컨테이너 이미지 빌드, Azure 컨테이너 인스턴스에 Linux 컨테이너 배포에 대한 실무 환경을 얻었습니다.

연습 2: Azure Container Apps 서비스 만들기 및 실행

이 연습에서는 연습 1에서 만든 컨테이너 이미지를 사용하여 컨테이너 앱을 만드는 방법을 알아봅니다.

작업 1: Azure에서 컨테이너 앱 만들기

  1. Azure Portal의 페이지 왼쪽 상단에서 + 리소스 만들기를 선택합니다.

  2. 검색 창에 컨테이너 앱을 입력하고 결과에서 컨테이너 앱을 선택합니다.

  3. 만들기를 실행합니다.

  4. 컨테이너 앱 만들기 페이지의 기본 사항 탭에서 다음 정보를 작성하고(다른 정보는 기본값으로 유지) 다음: 컨테이너를 선택합니다.

    설정 작업
    구독 텍스트 상자 기본값을 유지합니다.
    리소스 그룹 드롭다운 목록 목록에서 acr-sam-rg를 선택합니다.
    컨테이너 앱 이름 섹션 acasam[이름] 입력
    지역 드롭다운 목록 미국 동부를 선택합니다.
    Container Apps 환경 드롭다운 목록 기본값을 유지합니다.
  5. 컨테이너 탭에서 다음 정보를 작성한 후 수신 탭을 선택합니다.

    설정 작업
    빠른 시작 이미지 사용 확인란 선택 취소
    이름 텍스트 상자 [사용자 이름]-container-app을 입력합니다.
    이미지 원본 드롭다운 목록 Azure Container Registry를 선택합니다.
    레지스트리 드롭다운 목록 acrsam[사용자 이름] 을 선택합니다.
    이미지 드롭다운 목록 **** 을 선택합니다.
    이미지 태그 드롭다운 목록 latest를 선택합니다.
    CPU 및 메모리 드롭다운 목록 목록에서 0.25 CPU 코어, 0.5 Gi 메모리를 선택합니다.
  6. 수신 탭에서 다음 정보를 작성합니다.

    설정 작업
    수신 확인란 사용 선택
    수신 트래픽 상자 어디서나 트래픽 허용을 선택합니다.
    수신 형식 상자 HTTP 선택
    클라이언트 인증서 모드 상자 무시 선택
    전송 드롭다운 목록 자동을 선택합니다.
    대상 포트 텍스트 상자 5151 입력
  7. 검토 + 만들기를 선택하여 설정을 검토한 다음 만들기를 선택합니다.

참고: 배포가 완료될 때까지 기다립니다. 몇 분 정도 걸릴 수 있습니다.

  1. 개요 블레이드에서 리소스로 이동 단추를 선택하여 새로 만들어진 컨테이너 앱 계정의 블레이드로 이동합니다.

  2. 컨테이너 앱 블레이드에서 애플리케이션 URL을 선택하여 .NET 웹 애플리케이션의 웹 페이지를 확인합니다.

축하합니다! 컨테이너 앱에 Linux 컨테이너를 성공적으로 배포했습니다.

검토

이 연습을 완료함으로써 컨테이너 앱을 만들고 Linux 컨테이너를 Azure 컨테이너 앱에 배포하는 연습 환경을 얻었습니다.