클라우드 컨테이너란 무엇인가요?
클라우드 컨테이너는 애플리케이션 코드, 라이브러리 및 클라우드에서 실행하기 위해 필요한 기타 종속성이 포함된 소프트웨어 코드 패키지입니다. 모든 소프트웨어 애플리케이션 코드를 실행하려면 먼저 라이브러리 및 종속성이라는 추가 파일이 필요합니다. 기존에 Windows, Linux, Mac, 모바일 등 다양한 환경에서 실행하기 위해서는 소프트웨어를 여러 형식으로 패키징해야 했습니다. 그러나 컨테이너는 소프트웨어 및 모든 종속성을 어디서나 실행할 수 있는 단일 파일로 패키징합니다. 클라우드에서 컨테이너를 실행하면 대규모 유연성과 성능 이점이 추가적으로 제공됩니다.
클라우드 컨테이너의 이점은 무엇인가요?
애플리케이션은 수십, 수백 또는 수천 개의 컨테이너로 구성될 수 있습니다. 클라우드 컨테이너를 사용하면 이러한 컨테이너를 다양한 클라우드 서버 또는 인스턴스에 배포하고 관리할 수 있습니다. 클라우드 컨테이너는 마치 같은 위치에 있는 것처럼 작동합니다. 분산 클라우드 컴퓨팅 애플리케이션 아키텍처에는 많은 이점이 있습니다.
애플리케이션 배포 간소화
컨테이너는 기본 아키텍처 및 운영 체제용 소프트웨어를 특별히 번들링하지 않고도 거의 모든 환경에 소프트웨어를 배포하는 데 사용할 수 있다는 점에서 특별합니다. 컨테이너화가 대중화되기 전에는 특정 플랫폼에서 실행할 애플리케이션을 특정 라이브러리와 함께 번들링해야 했습니다. 즉, 하나의 소프트웨어를 여러 운영 체제에 배포하면 여러 소프트웨어 버전이 생성되었습니다. 클라우드 컨테이너를 통해 컨테이너화 플랫폼을 기반으로 실행하기만 하면 모든 기본 아키텍처에서 애플리케이션을 실행할 수 있습니다. 이제 프로덕션급 컨테이너의 한 버전만 있으면 됩니다.
유연성
클라우드를 컨테이너화하면 기본 가상 머신은 모두 클라우드 인스턴스가 됩니다. 클라우드 인스턴스는 빠른 가동, 종료 및 온디맨드 클라우드 컴퓨팅 요금의 다양한 구성으로 제공됩니다. 이 재구성 기능을 통해 애플리케이션의 요구 사항에 따라 필요한 머신을 교체해 넣거나 뺄 수 있습니다. 컨테이너 기반 애플리케이션은 개별 서버가 아닌 다양한 클라우드 인스턴스에서 로드 밸런싱이 가능하므로 리소스 사용이 최적화됩니다.
복원력
클라우드 컨테이너는 애플리케이션의 신뢰성과 가용성을 높여줍니다. 분산형 컨테이너식 아키텍처에서는 특정 머신에 장애가 발생할 경우 다른 머신에서 손실된 컨테이너를 빠르게 가동하여 애플리케이션의 복원력을 강화할 수 있습니다. 애플리케이션의 나머지 부분에 미치는 영향을 최소화하면서 애플리케이션에 있는 단일 컨테이너의 새 버전을 업데이트할 수 있습니다. 그 결과 가동 시간이 길어집니다.
확장성
기존의 애플리케이션 프로덕션 환경에서는 애플리케이션이 단일 서버 리소스로 제한됩니다. 애플리케이션을 올바르게 설계하고 클라우드 컨테이너화 접근 방식을 채택하면 애플리케이션의 데이터 처리 및 입력/출력이 더 이상 단일 서버 제한으로 제한되지 않습니다. 여러 머신에 분산되므로 무제한으로 확장할 수 있고 일관된 성능과 사용자 경험을 보장할 수 있습니다.
클라우드 컨테이너의 사용 사례는 무엇인가요?
클라우드 컨테이너는 컨테이너화된 애플리케이션을 구축 또는 실행하고 클라우드 컴퓨팅 리소스를 사용하려는 모든 조직에 유용합니다.
마이크로 서비스
마이크로서비스 아키텍처를 사용하면 애플리케이션을 단일 기능을 수행하는 더 작은 독립된 구성 요소로 분해할 수 있습니다. 이 아키텍처는 유연하고 코드 재사용이 쉬우며 효율성을 촉진합니다. 클라우드 컨테이너를 사용하면 분산된 클라우드 인스턴스 네트워크에서 수백 또는 수천 개의 마이크로서비스로 구성된 대규모 애플리케이션을 실행할 수 있습니다. 여러 인스턴스에서 워크로드를 공유하므로 최적의 비용으로 운영을 최적화할 수 있으며, 머신이 중단되어도 서비스의 연속성을 보장할 수 있습니다.
DevOps
DevOps는 소프트웨어 애플리케이션의 구축, 테스트 및 실행을 자동화하고 관리하는 것입니다. 프로세스 자체는 반복 가능하고 버전이 지정되며 코드로 사용할 수 있으므로 개발 시간을 절약하고 발생 가능한 수동 오류의 수를 줄일 수 있습니다. 컨테이너화 및 배포 프로세스는 비슷하며 기존 DevOps 프로세스 및 도구에 잘 맞습니다. 클라우드 컨테이너 파일은 버전 관리가 가능하며 지속적 통합/지속적 배포(CI/CD) DevOps 사례를 지원합니다.
하이브리드 클라우드
온사이트 및 클라우드 기반 서버를 통해 컨테이너 기반 애플리케이션 아키텍처를 실행해야 하는 경우가 있을 수 있습니다. 클라우드 컨테이너의 배포는 하이브리드 클라우드 조합에도 적합합니다. 컨테이너 서비스가 집단적으로 작동하려면 네트워크를 올바르게 설정하고 모든 머신에서 컨테이너화 서비스를 실행하기만 하면 됩니다.
클라우드 컨테이너는 어떻게 작동하나요?
클라우드 컨테이너는 간단히 말해 로컬 머신이나 데이터 센터가 아닌 클라우드 인프라에서 실행되는 컨테이너입니다. 클라우드 컴퓨팅에서 컨테이너는 코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 이미지 파일입니다. 이미지는 계층으로 구성됩니다. 기본 이미지(일반적으로 운영 체제의 최소 버전)에서 시작하여 컨테이너 구성 파일의 지침에 따라 계층이 추가됩니다. 컨테이너 이미지의 주요 특징 중 하나는 불변성입니다. 한 번 생성되면 변경되지 않습니다. 컨테이너 레지스트리에 이미지를 저장하고 다양한 클라우드 환경에서 일관되게 재사용할 수 있습니다.
다음은 컨테이너 기술의 다양한 측면에 대한 개요입니다.
컨테이너 런타임
컨테이너 런타임은 컨테이너의 실제 실행을 담당합니다. 컨테이너의 실행, 수명 주기 및 리소스 격리를 관리합니다. 컨테이너는 클라우드 인스턴스 운영 체제의 사용자 공간에서 격리된 프로세스로 작동합니다. 이들은 호스트 운영 체제를 공유하지만 서로 분리되어 있고 호스트와 분리되어 있습니다. 이러한 격리는 효율적인 리소스 할당을 가능하게 합니다. 런타임에 의해 제한이 적용되므로 컨테이너 간의 리소스 경합이 방지됩니다.
네트워킹
격리된 자체 네트워크 스택으로 클라우드 컨테이너를 구성하여 개별 컨테이너에서 실행되는 여러 애플리케이션이 서로 간섭하지 않도록 할 수 있습니다. 포트 매핑과 사전 정의된 네트워크 채널을 통해 외부 통신 및 컨테이너 간 통신을 관리합니다.
스토리지
클라우드 컨테이너는 일반적으로 임시 스토리지를 사용합니다. 즉, 컨테이너가 중지되면 컨테이너의 쓰기 가능 계층에 기록된 모든 데이터가 손실됩니다. 클라우드 스토리지 볼륨을 영구 스토리지로 사용할 수 있습니다. 이러한 볼륨은 컨테이너의 수명 주기와 무관하며 컨테이너 간에 공유 가능합니다.
오케스트레이션
대규모 시스템에서는 오케스트레이션 도구로 여러 컨테이너의 배포, 규모 조정 및 관리를 자동화합니다. 이 도구는 컨테이너를 클라우드 서버 클러스터 전체에 분산하여 로드 밸런싱을 수행하고 장애 조치 프로세스를 관리합니다. 자동화를 사용하면 복잡한 환경에서 컨테이너식 애플리케이션을 간편하게 관리할 수 있습니다. 모든 단일 클라우드 인스턴스에서 작업을 수행할 필요 없이 하이브리드 클라우드 아키텍처 전반에 걸쳐 대규모의 고급 컨테이너식 애플리케이션을 배포하고 관리할 수 있습니다. 컨테이너 이미지 파일을 각 인스턴스로 수동으로 전송하는 대신 컨테이너 레지스트리에서 이미지 파일을 가져와 클라우드 인스턴스에 자동으로 배포하도록 오케스트레이션 도구를 프로그래밍할 수 있습니다.
클라우드 컨테이너와 클라우드 인스턴스의 차이점은 무엇인가요?
클라우드 인스턴스는 기본 물리적 리소스를 클라우드 제공업체에서 모두 관리하는 VM입니다. 클라우드 인스턴스는 물리적 서버처럼 작동하며 모든 부분이 구성 가능하므로 온사이트 서버처럼 사용할 수 있습니다. 하지만 하드웨어 및 운영 체제는 관리할 필요가 없습니다. 클라우드 인스턴스는 빠르고 쉽게 인스턴스화하고 제거할 수 있습니다. 클라우드 인스턴스에 클라우드 컨테이너를 배포하여 분산된 클라우드 기반 애플리케이션을 실행할 수 있습니다. 클라우드 컨테이너라는 용어는 클라우드 인스턴스에서 실행되는 컨테이너를 의미합니다.
AWS는 클라우드 컨테이너 요구 사항을 어떻게 지원하나요?
현재 전체 클라우드 컨테이너의 거의 80%가 Amazon Web Services(AWS)에서 실행되고 있습니다. AWS 컨테이너 서비스는 기본 컨테이너 인프라를 관리할 수 있는 다양한 시스템 도구를 제공하므로 혁신과 비즈니스 요구 사항에 집중할 수 있습니다.
- AWS Copilot은 AWS에서 컨테이너식 애플리케이션을 빠르게 시작하고 관리할 수 있는 명령줄 인터페이스(CLI)입니다.
- Amazon Elastic Container Service(Amazon ECS)는 컨테이너식 애플리케이션을 효율적으로 배포, 관리 및 규모 조정할 수 있는 완전관리형 컨테이너 오케스트레이션 서비스 및 시스템 도구입니다.
- Amazon Elastic Kubernetes Service(Amazon EKS)는 AWS 클라우드와 온프레미스 데이터 센터에서 Kubernetes를 실행하기 위한 관리형 Kubernetes 컨테이너 오케스트레이션 서비스입니다.
- Amazon Elastic Container Registry(Amazon ECR)는 컨테이너 이미지 및 아티팩트에 대한 관리 및 액세스를 간소화하는 완전관리형 컨테이너 레지스트리입니다.
- AWS Fargate는 인프라 관리 대신 애플리케이션 개발에 집중할 수 있게 해주는 서버리스 컴퓨팅 엔진입니다.
다음 이미지는 프로비저닝, 오케스트레이션, 용량 등 계층별 AWS 컨테이너 솔루션 옵션을 보여줍니다.
지금 계정을 만들어 AWS에서 클라우드 컨테이너를 시작하세요.