AWS ECR
AWS ECR
목차
- VPC 네트워크 구성
- 서브넷
- 인터넷 게이트웨이(Internet-gateway)
- 라우팅 테이블 (routing table)
- 보안 그룹
- EC2(Amazon Linux 2023)
- EC2(Ubuntu)
- ECR(Elastic Container Registry)
네트워크 설정
VPC 네트워크 구성
| 구분 | 이름 | 내용 |
|---|---|---|
| VPC | pista-ecs-vpc | 10.0.0.0/20 |
| Public Subnet | pista-ecs-subnet-public1-1apista-ecs-subnet-public2-1b | 10.0.0.0/2510.0.1.0/25 |
| Private Subnet | pista-ecs-subnet-private1-1apista-ecs-subnet-private2-1b | 10.0.0.128/2510.0.1.128/25 |
| Internet gateway | pista-ecs-igw | vpc 연결 : pista-ecs-vpc |
| Routing Table(public용) | pista-ecs-rtb-public | Routing : 0.0.0.0/0, pista-ecs-igwSubnet : pista-ecs-subnet-public1-1aSubnet : pista-ecs-subnet-public2-1b |
| Routing Table(private용) | pista-ecs-rtb-private | Routing : 추가 없음.Subnet : pista-ecs-subnet-private1-1aSubnet : pista-ecs-subnet-private2-1b |
| 보안 그룹 | default(pista-ecs-sg-defult) pista-ecs-sg-ec2pista-ecs-sg-albpista-ecs-sg-container | -SSH - 0.0.0.0(추후 변경 필요)HTTP - 0.0.0.0모든 TCP - 사용자 지정 - pista-ecs-sg-alb |
VPC 생성(pista-ecs-vpc)
| 변수 | 값 |
|---|---|
| VPC 설정-생성할 리소스 | VPC만 |
| VPC 설정-이름 태그 | pista-ecs-vpc |
| VPC 설정-IPv4 CIDR 블록 | IPv4 수동 입력 |
| VPC 설정-IPv4 CIDR | 10.0.0.0/16 |
| VPC 설정-IPv6 CIDR 블록IPvCIDR블록없음 | ✅ |
| VPC 설정-테넌시 | 기본값 |
| VPC 설정-VPC 암호화 제어 ($) | 없음 |
| 태그-Name | pista-ecs-vpc |

VPC 설정 편집(pista-ecs-vpc)
VPC > VPC > pista-ecs-vpc > VPC 설정 편집
| 변수 | 값 |
|---|---|
| DNS 설정-DNS 확인 활성화 | ✅ |
| DNS 설정-DNS 호스트 이름 활성화 | ✅ |

DHCP 태그관리(pista-ecs-vpc)
VPC > DHCP 옵션 세트 > pista-rt-vpc > 태그 관리
| 변수 | 값 |
|---|---|
| 태그-Name | pista-dhcp-vpc |

서브넷
서브넷 생성(pista-subnet-public1-1a)
| 변수 | 값 |
|---|---|
| 서브넷 이름 | pista-subnet-public1-1a |
| 가용영역 | ...-1a |
| IPv4 VPC CIDR 블록 | 10.0.0.0/16 |
| IPv4 서브넷 CIDR 블록 | 10.0.0.0/25 |
| 태그-Name | pista-subnet-public1-1a |
서브넷 생성(pista-subnet-public2-1b)
| 변수 | 값 |
|---|---|
| 서브넷 이름 | pista-subnet-public2-1b |
| 가용영역 | ...-1b |
| IPv4 VPC CIDR 블록 | 10.0.0.0/16 |
| IPv4 서브넷 CIDR 블록 | 10.0.1.0/25 |
| 태그-Name | pista-subnet-public2-1b |
서브넷 생성(pista-subnet-private1-1a)
| 변수 | 값 |
|---|---|
| 서브넷 이름 | pista-subnet-private1-1a |
| 가용영역 | ...-1a |
| IPv4 VPC CIDR 블록 | 10.0.0.0/16 |
| IPv4 서브넷 CIDR 블록 | 10.0.0.128/25 |
| 태그-Name | pista-test-subnet-private1-1a |
서브넷 생성(pista-subnet-private2-1b)
| 변수 | 값 |
|---|---|
| 서브넷 이름 | pista-subnet-private2-1b |
| 가용영역 | ...-1b |
| IPv4 VPC CIDR 블록 | 10.0.0.0/16 |
| IPv4 서브넷 CIDR 블록 | 10.0.1.128/25 |
| 태그-Name | pista-subnet-private2-1b |

인터넷 게이트웨이(Internet-gateway)
인터넷 게이트웨이 생성(pista-ecs-igw)
VPC > 인터넷 게이트웨이 > 인터넷 게이트웨이 생성
| 변수 | 값 |
|---|---|
| 태그-Name | pista-ecs-igw |

인테넷 게이트웨이 VPC 연결
VPC > 인터넷 게이트웨이 > VPC연결
| 변수 | 값 |
|---|---|
| VPC-사용 | pista-ecs-vpc |

라우팅 테이블 (routing table)
라우팅 테이블 생성 (pista-ecs-rtb-public)
| 변수 | 값 |
|---|---|
| 라우팅 테이블 설정-이름 | pista-ecs-rtb-public |
| 라우팅 테이블 설정-VPC | vpc |
| 태그-Name | pista-ecs-rtb-public |
라우팅 편집 (pista-ecs-rtb-public)
| 변수 | 값 |
|---|---|
| 대상 | 0.0.0.0/0 |
| 대상 | igw |
서브넷 연결 편집 (pista-ecs-rtb-public)
| 변수 | 값 |
|---|---|
| 이용 가능한 서브넷 | public1 public2 |

라우팅 테이블 생성 (pista-ecs-rtb-private)
| 변수 | 값 |
|---|---|
| 라우팅 테이블 설정-이름 | pista-ecs-rtb-private |
| 라우팅 테이블 설정-VPC | vpc |
| 태그-Name | pista-ecs-rtb-private |
라우팅 편집 (pista-ecs-rtb-private)
| 변수 | 값 |
|---|---|
| 대상 | 없음 |
서브넷 연결 편집 (pista-ecs-rtb-private)
| 변수 | 값 |
|---|---|
| 이용 가능한 서브넷 | |
| private1 private2 |
보안 그룹
보안 그룹 생성 (pista-ecs-sg-default)
VPC > 보안그룹 > 보안그룹 생성
| 변수 | 값 |
|---|---|
| 태그-Name | pista-ecs-sg-default |
보안 그룹 생성 (pista-ecs-sg-ec2)
VPC > 보안그룹 > 보안그룹 생성
| 변수 | 값 |
|---|---|
| 인바운드 | SSH - 0.0.0.0/0 |
| 태그-Name | pista-ecs-sg-ec2 |
보안 그룹 생성 (pista-ecs-sg-alb)
VPC > 보안그룹 > 보안그룹 생성
| 변수 | 값 |
|---|---|
| 인바운드 | HTTP - 0.0.0.0/0 |
| 태그-Name | pista-ecs-sg-alb |
보안 그룹 생성 (pista-ecs-sg-container)
VPC > 보안그룹 > 보안그룹 생성
| 변수 | 값 |
|---|---|
| 인바운드 | 사용자 지정 TCP-pista-ecs-sg-alb |
| 태그-Name | pista-ecs-sg-container |
EC2(Amazon Linux 2023)
인스턴스 생성(pista-ecs-ec2-al2023)
| 변수 | 값 |
|---|---|
| 태그-Name | pista-ecs-ec2-al2023 |
| AMI | Amazon Linux 2023 |
| 인스턴스 유형 | t2.micro |
| 키 페어 | pistakey |
| 네트워크 설정-vpc | vpc |
| 네트워크 설정-서브넷 | 서브넷 |
| 네트워크 설정-퍼블릭 IP 자동 할당 | ✅ |
| 네트워크 설정-방화벽 | 기존 보안 그룹 선택 |
| 네트워크 설정-일반보안그룹 | pista-ecs-sg-ec2 |
| 스토리지 구성 | 1x32GIB gp3 루트불륨 |
Docker 설치 (Amazon Linux)
# Docker 설치
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
# 사용자 그룹 추가
sudo usermod -aG docker $USER
newgrp docker
AWS CLI 설치 (Amazon Linux)
# Amazon Linux 2023에는 AWS CLI가 기본 설치되어 있음
aws --version
EC2(Ubuntu)
인스턴스 생성(pista-ecs-ec2-ubuntu)
| 변수 | 값 |
|---|---|
| 태그-Name | pista-ecs-ec2-ubuntu |
| AMI | Ubuntu |
| 인스턴스 유형 | t2.micro |
| 키 페어 | pistakey |
| 네트워크 설정-vpc | vpc |
| 네트워크 설정-서브넷 | 서브넷 |
| 네트워크 설정-퍼블릭 IP 자동 할당 | ✅ |
| 네트워크 설정-방화벽 | 기존 보안 그룹 선택 |
| 네트워크 설정-일반보안그룹 | pista-ecs-sg-ec2 |
| 스토리지 구성 | 1x32GIB gp3 루트불륨 |
Docker 설치 (Ubuntu)
# Docker GPG 키
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Docker 리포지토리
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
# Docker 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 사용자 그룹 추가
sudo usermod -aG docker $USER
newgrp docker
AWS CLI 설치 (Ubuntu)
sudo apt install unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
docker build & image
ECR(Elastic Container Registry)
ECR 생성(pista/web)
ECR > 리포지토리 > 리포지토리 생성
| 변수 | 값 |
|---|---|
| 일반 설정- 리포지토리 이름 | pista/web |
| 이미지 태그 설정-이미지 태그 변경 가능 | Mutable |
ECR 푸시(pista/web)
ECR > 리포지토리 > pista/web > 푸시 명령 보기
# 1. ECR 로그인
aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.ap-southeast-1.amazonaws.com
# 2. 이미지 빌드
docker build -t pista/web .
# 3. 이미지 태그 지정
docker tag pista/web:latest <AWS_ACCOUNT_ID>.dkr.ecr.ap-southeast-1.amazonaws.com/pista/web:latest
# 4. ECR에 푸시
docker push <AWS_ACCOUNT_ID>.dkr.ecr.ap-southeast-1.amazonaws.com/pista/web:latest
⚠️
<AWS_ACCOUNT_ID>를 실제 AWS 계정 ID(12자리 숫자)로 교체하세요.