Amazon ECS에서 사용할 컨테이너 이미지 만들기
Amazon ECS에서 사용할 컨테이너 이미지 만들기
Amazon ECS는 작업 정의(task definition)에서 Docker 이미지를 사용해 컨테이너를 실행해요. 이 문서에서는 간단한 웹 서버용 컨테이너 이미지를 만들고, 이를 Amazon ECR에 푸시해서 ECS 작업 정의에서 사용하는 전체 과정을 배워요.
출처: 문서
본문
Amazon ECS는 작업 정의에서 Docker 이미지를 사용해 컨테이너를 실행합니다. Docker는 컨테이너에서 분산 애플리케이션을 빌드, 실행, 테스트, 배포할 수 있는 도구를 제공하는 기술입니다. Amazon ECS는 컨테이너화된 애플리케이션을 컨테이너 인스턴스 또는 AWS Fargate에 스케줄링합니다. 컨테이너화된 애플리케이션은 컨테이너 이미지로 패키징됩니다. 이 예시에서는 웹 서버용 컨테이너 이미지를 만듭니다. 여러분은 첫 Docker 이미지를 만들고, 그 이미지를 컨테이너 레지스트리인 Amazon ECR에 푸시해서 Amazon ECS 작업 정의에서 사용할 수 있습니다. 이 연습은 Docker가 무엇이고 어떻게 동작하는지에 대한 기본적인 이해가 있다고 가정합니다. Docker에 대한 자세한 내용은 What is Docker?와 Docker 문서를 참고하세요.
사전 준비 사항
시작하기 전에 다음 사전 준비 사항이 충족되었는지 확인하세요.
- Amazon ECR 설정 단계를 완료했는지 확인하세요. 자세한 내용은 Amazon Elastic Container Registry 사용 설명서의 Moving an image through its lifecycle in Amazon ECR(이미지를 Amazon ECR에서 수명 주기로 이동)를 참고하세요.
- 사용자에게 Amazon ECR 서비스에 접근하고 사용할 수 있는 필요한 IAM 권한이 있어야 해요. 자세한 내용은 Amazon ECR 관리 정책을 참고하세요.
- Docker가 설치되어 있어야 해요. Amazon Linux 2023용 Docker 설치 단계는 Installing Docker on AL2023을, 다른 운영 체제는 Docker Desktop overview의 Docker 문서를 참고하세요.
- AWS CLI가 설치되고 구성되어 있어야 해요. 자세한 내용은 AWS Command Line Interface 사용 설명서의 Installing or updating to the latest version of the AWS CLI를 참고하세요.
- 로컬 개발 환경이 없거나 필요 없고, Docker를 사용하기 위해 Amazon EC2 인스턴스를 이용하고 싶다면, Amazon Linux 2023을 사용해 Amazon EC2 인스턴스를 시작하고 Docker Engine과 Docker CLI를 설치하는 다음 단계를 제공합니다.
Docker는 Ubuntu 같은 대부분의 최신 Linux 배포판, 그리고 macOS와 Windows를 포함한 다양한 운영 체제에서 사용할 수 있습니다. 특정 운영 체제에 Docker를 설치하는 방법은 Docker 설치 가이드를 참고하세요. Docker를 사용하기 위해 로컬 개발 시스템이 필요하지는 않습니다. 이미 Amazon EC2를 사용하고 있다면 Amazon Linux 2023 인스턴스를 시작하고 Docker를 설치해 시작할 수 있습니다. 이미 Docker가 설치되어 있다면 Create a Docker image(Docker 이미지 만들기)로 건너뛰세요.
Amazon Linux 2023 AMI를 사용하는 Amazon EC2 인스턴스에 Docker 설치하기
- 최신 Amazon Linux 2023 AMI로 인스턴스를 시작하세요. 자세한 내용은 Amazon EC2 사용 설명서의 Launch an EC2 instance using the launch instance wizard in the console(콘솔에서 시작 마법사를 사용해 EC2 인스턴스 시작)을 참고하세요.
- 인스턴스에 연결하세요. 자세한 내용은 Amazon EC2 사용 설명서의 Connect to your EC2 instance(EC2 인스턴스에 연결)를 참고하세요.
- 인스턴스에 설치된 패키지와 패키지 캐시를 업데이트하세요.
sudo yum update -y
- 가장 최신 Docker Community Edition 패키지를 설치하세요.
sudo yum install docker
- Docker 서비스를 시작하세요.
sudo service docker start
sudo없이 Docker 명령을 실행할 수 있도록ec2-user를docker그룹에 추가하세요.
sudo usermod -a -G docker ec2-user
- 새로운
docker그룹 권한을 적용하려면 로그아웃 후 다시 로그인하세요. 현재 SSH 터미널 창을 닫고 새 창에서 인스턴스에 다시 연결하면 됩니다. 새 SSH 세션에는 적절한docker그룹 권한이 적용됩니다. ec2-user가sudo없이 Docker 명령을 실행할 수 있는지 확인하세요.
docker info
참고: 경우에 따라
ec2-user가 Docker 데몬에 접근할 수 있는 권한을 얻으려면 인스턴스를 재부팅해야 할 수도 있어요. 다음 오류가 보이면 인스턴스를 재부팅해 보세요.
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Docker 이미지 만들기
Amazon ECS 작업 정의는 클러스터의 컨테이너 인스턴스에서 컨테이너를 실행할 때 컨테이너 이미지를 사용합니다. 이 섹션에서는 간단한 웹 애플리케이션의 Docker 이미지를 만들고, 이를 로컬 시스템이나 Amazon EC2 인스턴스에서 테스트한 다음, Amazon ECS 작업 정의에서 사용할 수 있도록 Amazon ECR 컨테이너 레지스트리에 이미지를 푸시합니다.
간단한 웹 애플리케이션의 Docker 이미지 만들기
Dockerfile이라는 파일을 만드세요. Dockerfile은 Docker 이미지에 사용할 기본 이미지와, 이미지에 설치하고 실행할 내용을 설명하는 매니페스트입니다.