Container - (AWS-SAA)

은채의 성장통·2024년 12월 27일
0

AWS

목록 보기
7/79

컨테이너와 서버 가상화의 차이

컨테이너는 서버 가상화보다 훨씬 가볍고 빠른 기술입니다.

  • 가상 서버: 운영체제(OS), 미들웨어, 애플리케이션이 모두 필요하며, 이로 인해 상당한 리소스를 소비합니다.
  • 컨테이너: 애플리케이션을 실행하기 위한 의존성 패키지만 포함하기 때문에 가볍고 빠릅니다.

또한, 컨테이너 이미지는 한 번 생성하면 다양한 가상 환경에서 재사용이 가능합니다. 이미지를 내보내거나 가져와 실행할 수도 있어, 배포 및 관리가 유연합니다.


AWS의 주요 컨테이너 서비스

서비스목적주요 특징사용 시나리오
ECS (Elastic Container Service)Docker 컨테이너 오케스트레이션- AWS 자체 서비스- 간단한 설정- AWS 서비스와 통합 용이- 빠른 배포가 필요한 경우- AWS 환경에 최적화된 애플리케이션
EKS (Elastic Kubernetes Service)Kubernetes 클러스터 관리- 관리형 Kubernetes- 다중 가용 영역 지원- 높은 이식성- 복잡한 마이크로서비스 아키텍처- 멀티 클라우드 환경
ECR (Elastic Container Registry)컨테이너 이미지 저장소- 프라이빗 도커 레포지토리- AWS 서비스와 호환성- 자동 이미지 스캐닝- 안전한 이미지 저장이 필요한 경우- ECS/EKS와 함께 사용

컨테이너 오케스트레이션

개념

컨테이너 오케스트레이션은 대규모 애플리케이션을 배포하고 관리하기 위해 컨테이너의 네트워킹 및 관리를 자동화하는 프로세스입니다.

비유

  • 레스토랑 주방 관리: 각 요리사(컨테이너)가 특정 요리를 담당하고, 주방장(오케스트레이션 도구)이 주방의 효율적인 운영을 조율하는 것과 같습니다.

쿠버네티스 (Kubernetes)

개념

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 높고 확장 가능한 오픈소스 플랫폼입니다.

비유

  • 물류 센터 관리 시스템: 수많은 상품(컨테이너)을 효율적으로 보관, 이동, 배송하는 과정을 자동화하고 최적화하는 시스템입니다.

주요 기능 및 활용 방법

  1. 자동화된 배포와 확장
    • 애플리케이션의 수요에 따라 자동으로 컨테이너를 배포하고 확장합니다.
    • 비유: 손님이 많아지면 요리사를 더 투입하는 것과 같습니다.
  2. 자가 복구
    • 실패한 컨테이너를 자동으로 재시작하거나 교체합니다.
    • 비유: 요리사가 아프면 즉시 다른 요리사로 대체합니다.
  3. 리소스 최적화
    • 사용 가능한 각 인스턴스의 리소스를 최대한 활용합니다.
    • 비유: 주방의 모든 조리 도구와 공간을 최대한 효율적으로 활용하는 것과 같습니다.
  4. 구성 관리
    • 애플리케이션의 설정을 쉽게 관리하고 업데이트할 수 있습니다.
    • 비유: 레시피(애플리케이션 설정)를 중앙에서 관리하고 필요에 따라 수정하는 것과 같습니다.

컨테이너 서비스와 오케스트레이션 관계도

+------------------------+
|       컨테이너         |
| (애플리케이션 + 의존성) |
+------------------------+
          |
          v
+--------------------------------------------+
|           컨테이너 오케스트레이션            |
| (배포, 관리, 확장, 네트워킹 자동화)          |
+--------------------------------------------+
          |
          v
+----------------------------------------------------------+
|                   AWS 컨테이너 서비스                     |
|                                                          |
|  +-------------+      +-------------+     +-------------+|
|  |     ECS     |      |     EKS     |     |     ECR     ||
|  | (AWS 자체   |      | (관리형      |     | (컨테이너   ||
|  |  오케스트   |      | Kubernetes) |     |  레지스트리) ||
|  |  레이션)    |      |             |     |             ||
|  +-------------+      +-------------+     +-------------+|
+----------------------------------------------------------+

추가 개념: 컨테이너의 이식성과 개발 편의성

  1. 이식성
    • 컨테이너 이미지는 어디서든 실행 가능합니다. 개발 환경, 테스트 환경, 프로덕션 환경에서 동일한 이미지를 사용할 수 있어 환경 의존성 문제를 해결합니다.
  2. 개발 편의성
    • 컨테이너는 특정 애플리케이션과 관련된 모든 의존성을 캡슐화하여 개발자가 코드 작성과 테스트에 집중할 수 있도록 지원합니다.

공부 한줄평

  • 컨테이너에 대한 실습은 docker를 주로해서 AWS를 통한 추가적인 실습이 필요로 할듯하다
  • 기존에 해놓은 프로젝트도 AWS를 사용하면 효율적인 애플리케이션 배포와 확장이 가능하고 쿠버네티스와 같은 오케스트레이션 도구를 활용하면 더욱 체계적이고 안정적인 운영이 가능할 것이라는 것을 배움
  • 하지만 돈이 문제겟지....
profile
인생 별거 없어

0개의 댓글