소개
이 웹 사이트에서는 컨테이너란 무엇이며 애플리케이션 또는 사용 사례에 AWS 컨테이너 서비스를 고려해야 하는 이유를 소개합니다.
컨테이너란 무엇입니까?
컨테이너는 애플리케이션의 코드, 구성 및 종속성을 하나의 객체로 패키징하는 표준화된 방식을 제공합니다. 컨테이너는 서버에 설치된 운영 체제를 공유하며 리소스가 격리된 프로세스 형태로 실행되므로 환경에 상관 없이 빠르고 안정적이며 일관된 배포를 보장합니다.
왜 컨테이너를 사용하는가?
컨테이너는 개발자가 애플리케이션을 패키징하고 배포하기 위한 강력한 방식입니다. 가벼울 뿐만 아니라 어디에서든 쉽게 실행하고 확장할 수 있는 애플리케이션을 위한 일관적인 이동식 소프트웨어 환경을 제공합니다. 마이크로서비스 구축 및 배포, 배치 작업 실행, 기계 학습 애플리케이션에 사용 가능, 기존 애플리케이션을 클라우드로 이동하는 기능 등은 컨테이너에 대해 잘 알려진 사용 사례 중 일부일 뿐입니다.
보안: AWS는 210개의 보안, 규정 준수 및 거버넌스 서비스와 주요 기능을 제공하며, 이는 AWS의 뒤를 잇는 클라우드 제공자보다 약 40개가 더 많은 것입니다. AWS는 컨테이너 간의 보안을 강력히 분리하고, 최신 보안 업데이트를 실행하도록 하고, 모든 컨테이너에 세부적인 액세스 권한 설정 기능을 제공합니다.
안정성; AWS 컨테이너 서비스는 22개의 리전에 걸쳐 있는 69개 가용 영역(AZ)을 갖춘 최고의 글로벌 인프라에서 실행됩니다. AWS는 두 번째로 큰 클라우드 제공자보다 다중 가용 영역으로 구성된 리전을 2배 이상 많이 제공합니다(2위 업체는 8개인데 비해 AWS는 22개 8개). 모든 컨테이너 서비스(ECS, EKS, Fargate)에는 SLA가 있어서 안심할 수 있습니다.
다양한 옵션: AWS 컨테이너 서비스는 컨테이너를 실행하기 위한 가장 광범위한 서비스를 제공합니다. 컨테이너에서 서버리스 컴퓨팅을 원한다면 AWS Fargate를 선택하고, 컴퓨팅 환경의 설치, 구성, 관리를 제어해야 한다면 Amazon EC2를 선택할 수 있습니다. Amazon Elastic Container Service(ECS)와 Amazon Elastic Kubernetes Service(EKS) 중에서 사용할 컨테이너 오케스트레이터를 선택할 수 있습니다.
AWS 통합: AWS 컨테이너 서비스는 기본적으로 AWS와 깊이 통합되어 있습니다. 따라서 컨테이너 애플리케이션이 네트워킹, 보안에서 모니터링에 이르기까지 AWS 클라우드를 넓고 깊게 활용할 수 있습니다. AWS는 컨테이너의 민첩성에 클라우드의 탄력성, 보안을 결합합니다.
컨테이너 서비스
AWS는 컨테이너를 저장하고 관리하고 실행하기 위한 다양한 서비스를 제공합니다. 소규모 실험부터 중요한 프로덕션 애플리케이션에 이르기까지 워크로드에 적합한 AWS 서비스를 선택하십시오.
다음을 수행하려는 경우... |
추천 서비스: |
이유 |
---|---|---|
컨테이너 이미지 저장, 암호화 및 관리 | Amazon ECR |
ECR은 컨테이너 이미지를 압축하고 암호화하여 어디서든 빠르게 시작하고 사용할 수 있게 합니다. |
컨테이너화된 애플리케이션 실행 또는 마이크로서비스 구축 | Amazon ECS | Amazon Elastic Container Service(Amazon ECS)는 완전관리형 컨테이너 오케스트레이션 서비스로, 컨테이너화된 애플리케이션을 실행하는 가장 안전하고 신뢰성과 확장성이 뛰어난 솔루션을 제공합니다. |
Kubernetes로 컨테이너 관리 | Amazon EKS | Amazon Elastic Kubernetes Service(Amazon EKS)는 완전관리형 Kubernetes 서비스로, Kubernetes를 사용하여 컨테이너화된 애플리케이션을 실행하는 가장 안전하고 신뢰성과 확장성이 뛰어난 솔루션을 제공합니다. |
서버를 관리하지 않고 컨테이너를 실행 |
AWS Fargate | AWS Fargate는 컨테이너에 적합한 서버리스 컴퓨팅 엔진으로, Amazon Elastic Container Service(ECS) 및 Amazon Elastic Kubernetes Service(EKS)와 연동됩니다. Fargate에서는 서버를 프로비저닝하고 관리할 필요가 없으므로, 애플리케이션별로 리소스를 지정하고 관련 비용을 지불할 수 있으며, 애플리케이션을 격리하도록 설계되었기 때문에 보안 성능을 향상시킬 수 있습니다. |
서버 수준 제어를 통해 컨테이너 실행 | Amazon EC2 |
EC2 가상 머신을 사용하면 서버 클러스터를 제어하고 다양한 사용자 지정 옵션을 적용할 수 있습니다. |
기초
이 섹션에서는 컨테이너를 이해하고 애플리케이션 또는 사용 사례에 적합한 컨테이너를 선택하기 위해 알아야 할 기초 개념을 소개합니다.
Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다.

Kubernetes는 오픈 소스 컨테이너 관리 및 오케스트레이션 시스템입니다. AWS에서는 Amazon EC2를 사용해 Kubernetes 인프라를 직접 실행 및 관리하거나, Amazon EKS를 사용해 자동으로 프로비저닝되는 관리형 Kubernetes 컨트롤 플레인을 구현할 수 있습니다.

일반적인 컨테이너 사용 사례
마이크로서비스: 컨테이너는 애플리케이션을 쉽게 분리하여 마이크로서비스라는 독립적인 구성 요소로 실행할 수 있는 프로세스 격리 기능을 제공합니다.
일괄 처리: 일괄 처리 및 ETL 작업을 컨테이너로 패키징하면 작업을 빠르게 시작하고 수요에 따라 동적으로 규모를 조정할 수 있습니다.
Machine Learning: 컨테이너를 사용하면 기계 학습 모델을 신속하게 확장하여 훈련 및 추론을 수행하고 플랫폼에 상관 없이 데이터 원본에 가까운 위치에서 실행할 수 있습니다.
하이브리드 애플리케이션: 컨테이너는 코드가 배포되는 방식을 표준화하므로 온프레미스 및 클라우드 환경 사이에서 실행되는 애플리케이션에 대한 워크플로를 쉽게 구축할 수 있습니다.
클라우드로 애플리케이션 마이그레이션: 컨테이너를 사용하면 코드를 변경하지 않고도 애플리케이션 전체를 패키징하여 클라우드로 이동할 수 있습니다.
서비스형 플랫폼: 컨테이너를 사용하면 개발자가 인프라를 관리할 필요가 없는 플랫폼을 구축할 수 있으며 애플리케이션을 배포 및 관리하는 방식이 표준화됩니다.
구축합시다!
다음 자습서에서는 Amazon ECS 및 Amazon EKS를 사용하여 개발을 시작하는 방법을 설명합니다.
로드 밸런서를 통해 연결된 Amazon ECS 클러스터에서 Docker 지원 샘플 애플리케이션을 실행하고, 샘플 애플리케이션을 테스트하는 방법을 알아봅니다.
Amazon Elastic Container Service for Kubernetes(Amazon EKS)에서 관리되는 Kubernetes 클러스터에 컨테이너식 애플리케이션을 배포하는 방법을 알아봅니다.
학습 리소스
다음 리소스에서는 Amazon ECS, Amazon EKS 및 AWS App Mesh의 고급 구성과 사용 사례를 차례로 설명합니다.
AWS ECS에서 프런트 엔드 및 다중 백엔드 서비스를 시작하여 이 워크플로를 환경에 적용하는 방법을 알아봅니다.
Amazon EKS, VPC, ALB 및 EC2 Kubernetes 작업자를 구성하는 다양한 방법을 살펴봅니다.
Docker 컨테이너에 모놀리식 node.js 애플리케이션을 배포한 다음 가동 중단 없이 애플리케이션을 여러 개의 마이크로서비스로 분리하는 방법을 알아봅니다.
AWS App Mesh의 기능과 사용법을 자세히 알아봅니다.
전문가로부터 직접 컨테이너 실행 방법을 배웁니다.
다음 동영상에서는 컨테이너를 효과적으로 사용하는 데 도움이 되는 주요 컨테이너 관련 주제를 설명합니다.