Docker & AWS 수업 자료

이 문서는 개발자가 컨테이너 개념 이해 → 명령어 숙달 → 이미지 빌드 → 다중 컨테이너 오케스트레이션 → AWS 인프라 구축 → 자동 배포 파이프라인까지 순서대로 익힐 수 있도록 구성한 교안이다.

커리큘럼 구성

Part 1. Docker 기본 과정

챕터

내용

Docker 개요

컨테이너화 배경, VM 비교, Docker 엔진 구조

Docker 설치 및 설정

Windows(WSL2) / macOS 설치, WSL Integration

Docker 기본 명령어

컨테이너·이미지·네트워크·볼륨 명령어 + 8단계 실습

이미지 생성 및 관리

Dockerfile, 멀티 스테이지 빌드, 레이어 캐시, Docker Hub, visit-counter 앱

Docker Compose

3-tier(Nginx + Spring Boot + MySQL) 구성, Secrets, 헬스체크

Part 2. 레퍼런스

챕터

내용

Dockerfile 인스트럭션 레퍼런스

FROM/RUN/CMD/ENTRYPOINT 등 문법 정리 + 확인 실습 3개

Docker 환경 설정

WSL 이미지 저장 경로 변경, docker 그룹 권한, 컨테이너 로그 크기 제한

Part 3. Docker 실전 프로젝트

챕터

내용

무중단 배포환경 구축

Blue/Green 배포 스크립트, 헬스체크 기반 전환

Part 4. AWS

챕터

내용

클라우드와 AWS

IaaS/PaaS/SaaS/FaaS, 주요 서비스, 리전·AZ, IAM, 네트워크 기초

EC2 인스턴스 생성

인스턴스 생성, Elastic IP 과금, SSH 접속, Amazon Linux 2023 초기 설정

Supabase 데이터베이스

프로젝트 생성, 직접 연결 vs 풀러, PostgreSQL 전환

EC2에 Docker로 배포하기

Docker 설치, GHCR push/pull, 환경변수 주입, 보안 그룹

GitHub Actions로 자동 배포하기

워크플로, GHCR, 배포용 SSH 키, Secrets, 롤백

Nginx로 무중단 배포하기

블루·그린, 리버스 프록시, 헬스 체크 후 전환, 배포 키 강제 명령

학습 순서 권장

[Part 1] 개요 ─→ 설치 ─→ 기본 명령어
                              │
                              ▼
                  이미지 생성 및 관리 ─→ Dockerfile 레퍼런스
                              │
                              ▼
                       Docker Compose
                              │
              ┌───────────────┴───────────────┐
              ▼                               ▼
      [Part 3] Docker 실전            [Part 4] AWS
      Blue/Green 무중단 배포          클라우드 개요 → EC2 → Supabase
                                              │
                                              ▼
                                      수동 배포 → GitHub Actions CI/CD
                                              │
                                              ▼
                                      Nginx 무중단 배포

Part 3과 Part 4는 독립적으로 진행할 수 있다. Part 3은 리눅스 서버 한 대에 Nginx·DB·앱을 전부 컨테이너로 올리고 스크립트를 직접 실행해 무중단 배포하는 방법을, Part 4는 EC2 위에서 GitHub Actions와 Nginx로 같은 일을 자동화하는 방법을 다룬다. 두 방식을 비교해 보면 원리가 같다는 것이 드러난다.

Part 3 은 개인 PC 가 아니라 메모리 2 GiB 이상의 리눅스 호스트가 필요하다. 교안은 EC2 t3.small 에서 실측했다. EC2 를 처음 만든다면 Part 4 의 EC2 인스턴스 생성을 먼저 보고 온다.

실습 환경

구분

버전

Docker (로컬)

Docker Desktop 최신판 — 교안 출력은 Docker Engine 29 기준

Docker (EC2)

Amazon Linux 2023 저장소판 — Docker 25 대. 일부 명령의 출력 형식이 로컬과 다르다

Docker Compose

내장 플러그인 docker compose (v5.x)

JDK

21 (LTS) — 컨테이너 이미지(Temurin) 안에만 둔다. EC2 에는 Java 를 설치하지 않는다

EC2 OS

Amazon Linux 2023

MySQL

8.4 (LTS) — Part 1~3의 컨테이너 데이터베이스

PostgreSQL

Supabase 관리형 — Part 4의 데이터베이스

마지막 수정 2026년 10월 23일