ECS -> ALB
목적 : ECS를 이용하여 docker container의 이미지를 가져와 instance를 구성하고 Application Load Balancer로 트래픽을 분산한다
1. VPC 구성 - Region(ap-northeast-2) 에 한개의 VPC를 구성
- Create VPC
- IPv4 CIDR block -> 10.0.0.0/16 으로 설정함
- name : myVPC
2. Internet gateway 작성(VPC->Internet Gateways)
- Create internet gateway
- Attach to VPC (작성된 internet gateway -> actions -> attach to vpc)
- myVPC에 연결
3. Route Table 작성
- Create public route
- Create route table
- Name tag : public
- VPC : myVPC
- Routes (작성된 route table을 누르고 Routes 탭)
- Edit routes -> Add route
destination (0.0.0.0/0) Target internet Gateway 선택 후 위의 igw 선택
- Save routes
- Create private route
- Create route table
- Name tag : public
- VPC : myVPC
- Routes (작성된 route table을 누르고 Routes 탭)
- Save routes
4. subnet 구성 - 각각 AZ에 public subnet과 private subnet을 작성(VPC->Subnets)
- Create subnet AZ별 public private 총 6개
- VPC - myVPC 선택
- Name Tag -> [AZ1_pb, AZ2_pb, AZ3_pb, AZ1_pr, AZ2_pr, AZ3_pr]
- Available Zone -> ap-northeast-2a 선택
- IPv4 CIDR block : [10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24, 10.0.5.0/24, 10.0.6.0/24]
10.0.1.0/24 는 ( 10.0.1.0~10.0.1.255 )앞의 24bit 고정된 ip address할당
5. NAT Gateway 작성
- Create NAT Gateway( VPC Dashboard -> NAT Gateways)
- Subnet : AZ1_pb
- Elastic IP Allocation ID : Create New EIP
6. Private Route table에 NAT Gateway routing 추가
7. Elastic Container Service 구성
- Create new Task Definition(Amazon ECS-> Task Definitions)
- EC2 선택
- Configure task and container definitions
- Task Definition Name : example
- Task Role : ecsTaskExecutionRole
- Network Mode : default
default로 안하면 cluster에서 instance 선택이 안됨
- Task execution role : ecsTaskExecutionRole
- Task memory : 4 gb
- Task CPU(unit) : 1024
- Add container : ecr에 등록된 container id 작성
- container에서 사용할 port와 host에서 사용할 port를 작성