1. EC2 인스턴스 생성
2. EC2 인스턴스 접속
3. Docker, Docker Compose 설치
# 패키지 업데이트
sudo yum update -y
# Docker 설치
sudo yum install -y docker
# Docker 데몬 시작
sudo service docker start
# (선택) 부팅 시 Docker 자동 시작
sudo systemctl enable docker
# ec2-user(또는 원하는 사용자)를 docker 그룹에 추가
sudo usermod -aG docker ec2-user
# (권장) 최신 버전 설치를 원한다면, GitHub 릴리스 페이지에서 버전 번호를 바꿔 사용하세요.
# https://github.com/docker/compose/releases
# 1) 바이너리 다운로드
sudo curl -L "https://github.com/docker/compose/releases/download/2.33.1/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
# 2) 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
# 3) (옵션) 편의를 위해 심볼릭 링크 생성
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4. ECR 생성
1. Mutable
• 동일한 태그를 여러 번 덮어쓸 수 있는 모드.
• 예: latest 태그로 이미지를 한 번 푸시한 뒤, 다시 빌드된 이미지를 동일한 latest 태그로 푸시하면 이전 이미지는 덮어쓰임.
• CI/CD 파이프라인에서 항상 latest 태그로 이미지를 올리는 식으로 손쉽게 사용할 수 있지만, 이미 존재하는 태그가 다른 이미지로 바뀔 수 있기 때문에, “태그가 가리키는 이미지가 시간에 따라 변할 수 있다”는 점에 유의해야 함.
2. Immutable
• 한 번 푸시된 태그를 이후에 덮어쓸 수 없는 모드.
• 예: latest 태그로 이미지를 푸시한 후, 동일 태그(latest)로 새 이미지를 푸시하려고 하면 오류가 발생하여 덮어쓸 수 없음.
• 운영/프로덕션 환경에서 특정 태그가 한 번 정해지면 절대로 바뀌지 않게 함으로써, “태그 = 특정 이미지”라는 불변성을 보장할 수 있다.
• 하지만 매번 새 버전의 이미지를 푸시할 때마다 새 태그를 발행해야 하므로, 태그 관리가 다소 번거로울 수 있다.
1. AES-256 (기본 S3 서버 사이드 암호화, SSE-S3)
• AWS가 기본적으로 제공하는 서버 사이드 암호화 방식.
• 별도의 KMS(Key Management Service) 키를 사용하지 않고, AWS가 자동으로 관리하는 키로 데이터를 암호.
• 설정이 간단하고 추가 비용 없이 사용 가능.
• 하지만 고객이 직접 키를 관리하거나, 세부적인 키 정책을 설정하기는 어려움.
2. AWS KMS (SSE-KMS)
• AWS Key Management Service(KMS)에서 제공하는 고객 관리형 키(CMK) 또는 AWS 관리형 키를 사용해 암호화함.
• 세부적인 키 제어, 키 정책, 접근 권한 등을 설정할 수 있으며, 키 회전 등을 통한 보안 강화를 할 수 있다.
• 다만 KMS 사용에 따른 소정의 비용이 발생할 수 있으며, KMS 권한/정책을 잘 설정해야 함.