반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

AZ-305.Azure Container Instances(ACI) 본문

[CLOUD]/Azure

AZ-305.Azure Container Instances(ACI)

givemebro 2024. 12. 17. 09:08
반응형

Azure Container Instances(ACI)는 Azure에서 제공하는 컨테이너 실행을 위한 서버리스 플랫폼입니다. 사용자가 가상 머신(VM)을 관리할 필요 없이 애플리케이션을 컨테이너 단위로 실행할 수 있는 간단하고 효율적인 방법을 제공합니다.

 

Azure Container Instances(ACI) 특징

  1. 빠른 배포
    • VM을 생성하거나 클러스터를 구성할 필요 없이, 단일 명령으로 컨테이너를 신속히 시작할 수 있습니다.
  2. 서버리스 환경
    • 인프라를 관리하지 않고, 필요한 컨테이너 리소스(CPU, 메모리)만 정의하면 자동으로 실행.
  3. 유연한 스케일링
    • 컨테이너별로 CPU 및 메모리를 구성할 수 있으며, 필요에 따라 즉시 확장 가능.
  4. 퍼시스턴트 스토리지 지원
    • Azure Files와 통합하여 컨테이너에서 데이터를 저장하고 공유 가능.
  5. 다양한 이미지 지원
    • Docker Hub 또는 Azure Container Registry(ACR)에서 이미지를 가져와 실행 가능.
  6. 이벤트 기반 실행
    • Azure Logic Apps, Azure Functions 등과 통합하여 이벤트 기반 작업 처리 가능.
  7. 네트워킹 옵션
    • Public IP 주소를 통해 외부 네트워크와 통신하거나, Azure Virtual Network(VNet)에 연결하여 내부 리소스와 통신 가능.

Azure Container Instances의 장점

  1. 간단한 사용성
    • YAML 또는 CLI 명령으로 바로 컨테이너를 시작할 수 있어, 학습 곡선이 낮습니다.
  2. 비용 효율성
    • 사용한 만큼만 비용을 지불하며, 짧은 기간 동안 실행되는 작업에 적합.
  3. 빠른 시작
    • 몇 초 안에 컨테이너가 실행되므로 빠르게 애플리케이션을 테스트하거나 배포 가능.
  4. 서버리스 통합
    • Azure Logic Apps, Functions, Event Grid와 함께 사용하여 이벤트 기반 워크플로를 구성 가능.
  5. 멀티 OS 지원
    • Linux 및 Windows 컨테이너 모두 실행 가능.

사용 사례

  1. 단기 작업 처리
    • 데이터 분석, 로그 처리, 이미지 변환과 같이 짧은 작업을 실행.
  2. 애플리케이션 테스트 및 개발
    • 애플리케이션의 컨테이너 이미지를 빠르게 테스트하거나 CI/CD 파이프라인에서 실행.
  3. 이벤트 기반 작업
    • 특정 이벤트 발생 시 컨테이너를 실행하여 작업 처리(예: Azure Event Grid와 통합).
  4. 마이크로서비스 배포
    • 단일 서비스 또는 마이크로서비스를 독립적으로 실행.
  5. CI/CD 파이프라인
    • Azure DevOps 또는 GitHub Actions와 통합하여 컨테이너 빌드 및 배포.

Azure Kubernetes Service(AKS)와 ACI 비교

특징Azure Container Instances (ACI)Azure Kubernetes Service (AKS)

관리 완전 관리형 서버리스 환경 사용자 관리형 클러스터
배포 속도 몇 초 안에 컨테이너 실행 가능 클러스터 구성에 더 많은 시간 소요
스케일링 개별 컨테이너 단위로 간단히 확장 가능 클러스터 내에서 복잡한 스케일링 지원
목적 단일 작업, 간단한 워크로드 복잡한 마이크로서비스와 컨테이너 오케스트레이션
비용 사용한 만큼만 비용 지불 클러스터 리소스와 노드 비용 발생
기능 단순한 컨테이너 실행 고급 컨테이너 오케스트레이션(Kubernetes)

Azure Container Instances 시작하기

1. Azure CLI로 컨테이너 실행

az container create \ --resource-group myResourceGroup \ --name myContainer \ --image mcr.microsoft.com/azuredocs/aci-helloworld \ --cpu 1 \ --memory 1 \ --ports 80
  • --image: Docker Hub 또는 ACR 이미지.
  • --cpu 및 --memory: 컨테이너 리소스 할당.
  • --ports: 컨테이너가 노출할 포트.

2. YAML 파일로 컨테이너 정의

 
apiVersion: 2018-10-01 location: eastus properties: containers: - name: aci-sample properties: image: mcr.microsoft.com/azuredocs/aci-helloworld resources: requests: cpu: 1 memoryInGB: 1 osType: Linux

az container create --file deploy.yaml 명령으로 YAML 파일 배포.


ACI의 한계 및 대안

한계

  1. 복잡한 워크로드
    • 복잡한 컨테이너 오케스트레이션(예: 다중 컨테이너 네트워크)은 어려움.
    • 이런 경우 Azure Kubernetes Service(AKS) 사용 권장.
  2. 장기 실행 작업
    • ACI는 주로 짧은 작업에 적합하며, 장기 실행 워크로드에는 VM이나 AKS가 더 적합.
  3. 로드 밸런싱 부족
    • 기본적으로 로드 밸런싱 기능이 없어, 대규모 트래픽에는 AKS가 필요.

대안

  • 짧은 작업: Azure Functions 또는 Logic Apps.
  • 복잡한 애플리케이션: Azure Kubernetes Service(AKS).
  • 웹 애플리케이션: Azure App Service.
반응형

'[CLOUD] > Azure' 카테고리의 다른 글

AZ-305.Azure NetApp Files  (0) 2024.12.17
AZRUE-305.FILE Storage vs BLOB Storage  (0) 2024.12.17
AZ-305.Storage  (0) 2024.12.17
AZ-305.Functions  (0) 2024.12.17
AZ-305.PaaS.webApp/APIApp/WebJob/MobileApp  (0) 2024.12.16
AZ-305.VM Scale Sets  (0) 2024.12.16
AZ-305.VM vs PaaS  (1) 2024.12.16
AZ-305.PaaS환경  (0) 2024.12.16
Comments