컨테이너는 리소스 격리 프로세스에서 애플리케이션과 종속 항목을 실행하게 해주는 운영 시스템 가상화 방법입니다. 컨테이너를 사용하면 애플리케이션의 코드, 구성 및 종속 항목을 사용이 간편한 빌딩 블록으로 손쉽게 패키징할 수 있으며 빌딩 블록은 환경 일관성, 운영 효율성, 개발자 생산성, 버전 제어를 제공합니다. 컨테이너는 애플리케이션을 배포 환경과 관계없이 빠르고 안정적이며 일관되게 배포할 수 있도록 해줍니다. 컨테이너는 리소스에 대한 좀 더 세분화된 제어가 가능하여 인프라의 효율성을 개선해줍니다. AWS 클라우드에서 컨테이너를 실행하면 탄력성, 가용성, 보안, 규모의 경제와 같은 AWS 클라우드의 장점을 활용하여 강력하고 확장 가능한 애플리케이션과 서비스를 구축할 수 있습니다. 물론 사용한 리소스만큼만 비용을 지불하시면 됩니다.

monolith_2-VM-vs-Containers

Amazon Elastic Container Service

시작하기

에코시스템 데이: AWS Container Service로 최신 앱 구축

지금 등록
Site-Merch_PAC_Fargate

AWS의 파트너 컨테이너 솔루션 – 웹 세미나

자세히 알아보기
Containers_Benefit_EnvironmentConsistency

컨테이너를 사용하면 이동성이 향상되어 개발, 테스트 및 프로덕션 주기에 따라 애플리케이션을 이전할 때 조직 및 기술적 마찰을 줄일 수 있습니다. 컨테이너는 필요한 애플리케이션 파일과 소프트웨어 종속 항목을 모두 캡슐화하고 소프트웨어, 운영 시스템 또는 하드웨어 구성에 관계없이 어떤 컴퓨팅 리소스에도 배포할 수 있는 빌딩 블록의 역할을 합니다(예: 동일한 컨테이너를 Ubuntu 노트북과 Red Hat Enterprise Linux 프로덕션 서버에서 실행할 수 있습니다). 로컬에서 컨테이너로 패키징된 애플리케이션은 테스트 또는 프로덕션 환경에서도 같은 방식으로 배포되고 실행됩니다. 컨테이너를 사용하면 환경에 관계없이 애플리케이션을 일관되고 안정적으로 배포할 수 있으므로 개인뿐만 아니라 조직도 혜택을 누릴 수 있으며 각 서버를 수동으로 구성할 필요 없이 새로운 기능을 더 빠르게 보일 수 있습니다.

Containers_Benefit_OperationalEfficiency

컨테이너를 사용하면 여러 애플리케이션을 동일한 인스턴스에서 쉽게 실행할 수 있어 컴퓨팅 리소스의 효율성을 높일 수 있으며 인스턴스에서 컨테이너가 사용할 메모리, 디스크 공간 및 CPU의 정확한 크기를 지정할 수 있습니다. 각 컨테이너는 애플리케이션과 종속 항목이 실행되는 운영 시스템에서 하나의 프로세스로 실행되므로 부팅 시간이 매우 빠릅니다. 감소된 공간을 통해 컨테이너에 캡슐화된 애플리케이션이나 작업을 빠르게 생성하고 종료할 수 있어 애플리케이션을 신속하게 확장하거나 축소할 수 있습니다. 전체 애플리케이션과 모든 종속 항목이 이미지에 포함되어 있으므로 신규 애플리케이션 버전 출시에 블루 그린 배포 패턴을 사용할 수 있습니다(예: Amazon Elastic Container Service 사용). 또한 컨테이너에서 프로세스 격리를 제공하므로 각 애플리케이션과 종속 항목을 별도의 컨테이너에 담아 같은 인스턴스에서 실행할 수 있습니다. 각 컨테이너가 다른 컨테이너와 격리되어 있으므로 종속 항목이나 비호환 항목이 공유되지 않습니다. 즉, 같은 Amazon EC2 인스턴스에서 라이브러리 버전이 다른 두 개의 컨테이너를 실행할 수 있습니다.

다른 이미지의 기본 역할을 하는 컨테이너 이미지도 생성할 수 있습니다. 운영 팀에서는 원하는 운영 시스템, 구성, 다양한 유틸리티로 구성된 기본 이미지를 생성할 수 있습니다. 그런 다음 개발 팀에서 기본 이미지 위에 애플리케이션을 구축할 수 있습니다. 이를 사용하면 복잡한 서버 구성의 수고를 덜 수 있습니다.

Containers_Benefit_DeveloperProductivity

컨테이너는 교차 서비스의 종속 항목 및 충돌을 제거하여 개발자의 생산성을 높여줍니다. 각 애플리케이션 구성 요소는 각기 다른 마이크로 서비스를 실행하는 여러 컨테이너로 분할될 수 있습니다. 컨테이너가 서로 격리되므로 각 서비스를 위해 라이브러리나 종속 항목이 동기화되는 것을 걱정할 필요가 없습니다. 라이브러리 충돌이 발생하지 않으므로 개발자는 각 서비스를 독립적으로 업그레이드할 수 있습니다.

Containers_Benefit_VersionControl

컨테이너를 사용하면 애플리케이션 코드와 종속 항목의 버전을 추적할 수 있습니다. Docker 컨테이너 이미지에 포함된 매니페스트 파일(Dockerfile)로 컨테이너 버전을 손쉽게 유지 관리 및 추적하고, 버전 간의 차이점을 검사하고, 이전 버전으로 롤백할 수 있습니다.