ECS(Elastic Container Service)
ECS는 Docker 컨테이너를 지원하는 확장성이 뛰어난 컨테이너 관리 서비스입니다. ECS는 컨테이너화된 애플리케이션의 크기 조정, 유지 관리 및 연결을 관리합니다.
ECS를 사용하면 ECS 태스크를 시작하는 ECS 서비스를 생성할 수 있습니다. ECS 태스크는 하나 이상의 컨테이너 이미지를 사용할 수 있습니다. ECS 서비스는 애플리케이션의 수요를 충족하도록 실행 중인 태스크 수를 조정합니다.
애플리케이션을 위한 전용 인프라를 갖춘 ECS 클러스터를 생성합니다. AWS Fargate에서 관리하는 서버리스 인프라에서 태스크 및 서비스를 실행할 수 있습니다. 인프라를 더 효과적으로 제어하려는 경우 EC2 인스턴스의 클러스터에서 태스크 및 서비스를 관리할 수 있습니다. EC2 인스턴스를 클러스터에 추가하거나 클러스터에서 제거하여 클러스터의 EC2 호스팅 용량 크기를 조절할 수 있습니다.
ECS를 사용하면 클러스터 관리 및 구성 관리 시스템을 직접 운영하거나 관리 인프라의 크기 조정에 대해 걱정할 필요가 없습니다.
기능
ECS는 다음과 같은 기능을 제공합니다.
- 완전관리형
ECS는 완전관리형 서비스이므로 컨트롤 플레인, 노드 또는 추가 기능을 관리할 필요가 없습니다. 그러므로 팀이 환경 관리가 아닌 애플리케이션 구축 작업만 중점적으로 수행할 수 있습니다. - 서비스 검색
ECS에서는 서비스 검색이 지원됩니다. 서비스 검색 기능을 사용하면 도메인 이름 시스템(DNS) 이름에 ECS 서비스를 등록할 수 있습니다. 예를 들어 "backend" 서비스는 backend.example 등의 프라이빗 DNS 네임스페이스에 등록하고 "frontend" 서비스는 frontend.example과 함께 등록할 수 있습니다. 그런 다음 이러한 서비스를 구성하여 동일한 VPC내에서 서로 검색할 수 있습니다. 서비스 검색을 사용하면 마이크로서비스 구성 요소가 생성 및 종료될 때 자동으로 검색되어 네임스페이스에 추가됩니다. - AWS 통합
ECS는 다음과 같은 여러 AWS 서비스와 통합할 수 있습니다.- ECR
컨테이너화된 애플리케이션이 원활하게 컨테이너 이미지에 액세스하여 해당 이미지를 실행할 수 있습니다. - IAM(Identity Access managemen)
각 컨테이너에 세분화된 권한을 배정할 수 있습니다. 그러면 애플리케이션 구축 시에 컨테이너를 높은 수준의 격리가 가능합니다. - CloudWatch Logs 및 Container Insights
컨테이너화된 애플리케이션과 인스턴스의 로그를 한 곳에서 편리하게 확인할 수 있습니다.
- ECR
- 유연한 호스팅 옵션
ECS에서는 EC2, 그리고 AWS Fargate를 통한 서버리스 호스팅을 모두 사용할 수 있습니다. 리소스 요구 사항, 격리 정책 및 가용성 요구 사항에 따라 클러스터 전체에 컨테이너 배치를 예약할 수 있습니다. - 개발 워크플로
ECS는 지속적 통합/지속적 배포(CI/CD)를 지원합니다. Docker 컨테이너 기반 마이크로서비스 아키텍처에서는 일반적인 프로세스입니다. 다음 작업을 수행하는 CI/CD 파이프라인을 생성할 수 있습니다.- 소스 코드 리포지토리의 변경 사항 모니터링
- 해당 소스에서 새 Docker 이미지 구축
- ECR, Docker Hub 등의 이미지 리포지토리에 이미지 푸시
- 애플리케이션에서 새 이미지를 사용하도록 ECS 서비스 업데이트
EKS(Elastic Kubernetes Service)
Kubernetes(이하 K8s)는 컨테이너화된 애플리케이션을 대규모로 배포하고 관리하는 데 사용할 수 있는 오픈 소스 소프트웨어입니다. K8s는 EC2 컴퓨팅 인스턴스의 클러스터를 관리하고 배포, 유지 관리 및 스케일링의 프로세스를 통해 이러한 인스턴스에서 컨테이너를 실행합니다. K8s를 사용하면 온프레미스나 클라우드에서 동일한 도구들을 사용하여 원하는 유형의 컨테이너화된 애플리케이션을 실행할 수 있습니다.
EKS는 준수 인증을 받은 관리형 Kubernetes 서비스입니다. EKS는 고가용성의 안전한 클러스터를 제공하는 데 도움이 되며 패치 적용, 노드 프로비저닝 및 업데이트와 같은 주요 태스크를 자동화합니다. 이외에도 다음과 같은 기능들이 있습니다.
- 대규모로 애플리케이션 실행 - 복잡한 컨테이너형 애플리케이션을 정의하고 서버 클러스터 전체에서 대구모로 실행할 수 있습니다.
- 애플리케이션을 원활하게 이전 - 컨테이너화된 애플리케이션을 로컬 개발 시스템에서 클라우드의 프로덕션 이전할 수 있습니다.
- 어디서든 실행 - 가용성 및 확장성이 뛰어난 K8s 클러스터를 실행할 수 있습니다.
EKS 솔루션
EKS는 자체 K8s 클러스터를 설치 및 운영할 필요 없이 AWS에서 K8s를 쉽게 실행할 수 있도록 해주는 관리형 서비스입니다. EKS를 사용하면 AWS에서 고가용성 서비스 및 업그레이드를 사용자 대신 관리합니다. EKS는 세 가용 영역에서 3개의 K8s관리자를 실행합니다. EKS는 비정상 관리자를 탐지하여 교체하고 관리자에 대한 버전 업그레이드 및 패치를 자동으로 실행합니다. 또한, EKS는 다양한 AWS 서비스와 통합되어 애플리케이션에 확장성과 보안을 제공합니다.
EKS는 최신 버전의 오픈 소스 K8s 소프트웨어를 실행하므로, K8s 커뮤니티의 기존 플러그인과 도구를 모두 사용할 수 있습니다. EKS에서 실행되는 애플리케이션은 모든 표준 K8s 환경에서 실행되는 애플리케이션과 완벽하게 호환됩니다. 애플리케이션 실행 위치에 관계없이 호환성이 보장됩니다.
Fargate
Fargate는 서버 또는 클러스터를 관리할 필요 없이 컨테이너를 실행하는 데 사용할 수 있는 ECS와 EKS를 위한 기술입니다. Fargate를 사용하면 더 이상 컨테이너를 실행하기 위해 VM 클러스터를 프로비저닝 및 구성하고 크기를 조정할 필요가 없습니다. 따라서 서버 유형을 선택하거나, 클러스터 크기 조정 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없습니다.
Fargate에서는 서버 또는 클러스터에 대해 고민하거나 상호 작용할 필요가 없습니다. Fargate를 사용하면 애플리케이션을 실행하는 인프라의 관리 대신 애플리케이션 설계 및 구축에 집중할 수 있습니다.
컨테이너 서비스 선택 기준
AWS에 관리형 컨테이너 솔루션을 배포하려면 오케스트레이션 도구와 시작 유형을 선택해야 합니다.
컨테이너화된 애플리케이션 관리
- ECS에서는 수동 구성 작업은 줄이면서 다른 AWS 서비스와 더 쉽게 통합할 수 있는 관리형 솔루션을 제공합니다.
- EKS에서는 자체 K8s 클러스터를 설치 및 운영할 필요 없이 AWS 클라우드 또는 온프레미스에서 K8s 애플리케이션을 유동적으로 시작 및 실행하고 크기를 조정할 수 있습니다. 이 옵션은 오픈 소스 도구를 사용하는 조직에 적합합니다. EKS를 사용하려면 구성을 추가로 수행해야 하지만 환경을 더욱 잘 제어할 수 있습니다.
컨테이너 호스팅
- EC2에서 컨테이너를 호스트하려면 구성을 추가로 수행해야 합니다. 그러나 컨테이너를 호스트하는 데 사용하는 리소스를 더욱 자세하게 제어할 수 있습니다. 또한 EC2에서는 더욱 비용 효율적으로 컨테이너를 호스트할 수 있습니다.
- Fargate에서 컨테이너를 호스팅할 때는 서버리스 기술을 사용하는 자율 컨테이너 운영 기능이 제공됩니다. 그러믈 ㅗ구성, 패치 적용 및 보안관련 작업에 소요되는 시간을 줄일 수 있습니다.
'자격증 > AWS SAA' 카테고리의 다른 글
[AWS SAA] 45. VPC 피어링 (0) | 2023.09.06 |
---|---|
[AWS SAA] 44. VPC 엔드포인트 (0) | 2023.09.06 |
[AWS SAA] 42. 컨테이너 서비스 (0) | 2023.09.05 |
[AWS SAA] 41. 컨테이너 (0) | 2023.09.04 |
[AWS SAA] 40. 마이크로서비스 (0) | 2023.09.03 |