이 모듈에서는 모놀리식 node.js 애플리케이션의 컨테이너 이미지를 구축하고 이를 Amazon Elastic Container Registry로 푸시합니다. 구축 시작

컨테이너를 사용하면 애플리케이션의 코드, 구성 및 종속 항목을 사용이 간편한 빌딩 블록으로 손쉽게 패키징할 수 있으며 빌딩 블록은 환경 일관성, 운영 효율성, 개발자 생산성, 버전 제어를 제공합니다. 컨테이너는 애플리케이션을 배포 환경과 관계없이 빠르고 안정적이며 일관되게 배포할 수 있도록 해줍니다.

속도
상당한 배포 오버헤드 없이도 새로운 코드 릴리스로 컨테이너를 시작할 수 있습니다. 개발자의 로컬 컴퓨터에서 컨테이너에 구축된 코드를 컨테이너로 이동하는 것만으로 테스트 서버로 간단히 옮길 수 있으므로 운영 속도가 향상됩니다. 이 컨테이너는 구축 시 애플리케이션 스택을 실행하는 데 필요한 다른 컨테이너로 연결될 수 있습니다.
종속성 제어 및 개선된 파이프라인
Docker 컨테이너 이미지는 애플리케이션 코드와 종속성을 특정 시점에 캡처한 것입니다. 엔지니어링 조직은 이를 통해 애플리케이션 수명 주기에 맞는 표준 파이프라인을 생성할 수 있습니다. 예를 들면 다음과 같습니다.
- 개발자가 로컬에서 컨테이너를 구축하고 실행합니다.
- 지속적 통합 서버는 동일한 컨테이너를 실행하고 이에 대한 통합 테스트를 실행하여 기대를 충족하는지 확인합니다.
- 동일한 컨테이너가 스테이징 환경으로 이동되고, 여기에서 부하 테스트 또는 수동 QA를 사용하여 런타임 동작을 확인할 수 있습니다.
- 동일한 컨테이너가 프로덕션으로 이동됩니다.
통합 및 배포 파이프라인의 모든 단계에서 정확히 동일한 컨테이너를 구축, 테스트, 이동 및 실행할 수 있으므로 매우 손쉽게 고품질의 신뢰할 수 있는 애플리케이션이 제공됩니다.
밀도 및 리소스 효율성
컨테이너는 여러 개의 이질적 프로세스를 단일 시스템에서 실행시켜서 리소스 효율성을 향상합니다. 리소스 효율성은 컨테이너가 사용하는 분리와 할당 기술의 자연스러운 결과물입니다. 컨테이너는 호스트 CPU와 메모리 중에서 특정 용량만 사용하도록 제한할 수 있습니다. 컨테이너에 어떤 리소스가 필요하고, 기본 호스트 서버에서 어떤 리소스를 사용할 수 있는지 이해하면 작은 규모의 호스트로 사용하는 컴퓨팅 리소스를 적절히 조정하거나 큰 규모의 단일 호스트에서 실행되는 프로세스의 밀도를 높여 가용성을 향상하고 리소스 소비를 최적화할 수 있습니다.
유연성
Docker 컨테이너의 유연성은 이동성, 배포 편이성 및 작은 용량에 기반합니다. VM에서 설치와 구성이 필요한 것에 비해 컨테이너 내부의 패키징 서비스를 사용하면 손쉽게 호스트 사이를 이동하고, 다른 인접 서비스 장애와 분리되며, 호스트 시스템의 잘못된 패치나 소프트웨어 업그레이드로부터 보호받을 수 있습니다.