이 모듈에서는 획일적인 node.js 애플리케이션의 컨테이너 이미지를 구축하고 이를 Amazon Elastic Container Registry로 푸시합니다. 구축 시작
컨테이너를 사용하면 애플리케이션의 코드, 구성 및 종속 항목을 사용이 간편한 빌딩 블록으로 손쉽게 패키징할 수 있으며 빌딩 블록은 환경 일관성, 운영 효율성, 개발자 생산성, 버전 제어를 제공합니다. 컨테이너는 애플리케이션을 배포 환경과 관계없이 빠르고 안정적이며 일관되게 배포할 수 있도록 해줍니다.
속도
큰 배포 오버헤드 없이 코드의 새 릴리스를 사용하여 컨테이너를 시작할 수 있습니다. 개발자의 로컬 시스템에 있는 컨테이너에 구축된 코드는 해당 컨테이너만 옮기면 테스트 서버로 쉽게 옮겨지므로 작동 속도가 개선됩니다. 구축 시 이 컨테이너를 애플리케이션 스택 실행에 필요한 다른 컨테이너에 연결할 수 있습니다.
종속 관계 제어 및 향상된 파이프라인
Docker 컨테이너 이미지는 특정 시점의 애플리케이션 코드와 종속 관계를 캡처한 이미지입니다. 따라서 엔지니어링 조직에서 애플리케이션 수명주기 동안 적용할 표준 파이프라인을 생성할 수 있습니다. 예:
- 개발자가 로컬로 컨테이너를 구축하고 실행합니다.
- 지속 통합 서버가 동일한 컨테이너를 실행하며 기대치를 충족하는지 확인하기 위해 통합 테스트를 실시합니다.
- 동일한 컨테이너가 준비 환경으로 전달됩니다. 준비 환경에서는 로드 테스트 또는 수동 QA를 사용하여 실행 시간 동작을 점검할 수 있습니다.
- 동일한 컨테이너가 운영 환경으로 전달됩니다.
통합 및 배포 파이프라인의 모든 단계 걸쳐 완전히 일치하는 컨테이너를 구축, 테스트, 전달 및 실행할 수 있으므로 고품질의 신뢰성 높은 애플리케이션을 훨씬 쉽게 제공할 수 있습니다.
집적도 및 리소스 효율성
컨테이너를 사용하면 단일 시스템에서 여러 이기종 프로세스를 실행할 수 있으므로 리소스 효율성이 향상됩니다. 이 같은 리소스 효율성 향상은 컨테이너에 사용되는 격리 및 할당 기법의 자연스러운 결과물입니다. 호스트의 CPU 및 메모리를 일정 양만 소모하도록 컨테이너를 제한할 수 있습니다. 컨테이너에 필요한 리소스와 기반 호스트 서버에서 사용 가능한 리소스를 파악하면 작은 규모의 호스트에 컴퓨팅 리소스를 적절하게 사이징하거나 규모가 큰 단일 호스트에서 실행되는 프로세스의 집적도를 높여 가용성을 증진하고 리소스 소비를 최적화할 수 있습니다.
유연성
Docker 컨테이너의 유연성은 이식성, 배포 용이성 및 작은 크기에 따라 결정됩니다. VM에서 필요한 설치 및 구성과 달리, 컨테이너는 내부의 패키징 서비스를 통해 호스트 간에 손쉽게 이동하고, 인접한 다른 서비스의 장애로부터 격리하며, 호스트 시스템의 잘못된 패치 또는 소프트웨어 업그레이드로부터 보호할 수 있습니다.