Container와 Docker: AWS ECR & EKS

Gyuri hwang·2024년 4월 9일
0

container

: 코드와 그에 필요한 종속성을 패키징하여 응용 프로그램이 한 컴퓨팅 환경에서 빠르고 신뢰성 있게 다른 환경으로 실행되도록 하는 표준 소프트웨어 단위

  • 컨테이너 이미지
    : 컨테이너는 어떤 응용 프로그램을 실행할지 미리 정의해둔 파일을 바탕으로 실행됨
  • 가상화에 비해 가볍고 빠름
    : 컨테이너 내에 포함된 것이 적기 때문. 가상 서비를 기동한다면 OS, 미들웨어, 응용 프로그램 등이 필요. 따라서 가상 서버 이미지에는 이러한 파일이 모두 포함됨. 반면 컨테이너 이미지는 기본적으로 응용 프로그램을 시행하기 위한 의존성 패키지만 포함되므로 가상 서버에 비해 가벼움.
  • 배포의 용이성
    : 컨테이너 이미지는 한 번 생성하면 그 이미지를 다른 서버에서 바로 사용할 수 있음.
  • 컨테이너 런타임
    : 컨테이너 실행을 담당하는 소프트웨어
    → Docker

Docker

: 애플리케이션을 개발, 출시, 실행하는 데 사용하는 개방형 플랫폼

Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징함

Docker를 사용하면 인프라에서 애플리케이션을 분리하고 인프라를 관리형 애플리케이션처럼 취급할 수 있음. Docker는 코드를 더욱 빠르게 출시, 테스트, 배포하고 코드 작성과 실행 주기를 단축하는 데 도움이 됨. 이는 Docker의 커널 컨테이너화 기능을 애플리케이션 관리 및 배포를 지원하는 워크플로우 및 도구와 결합하기 때문!
→ '컨테이너를 관리하기 위한 기술'로 이해!

도커 이미지

: 애플리케이션을 실행하는 데 필요한 모든 것(라이브러리, 코드, 환경 변수 등)을 포장한 일종의 템플릿이자 변경불가 파일

layer 구조로 이루어짐

: 컨테이너를 실행하기 위한 모든 정보를 가지고 있기에 용량이 매우 큼 → 기존 이미지에 파일 하나를 수정할 때 기존 이미지와 수정된 파일을 전부 다시 받아야 한다면 비효율적 →이러한 문제를 해결하기 위해 layer 구조로 구성

도커 컨테이너

: 도커 이미지를 바탕으로 실제로 실행되는 애플리케이션
이미지로 컨테이너를 생성하면 이미지의 목적에 맞는 파일이 들어있는 파일 시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간이 생성됨 → 도커 컨테이너!

Kubernetes

https://kubernetes.io/ko/docs/concepts/overview/

: 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼 → 선언적 구성과 자동화를 용이하게 함

'컨테이너로 이루어진 워크로드를 자동화하거나 관리하기 위한 기술!'로 이해

*워크로드: 시스템이나 네트워크가 작업을 완료하거나 특정 출력을 생성하는 데 걸리는 시간과 컴퓨팅 리소스의 양

Amazon EKS

= Amazon Elastic Kubernetes Service

: AWS 클라우드와 온프레미스 데이터 선터에서 Kubernetes를 실행하는 데 사용되는 관리형 Kubernetes
*온프레미스: 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경
https://aws.amazon.com/ko/eks/

  • 컨테이너 예약, 애플리케이션 가용성 관리, 클러스터 데이터 저장 및 다른 주요 작업을 담당하는 Kubernetes 컨트롤 플레인의 가용성과 확장성을 관리
  • AWS 네트워킹 및 보안 서비스와의 통합뿐만 아니라 AWS 인프라의 모든 성능, 규모, 신뢰성 및 가용성을 활용할 수 있음
   

0개의 댓글