Azure Container Apps 설정
이 단원에서는 Azure CLI를 사용하여 Azure Container Apps 환경 및 Azure for PostgreSQL 데이터베이스를 만드는 방법을 알아봅니다. 그런 다음, 로컬 데이터베이스 대신 원격 데이터베이스에 연결되도록 Quarkus 애플리케이션을 구성합니다.
IaaS에서 FaaS에 이르는 여러 대상을 Azure에 Quarkus 애플리케이션을 배포하는 데 사용할 수 있습니다. Azure Container Apps PaaS와 FaaS 사이에 있습니다. PaaS는 특정 프로그래밍 모델로 강제 적용되지 않으며 규모 확장 및 축소할 규칙을 제어할 수 있기 때문에 PaaS와 비슷합니다. 반면에 0으로 크기 조정, 이벤트 기반 크기 조정 및 초당 가격 책정 모델과 같은 서버리스 특성이 있습니다.
모든 Azure 컴퓨팅 서비스를 보여 주는
Container Apps는 AKS(Azure Kubernetes Service ) 기반으로 빌드됩니다. 여기에는 KEDA(Kubernetes용 이벤트 기반 자동 크기 조정), Dapr(분산 애플리케이션 런타임) 및 Envoy(클라우드 네이티브 애플리케이션용으로 설계된 서비스 프록시)과의 긴밀한 통합이 포함됩니다. 기본 복잡성은 추상화되므로 Kubernetes 서비스, 배포, 수신 또는 볼륨 매니페스트를 구성할 필요가 없습니다. 컨테이너화된 애플리케이션을 구성하는 간단한 API 및 사용자 인터페이스를 얻을 수 있습니다. 이러한 간소화로 인해 AKS를 사용하는 것보다 제어가 줄어듭니다.
Container Apps에서 애플리케이션을 Docker 컨테이너로 패키지해야 합니다. Container Apps는 Dockerfiles 또는 Jib를 사용하여 빌드된 Docker 컨테이너를 지원합니다. 컨테이너 레지스트리에서 컨테이너를 사용할 수 있어야 합니다. Container Apps는 Azure Container Registry, Docker Hub 및 GitHub Container Registry를 지원합니다. 애플리케이션 이미지를 레지스트리에서 사용할 수 있게 된 후 Container Apps는 Azure Portal, Azure CLI, GitHub Actions 및 Azure DevOps에서 배포를 지원합니다.
Container Apps는 다음과 같은 기능을 제공합니다.
- 수정: 컨테이너 앱의 애플리케이션 수명 주기를 관리하는 데 도움이 되는 자동 버전 관리입니다.
- 트래픽 제어: 파란색/녹색 배포 및 A/B 테스트를 위해 들어오는 HTTP 트래픽을 여러 수정 버전으로 분할하는 기능입니다.
- 수신: 간단한 HTTPS 수신 구성입니다. DNS 또는 인증서에 대해 걱정할 필요가 없습니다.
- 자동 크기 조정: 외부 메트릭에 따라 앱 크기를 조정하는 KEDA 지원 확장 트리거입니다.
- 비밀: 컨테이너, 크기 조정 규칙 및 Dapr 사이드카 간에 공유되는 비밀입니다.
- 모니터링: Log Analytics에 자동으로 기록되는 표준 출력 및 오류 스트림입니다.
- Dapr: 컨테이너 앱에 대한 Dapr 통합입니다. 간단한 플래그를 사용하여 이 통합을 사용하도록 설정합니다.
다음 연습에서는 다음 개념을 소개합니다.
- 환경: 컨테이너 앱 그룹을 둘러싼 향상된 보안 경계입니다. 앱은 단일 가상 네트워크에 배포되고, 서로 쉽게 상호 통신할 수 있으며, 단일 Log Analytics 작업 영역에 로그를 씁니다. 환경을 Kubernetes 네임스페이스와 비교할 수 있습니다.
- 컨테이너 앱: 함께 배포되고 확장되는 컨테이너 그룹(Pod)입니다. 단일 디스크 공간과 네트워크를 공유합니다.
- 수정 버전: 컨테이너 앱의 변경할 수 없는 스냅샷입니다. 새 수정 버전은 자동으로 생성되며 A/B 테스트와 같은 HTTP 트래픽 리디렉션 전략에 유용합니다.
Container Apps 개념을 보여 주는
이제 컨테이너 앱 환경을 만들어 이러한 요소의 작동 방식을 확인합니다.