컨테이너 그룹 구현
Azure Container Instances의 최상위 리소스는 컨테이너 그룹입니다. 컨테이너 그룹은 같은 호스트 컴퓨터에서 예약되어 있는 컨테이너 컬렉션입니다. 컨테이너 그룹의 컨테이너는 수명 주기, 리소스, 로컬 네트워크, 스토리지 볼륨을 공유합니다.
컨테이너 그룹에 대해 알아야 할 사항
Azure Container Instances의 컨테이너 그룹에 대한 몇 가지 세부 정보를 검토해 보겠습니다.
컨테이너 그룹은 Kubernetes의 Pod와 유사합니다. Pod는 일반적으로 컨테이너와 1:1로 매핑되지만 Pod에는 여러 컨테이너가 포함될 수 있습니다. 다중 컨테이너 Pod에 포함된 여러 컨테이너는 관련 리소스를 공유할 수 있습니다.
Azure Container Instances는 그룹 내 모든 컨테이너의 리소스 요청을 함께 추가하여 리소스를 다중 컨테이너 그룹에 할당합니다. 리소스에는 CPU, 메모리 및 GPU와 같은 항목이 포함될 수 있습니다.
각각 CPU 리소스가 필요한 컨테이너 두 개가 있는 컨테이너 그룹을 고려합니다. 각 컨테이너는 CPU 하나를 요청합니다. Azure Container Instances는 컨테이너 그룹에 CPU 두 개를 할당합니다.
다중 컨테이너 그룹을 배포하는 두 가지 일반적인 방법은 ARM(Azure Resource Manager) 템플릿 및 YAML 파일입니다.
ARM 템플릿. ARM 템플릿은 Azure Files 파일 공유와 같은 컨테이너 인스턴스를 배포하는 경우 다른 Azure 서비스 리소스를 배포하는 데 권장됩니다.
YAML 파일. YAML 형식이 좀 더 간결하기 때문에 배포에 컨테이너 인스턴스만 포함된 경우에는 YAML 파일을 사용하는 것이 좋습니다.
컨테이너 그룹은 외부 연결 IP 주소, 해당 IP 주소에 있는 하나 이상의 포트, FQDN이 포함된 DNS 레이블을 공유할 수 있습니다.
외부 클라이언트 액세스. 외부 클라이언트가 그룹의 컨테이너에 연결할 수 있도록 하려면 IP 주소 및 컨테이너에서 포트를 노출해야 합니다.
포트 매핑. 그룹의 컨테이너가 포트 네임스페이스를 공유하기 때문에 포트 매핑은 지원되지 않습니다.
삭제된 그룹. 컨테이너 그룹이 삭제되면 해당 IP 주소 및 FQDN이 해제됩니다.
구성 예
컨테이너가 두 개 있는 다중 컨테이너 그룹의 다음 예제를 고려해 보세요.
다중 컨테이너 그룹에는 다음과 같은 특성 및 구성이 있습니다.
- 컨테이너 그룹은 단일 호스트 컴퓨터에서 예약되며 DNS 이름 레이블이 할당됩니다.
- 컨테이너 그룹은 하나의 노출된 포트를 사용하여 단일 공용 IP 주소를 노출합니다.
- 그룹의 한 컨테이너가 포트 80에서 수신 대기합니다. 다른 컨테이너는 포트 1433에서 수신 대기합니다.
- 이 그룹에는 Azure Files 파일 공유 두 개가 볼륨 탑재로 포함됩니다. 그룹의 각 컨테이너는 파일 공유 중 하나를 로컬로 탑재합니다.
컨테이너 그룹을 사용할 때 고려해야 할 사항
다중 컨테이너 그룹은 단일 기능 작업을 컨테이너 이미지 몇 개로 분할하려는 경우에 유용합니다. 여러 팀이 이미지를 제공할 수 있으며, 이미지마다 리소스 요구 사항이 다를 수 있습니다.
다중 컨테이너 그룹을 사용에 대해 다음 시나리오를 고려하세요. 온라인 소매점용 내부 앱을 지원할 수 있는 옵션에 무엇이 있을지 생각해 보세요.
웹앱 업데이트를 고려합니다. 다중 컨테이너 그룹을 구현하여 웹앱에 대한 업데이트를 지원합니다. 그룹 내 컨테이너 한 개가 웹앱을 제공하고 다른 컨테이너는 소스 제어에서 최신 콘텐츠를 풀(pull)합니다.
로그 데이터 수집을 고려합니다. 다중 컨테이너 그룹을 사용하여 앱에 대한 로깅 및 메트릭 데이터를 캡처합니다. 애플리케이션 컨테이너는 로그 및 메트릭을 출력합니다. 로깅 컨테이너는 출력 데이터를 수집하고 장기 스토리지에 데이터를 씁니다.
앱 모니터링을 고려합니다. 다중 컨테이너 그룹을 사용하여 앱에 대한 모니터링을 사용하도록 설정합니다. 모니터링 컨테이너는 앱이 실행 중이고 올바르게 응답하는지 확인하기 위해 애플리케이션 컨테이너에 주기적으로 요청합니다. 모니터링 컨테이너는 앱의 가능한 문제를 식별하는 경우 경고를 발생합니다.
프런트 엔드 및 백 엔드 지원을 고려합니다. 프런트 엔드 컨테이너 및 백 엔드 컨테이너를 보관할 다중 컨테이너 그룹을 만듭니다. 프런트 엔드 컨테이너는 웹앱을 제공할 수 있습니다. 백 엔드 컨테이너는 데이터를 검색하는 서비스를 실행할 수 있습니다.