본문 바로가기

AWS/Docker

[AWS/Docker] AWS 도커(Docker)란?

AWS 도커(Docker)

도커는 애플리케이션을 빠르게 구축, 테스트 및 배포 할 수 있도록 도와주는 소프트웨어 플랫폼입니다. 도커와 관련해서는 이 블로그의 Infrastructure/Docker 카테고리에서도 독립적으로 다루고 있습니다. 현재 카테고리 AWS/Docker에서는 도커를 AWS 서비스에서 사용하는 방법에 대해서 소개합니다.

도커는 소프트웨어를 컨테이너(Docker Container)라고 부르는 표준화된 유닛으로 패키징합니다. 컨테이너는 코드, 라이브러리, 시스템 도구, 런타임 등을 포함 할 수 있으며 도커가 개발 및 서비스 환경에 구애받지 않고도 애플리케이션을 신속하게 배포하거나 확장 할 수 있도록 도와줍니다.

  • 도커를 사용하면 애플리케이션 운용을 표준화 할 수 있습니다. 
  • 환경에 구애받지 않고 안정적으로 실행되는 단일 애플리케이션 객체를 확보 할 수 있습니다.
  • 필요할 때마다 격리된 서비스를 굉장히 빠르게 배포 할 수 있고, 한 번 배포된 서비스 리소스는 재사용 될 수 있습니다.

AWS와 도커는 최근 협업 관계를 통하여 Docker Compose 및 Docker Desktop에서 현재 사용하는 것과 동일한 수준의 로컬 워크 플로우를 활용하여 Amazon EC2 및 AWS Fargate에 앱을 배포 가능하도록 지원합니다. 자세한 내용은 블로그를 참고합니다.

도커의 동작 방식

도커는 코드를 실행하는 표준 방식을 제공합니다. 도커는 컨테이너를 위한 일종의 운영체제이며, 컨테이너는 서버 운영 체제를 가상화합니다. 이 방식은 가상 머신이 하드웨어를 가상화 하는 방식과 유사하지만, 컨테이너는 운영 체제를 적재할 필요가 없다는 점에서 훨씬 가볍습니다.

출처 : https://aws.amazon.com/ko/docker/

도커 이미지(Docker Image)

도커의 이미지는 컨테이너를 정의하는 읽기 전용 템플릿입니다. 이 이미지에는 코드 실행에 필요한 라이브러리, 종속성 등에 대한 정의가 포함되어 있습니다. 도커 컨테이너는 이미지로부터 인스턴스화된(실행되는) 객체입니다.

AWS는 도커 이미지를 저장하고 신속하게 검색 할 수 있는 이미지 레스트리 서비스인 ECR(Amazon Elastic Container Registry)를 제공합니다.

AWS에서 도커 실행

AWS에서 도커를 사용하기 위해서는 일단 AWS 계정에 가입해야 합니다. 도커 데스크탑(Docker Desktop) 또는 도커 명령줄 인터페이스(Docker CLI, Command Line Interface)를 사용하여 Amazon ECS에 컨테이너를 배포 할 수 있습니다. AWS에서 도커 실행 및 관리를 위해 다음 서비스를 제공하고 있습니다.

  • AWS ECS
    AWS 클라우드에서 도커 컨테이너를 실행하기 위한 컨테이너 오케스트레이션(Orchestration) 서비스입니다. 컨테이너 오케스트레이션은 컨테이너의 배포, 확장, 관리, 네트워킹을 자동화합니다.
  • AWS Fargate
    서버를 프로비저닝(Provisioning)하지 않고도 프로덕션에서 컨테이너를 실행 할 수 있도록 지원하는 Amazon ECS의 기술입니다.
  • AWS EKS
    쿠버네티스(Kubernetes) 마스터를 설치 및 운영할 필요 없이 AWS에서 쿠버네티스를 실행 할 수 있도록 지원합니다.
  • AWS ECR
    도커 이미지를 저장하고 신속하게 검색 할 수 있는 이미지 레지스트리 서비스로써, 가용성이 뛰어나며 안전한 프라이빗 컨테이너 리포지토리입니다.
  • AWS Batch
    AWS에서 컨테이너를 사용하여 배치 컴퓨팅 작업을 쉽고 효율적으로 실행 할 수 있도록 지원합니다.
  • AWS Copilot
    AWS에서 컨테이너식 애플리케이션을 시작 및 관리 할 수 있도록 지원하는 명령줄 인터페이스(CLI)입니다.