AWS EC2에서 Docker, Docker Compose 설치 및 Terminus

gittidev·2025년 4월 4일

infra

목록 보기
1/3

1. Docker 및 Docker Compose 설치 (Ubuntu 22.04 환경)

DockerDocker Compose는 애플리케이션을 컨테이너화하고 멀티 컨테이너 애플리케이션을 관리하는 데 필수적인 도구입니다. 우분투 22.04에서 DockerDocker Compose를 설치하는 방법을 아래에 설명합니다.

1.1 Docker 설치 (우분투 22.04)

  1. 시스템 업데이트:
    먼저, 시스템 패키지를 업데이트합니다.

    sudo apt-get update
  2. 필요한 패키지 설치:
    Docker를 설치하기 전에 필요한 패키지를 설치합니다.

    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  3. Docker GPG 키 추가:
    Docker의 GPG 키를 시스템에 추가합니다.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. Docker 리포지토리 추가:
    Docker의 공식 리포지토리를 시스템에 추가합니다.

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Docker 설치:
    이제 Docker를 설치합니다.

    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  6. Docker 서비스 시작:
    Docker 서비스를 시작하고, 자동 시작 설정을 합니다.

    sudo systemctl start docker
    sudo systemctl enable docker
  7. Docker 설치 확인:
    설치가 제대로 되었는지 확인합니다.

    docker --version

    정상적으로 설치되었다면 Docker 버전 정보가 출력됩니다.

1.2 Docker Compose 설치

  1. Docker Compose 설치:
    아래 명령어로 Docker Compose를 설치합니다.

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. 실행 권한 부여:

    sudo chmod +x /usr/local/bin/docker-compose
  3. Docker Compose 버전 확인:
    설치가 완료되었으면 버전 정보를 확인합니다.

    docker-compose --version

    정상적으로 설치되었다면 Docker Compose 버전 정보가 출력됩니다.


2. Terminus로 EC2 인스턴스에 SSH 접속하기

TerminusSSH 클라이언트로, EC2 인스턴스에 쉽게 접속할 수 있게 도와주는 도구입니다. Terminus를 사용해 AWS EC2 인스턴스에 SSH 접속하는 방법을 설명합니다.

2.1 Terminus 설치

  1. Terminus 공식 웹사이트에서 설치 파일을 다운로드하여 설치합니다.

2.2 EC2 인스턴스의 퍼블릭 IP 확인

  1. AWS Console에서 EC2 인스턴스를 선택하고, 퍼블릭 IP 주소를 확인합니다.

2.3 SSH 접속 설정

  1. Terminus 실행 후, New Connection을 클릭하여 새로운 SSH 연결을 설정합니다.

  2. SSH 설정 입력:

    • Host: ec2-xx-xx-xx-xx.compute-1.amazonaws.com (EC2 퍼블릭 IP 또는 DNS)
    • User: ec2-user (Amazon Linux의 경우) 또는 ubuntu (Ubuntu의 경우)
    • Private Key: .pem 파일을 선택합니다.
    • Port: 22 (기본 SSH 포트)
  3. Connect 버튼 클릭하여 접속합니다.

2.4 접속 확인

정상적으로 접속되면 EC2 인스턴스의 터미널로 들어가게 됩니다. 이제 EC2 인스턴스에서 명령어를 실행할 수 있습니다.


3. 도메인 Route 53을 통해 EC2 퍼블릭 IP와 연결하기

AWS Route 53을 사용하여 EC2 인스턴스도메인을 연결하는 방법입니다.

3.1 Route 53에서 호스팅 영역 만들기

  1. AWS Management Console에 로그인하고 Route 53 서비스를 선택합니다.
  2. Hosted Zones를 선택하고 Create Hosted Zone을 클릭합니다.
  3. 도메인 이름을 입력하고, TypePublic Hosted Zone으로 설정합니다.
  4. Create 버튼을 클릭하여 호스팅 영역을 생성합니다.

3.2 DNS 레코드 설정

  1. A 레코드 추가

    • Name: @ (루트 도메인)
    • Type: A
    • Value: EC2 퍼블릭 IP 입력 (예: 123.45.67.89)
    • TTL: 기본값인 3600초로 설정
  2. CNAME 레코드 추가 (선택 사항)

    • Name: www
    • Type: CNAME
    • Value: mywebsite.com
    • TTL: 3600

3.3 EC2에서 웹 서버 설정 (Nginx)

  1. Nginx 설치

    sudo apt-get install nginx
  2. Nginx 설정 파일 수정

    Nginx 설정 파일을 열고, FastAPI 애플리케이션에 대한 리버스 프록시 설정을 추가합니다.

    server {
        listen 80;
        server_name mywebsite.com www.mywebsite.com;
    
        location / {
            proxy_pass http://fastapi:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
  3. Nginx 재시작

    sudo systemctl restart nginx

3.4 DNS 전파 기다리기

Route 53에서 설정한 DNS 레코드가 전파되려면 최대 48시간이 걸릴 수 있습니다. 이 시간이 지나면 도메인을 통해 EC2 인스턴스에 접속할 수 있습니다.


🎯 결론

  • Docker와 Docker ComposeUbuntu 환경에서 설치하고, Terminus를 사용해 EC2 인스턴스에 접속할 수 있습니다.
  • Route 53을 통해 도메인과 EC2 퍼블릭 IP를 연결하여 웹 애플리케이션을 도메인으로 접근할 수 있습니다.
  • 위 과정을 통해 AWS EC2 인스턴스에서 FastAPI와 Nginx를 실행하고, 도메인 연결을 통해 외부에서 접속할 수 있게 됩니다.

0개의 댓글