본문 바로가기

AWS/Docker

[AWS/Docker] Amazon ECS를 사용하기 위한 준비

Amazon ECS

Amazon Elastic Conatiner Service(ECS)는 클러스터에서 컨테이너를 실행, 중지 및 관리 할 수 있도록 도와주는 컨테이너 관리 서비스입니다. Amazon ECS 사용을 위해 우선 AWS 계정을 생성합니다.

IAM 사용자로 접근

우리가 AWS에 가입한 계정은 루트 계정입니다. 루트 계정으로부터 IAM 사용자를 생성하여 Amazon EC2 또는 ECS 등에 대한 액세스 권한을 부여합니다. IAM 사용자를 생성하는 방법은 이 블로그의 IAM 카테고리 또는 AWS 공식 도큐먼트를 참고합니다. 이어지는 작업은 IAM 사용자를 통해 진행합니다.

키 페어 생성

AWS에서는 퍼블릭 키 암호화를 사용하여 Amazon EC2 인스턴스에 대한 로그인 정보를 보호합니다. 반면 Amazon ECS 컨테이너 인스턴스와 같은 Linux 인스턴스는 SSH 액세스에 사용 할 수 있는 암호가 없습니다.

Amazon ECS 컨테이너 인스턴스에 대한 로그인 정보를 보호하기 위해 AWS는 키 페어 사용을 권장합니다. 컨테이너 인스턴스를 시작할 때 키 페어의 이름을 지정하고, SSH로 로그인 할 때 프라이빗 키를 제공합니다.

  1. 키 페어 생성
    키 페어는 각 AWS 리전에서 생성합니다. 우선 Amazon EC2 콘솔에 접근합니다.
  2. 리전 선택
    우측 상단 탭 > 리전을 선택하여 키 페어를 만들 리전을 선택합니다. 키 페어는 각 AWS 리전 별로 고유하기 때문에 콘솔에서 선택되어 있는 리전에 유의해야 합니다. 한국에서 개발하고 있다면 서울 리전을 권장합니다.
  3. 키 페어 생성
    좌측 탐색 창 > 네트워크 및 보안 > 키 페어로 이동합니다. 페이지가 열리면 키 페어 생성 버튼을 클릭합니다.
  4. 키 페어 정보 입력
    키 페어 생성 대화 상자에서 키 페어 이름을 입력합니다. 기억하기 쉽고 정형화된 이름을 사용하는 것이 좋습니다. AWS에서는 IAM 사용자 이름-key-pair-리전 이름과 같은 규칙을 권장합니다. 예를 들면 administrator-key-pair-ap-northeast-2와 같이 사용합니다.
  5. 키 페어 생성 완료
    키 페어 유형은 디폴트 RSA를 사용하며 프라이빗 키 파일 형식은 디폴트 .pem입니다. 키 페어 생성 버튼을 클릭하여 작업을 완료하고 대화 상자를 종료합니다.
    버튼을 클릭하면 자동으로 프라이빗 키 파일을 다운로드합니다. 파일 이름은 키 페어 이름.pem입니다. 프라이빗 키 파일은 다시 다운로드 받을 수 없으므로 관리에 유의해야 합니다.
  6. 파일 권한 부여
    Linux 또는 MacOS 사용자라면 SSH에서 프라이빗 키 파일을 읽을 수 있도록 권한을 부여해야 합니다. 터미널을 열고 프라이빗 키 파일이 위치한 경로로 이동하여 다음 명령문을 실행합니다.
    $ chmod 400 [키 페어 이름.pem]

Amazon VPC 생성

Amazon Virtual Private Cloud(VPC)를 사용하면 사용자가 정의한 가상의 네트워크로 AWS 리소스를 시작 할 수 있습니다. 기본 VPC가 있다면 Amazon ECS를 학습하는데 문제가 없습니다.

기본 VPC 지원 여부는 Amazon EC2 대시보드에서 확인 할 수 있습니다. 대시보드의 우측 계정 속성 > 지원되는 플랫폼에서 VPC 지원을 확인합니다. VPC는 리전 별로 관리되므로 키 페어를 생성한 리전과 동일한 리전에서 확인합니다.

만약 기본 VPC가 존재하지 않으면 AWS 공식 도큐먼트 절차를 따라서 사용자 VPC를 추가해야 합니다. 기본 VPC를 지원하면 현재 섹션을 건너 뛰고 보안 그룹 생성 섹션으로 이동합니다.

보안 그룹 생성

보안 그룹은 연결된 컨테이너 인스턴스의 방화벽 역할을 수행합니다. 방화벽은 컨테이너 인스턴스 수준에서의 인바운드 및 아웃바운드 트래픽을 제어합니다.

최소 권한으로 보안 그룹을 생성하려면 다음 절차를 따릅니다.

  1. Amazon EC2 대시보드로 이동
    Amazon EC2 대시보드로 이동합니다.
    보안 그룹은 리전 별로 관리됩니다. 키 페어 및 VPC 설정과 동일한 리전을 선택합니다.
  2. 보안 그룹 생성
    좌측 탐색 창에서 네트워크 및 보안 > 보안 그룹으로 이동합니다. 페이지가 열리면 보안 그룹 생성 버튼을 클릭합니다.
  3. 보안 그룹 정보 입력
    기본 세부 정보 > 보안 그룹 이름과 설명을 입력합니다. 예시(ecs-instances-default-cluster)와 같은 기억하기 쉬운 이름을 사용합니다. 이어서 기본 세부 정보 > VPC에서 기본 VPC를 선택합니다. 기본 VPC ID는 Amazon EC2 대시보드에서 확인 할 수 있습니다.
  4. 인바운드 규칙 추가
    컨테이너 인스턴스에 로그인하고 도커 명령문을 사용하여 태스크를 검사 할 수 있도록 SSH 규칙을 추가합니다. 또한 컨테이너 인스턴스가 웹 서버를 실행하는 태스크를 호스팅하기 위해 HTTP/HTTPS 인바운드 규칙을 추가하거나 Amazon EC2 서비스 앤드 포인트와 통신하기 위해 외부 네트워크에 엑세스 할 수 있습니다. 인바운드 규칙 > 규칙 추가를 클릭합니다.
    인바운드 규칙은 다음과 같이 입력합니다. SSH 유형에서 소스는 작업용 PC의 퍼블릭 IP 주소를 CIDR 표기법으로 입력합니다.

AWS CLI 설치 

AWS Management Console은 Amazon ECS의 모든 태스크를 수동 관리할 수 있습니다. 반면 AWS CLI를 설치하면 Amazon ECS의 일반적인 관리 태스크를 자동화 할 수 있는 스크립트를 작성 할 수 있습니다. CLI에서 Amazon ECS를 사용하려면 최신 버전의 AWS CLI가 필요합니다. AWS CLI 설치는 AWS 공식 도큐먼트에서 확인합니다.

현재 PC에서 AWS CLI가 설치되어 있는지 확인하려면 터미널에서 다음 명령문을 실행합니다.

$ aws --version
aws-cli/2.4.11 Python/3.8.8 Darwin/20.6.0 exe/x86_64 prompt/off