# 사전작업 수행
2021.12.22 - [AWS/ECR] - ECR에서 NginX 컨테이너 생성하기
2021.12.23 - [AWS/ECR] - ECR에서 이미지 pull 하여 서버에 저장하기
# ECS 클러스터 생성하기
- Amazon ECS 로 이동합니다. ECS를 이용하는 게 처음이라면 Get started 화면이 보일 것입니다. 무시하고 Amazon ECS 좌측 내비게이터에서 클러스터로 이동합니다. 클러스터 생성을 클릭합니다.
1. EC2 Linux + 네트워킹을 선택 후 다음 단계로 넘어 갑니다.
2. 클러스터 구성 화면으로 이동합니다. 아래와 같은 스펙을 선택하여 클러스터를 생성합니다.
● 클러스터 구성을 선택 클러스터 이름을 입력 합니다.
- 클러스터 이름 : ecs-service-seung
- EC2 인스턴스 유형 : t2.micro
- 인스턴스 개수 : 1
- EC2 AMI ID : Amazon Linux 2 AMI
- Root EBS Volume Size(GiB) : 30
- 키 페어 : 기존 에 사용중인 Key 선택
● Networking VPC 사용하여 구성 합니다.
- VPC : VPC
- 서브넷 : A 지정(private), B 지정(public)
- 보안 그룹 : 신규생성 및 기존 보안그룹 활용(22, 80)
- !주의사항: 클러스터 생성 시 퍼블릭IP 자동 할당 항목에서 활성화를 시켜야 ECS 인스턴스 항목에서 확인이 가능하다.
3. ECS 인스턴스 IAM Role 권한 추가
IAM 역할로 이동합니다. ecsInstancerole을 검색하여 이전에 생성한 롤을 검색합니다.
(ecsInstancerole이 없다면 신규로 생성-다른 이름으로 생성해도 무관함)
검색된 ecsInstancerole롤을 선택하고 Attach policies를 클릭하여 AmazonEC2 ContainerServiceforEC2 Role과 CloudWatchLogsfullAccess를 추가합니다.
4. ECS기반 작업 정의
Amazon ECS 작업 정의로 이동하여 새 작업 정의 생성을 클릭합니다.
시작 유형 호환성 선택에 EC2를 선택합니다.
5. 테스트 정의 이름에 NGINX-DOC이라고 명시하고 컨테이너 추가를 클릭합니다.
6. 컨테이너 추가를 클릭하여 아래와 같이 컨테이너 이름을 입력하고, ECR에 업로드한 이미지 주소를 입력해 줍니다. 메모리 제한과 포트 매핑을 설정 후 생성을 클릭합니다.
7. 두 번째로 파 게이트 기반의 작업 정의를 생성해 보도록 하겠습니다.
ECS 작업 정의로 이동하여 새 작업 정의를 생성합니다. 시작 유형 호환성 선택에서 FARGATE를 선택합니다.
8. 작업 및 컨테이너 정의 구성에서 아래와 같이 설정합니다.
9. 컨테이너 추가를 클릭하여 ECR에서 생성한 이미지를 추가해 줍니다.
10. ECR 컨테이너를 추가 후 FARGATE 생성을 하면 생성이 완료됩니다.
- ECS Tasks 메뉴에서 생성된 작업을 확인할 수 있다.
11. ECS 서비스 생성
- ALB 생성 위해 EC2 로드밸런서로 이동합니다. 로드 밸런서 생성을 클릭하고 ALB를 선택 및 생성합니다.
- 1단계 : 로드밸런서를 구성
로드 밸런서 이름 : nginx-alb
VPC 및 가용 영역을 선택
보안 그룹 구성 → 이전에 생성한 ECS 보안 그룹을 선택하여 맵핑 (신규로 생성해도 무관함 80, 22번은 열어 놔야 함)
테스트 구성에서는 22번 ALL, 80번 ALL, TCP:0-65535/소스 ALL로 구성을 하였다. 아래의 구성은 예시이고, 실제 구성할 때에는 앞단에 보안 그룹을 하나 더 두거나 포트나 소스 정보를 정확히 입력하여 보안에 결점이 없어야 한다.
대상그룹 구성 → 대상 그룹 생성을 클릭하여 새로운 대상그룹을 생성한다.
대상그룹 설정
대상 그룹까지 등록이 완료되면 정상적으로 생성이 완료되었다.
- 2단계 : ECS 서비스로 이동하여 생성한 클러스터를 선택합니다. nginx 서비스를 생성하기 위해 서비스 탭에서 생성을 클립합니다. 별도 설명이 없는 설정은 기본값으로 남겨 둡니다.
12. ECS 기반 컨테이너 생성
- 위의 서비스 탭에서 생성을 클릭하여 서비스 구성 정보를 입력합니다.
- 네트워크 구성정보를 선택 합니다.
로그 밸런서 유형 : Application Load Balancer
서비스의 IAM 역할 선택 : AWSServiceRoleForECS
로드 밸런서 이름 : 위에서 생성한 로드밸런서 이름인 nginx-alb를 선택
- 로드 밸런싱 할 컨테이너를 선택
컨테이너 선택 : nginx:0:80
- 로드 밸런서 추가 선택
프로덕션 리스너 포트 : 80:HTTP
대상그룹 이름 : 드롭다운에서 nginx를 선택, 선택 후 다른 옵션은 자동으로 채워짐
다음 단계를 선택하여 다음으로 이동
13. 오토 스케일링 (선택사항)은 "원하는 서비스 개수를 조정하지 마십시오. "를 선택 후 다음 단계를 클릭합니다.
14. 설정 리뷰 후 서비스 생성을 클릭합니다.
15. 시작 상태 확인 후 서비스 보기를 선택합니다.
서비스 정보를 세부적으로 확인이 가능합니다.
16. nginx 서비스를 확인
클러스터 → nginx-doc(생성한 클러스터 명) → 서비스 → nginx-doc(생성한 서비스 명 선택)
17. ALB 환경에서 Nginx 동작 여부를 확인합니다.
- 로드 밸런서를 선택합니다.
- 로드 밸런서 선택 후 아래 설명 기본 구성에서 DNS주소를 확인 후 DNS 주소를 복사 및 붙여 넣기 하여 브라우저에 실행합니다.
- 브라우저에서 Nginx 웹 서비스의 실행 및 확인이 가능합니다.
'⭐ AWS > ECS' 카테고리의 다른 글
ECS 클러스터 생성하기 (0) | 2021.12.24 |
---|