AWS - ALB(로드 밸런서)없이 ECS 생성하기

2023. 10. 28. 12:45·AWS/ECS, ECR
반응형

이번 포스트에서는 ALB(로드 밸런서)를 사용하지 않고 AWS의 ECS를 생성하고 SpringBoot의 jar 파일를 dockerfile로 이미지 변환하고 배포해 보도록 하자

 


 

이 글을 따라하기 전에 ECR을 먼저 만들고 오는것을 추천한다.

2023.10.27 - [AWS] - AWS ECR로 Docker 이미지 관리하기: 완벽 가이드

 

AWS ECR로 Docker 이미지 관리하기: 완벽 가이드

코딩은 글쓰기라고 생각한다. 꾸준히 기록하며 내 개발 실력을 키울것이다.

curiousjinan.tistory.com

 


 

1. Task 정의하기


1-1. ECS 좌측의 메뉴바에서 “태스크 정의”를 클릭한다.

태스크 정의
태스크 정의

1-2. 우측의 “새 태스크 정의 생성”을 클릭한다.

새 태스크 정의 생성
새 태스크 정의 생성

 

1-3. 이동한 페이지 좌측에 있는 “새로운 ECS환경” 버튼을 클릭한다.

  • 태스크 정의를 할때는 예전버전으로 하는게 좀 더 세밀하고 쉽게 설정이 가능하다.

새로운 ECS 환경으로 변경하기
새로운 ECS 환경으로 변경하기

 

1-4. 시작 유형 호환성을 선택한다.

  • EC2를 선택한다.

시작 유형 호환성 선택하기
시작 유형 호환성 선택하기

 

1-5. 작업 및 컨테이너 정의를 구성한다.

  • 여기서는 “테스크 정의 이름”만 적고 나머지는 default로 둔다.

작업 및 컨테이너 정의 구성
작업 및 컨테이너 정의 구성

 

1-6. 작업 실행 IAM 역할도 그냥 default로 둔다.

작업 실행 IAM 역할 설정
작업 실행 IAM 역할 설정

 

1-7. 다음으로 “작업 크기”를 설정한다.

  • 메모리는 512MB, CPU는 256으로 설정했다.

작업 크기 설정
작업 크기 설정

 

1-8. 다음으로 “컨테이너 정의”를 한다.

  • 컨테이너 정의 아래에 있는 파란색 "컨테이너 추가" 버튼을 클릭한다.

컨테이너 정의

 

1-9. 컨테이너 추가 작성하기

  • 아래와 같이 컨테이너 이름을 적고 ECR에서 이미지의 URI를 복사해서 “이미지” 항목에 넣는다.
  • 메모리 제한은 건드리지 않고 하단의 포트 매핑에 docker 이미지로 실행할 tomcat 8081포트와 http 80번 포트를 열어준다.

컨테이너 추가

 

  • 아래로 스크롤해서 하단의 “고급 컨테이너 구성”에서는 “스토리지 및 로깅” 에서 “로그 구성”에 Auto-configure CloudWatch Logs만 체크를 해주고 오른쪽 하단의 “추가” 버튼을 눌러서 컨테이너 설정을 저장한다.

스토리지 및 로깅
스토리지 및 로깅

 

1-10. 남은 태스크 정의 작성하기

  • 컨테이너 설정을 마쳤으므로 다시 태스크 설정창으로 이동된다.
  • 여기서 하단의 나머지 설정들은 다 default로 두고 “생성” 버튼을 누른다.

나머지 것들
나머지 것들

 

1-11. 태스크 정의의 생성이 완료되면 아래와 같이 나온다.

태스크 정의 생성완료
태스크 정의 생성완료

 


 

2. ECS 클러스터 생성하기


2-1. 클러스터 생성하기

  • 태스크를 만들었으니 이제 ECS 클러스터를 만들어보자 좌측 메뉴바에서 “클러스터”를 클릭한다. 이후 우측 상단의 “클러스터 생성” 버튼을 클릭한다.

클러스터 생성
클러스터 생성

 

2-2. 클러스터 구성창 작성하기

  • 클러스터 이름과 기본 네임스페이스를 구성한다.

클러스터 구성

 

2-3. 인프라 세팅하기

  • 여기서는 EC2를 선택하고 Amazon Linux2023과 내가 원하는 인스턴스 유형을 선택한다.
  • 원하는 용량은 최소1, 최대1로 설정했다.

인프라 작성
인프라 작성

 

2-4. 다음으로 “네트워크” 설정을 한다.

  • 기존에 존재하던 VPC를 선택했고 서브넷도 전부 선택해 주었다.
  • 보안그룹도 기존에 존재하던 default를 선택했다.

EC2 네트워크 설정

 

2-5. 클러스터 생성

  • 위에 작성된 내용만 세팅하고 나머지는 다 default로 두고 "생성"버튼을 누르면 아래와 같이 나온다. (초기에는 생성시간이 걸림)

ECS 클러스터 생성완료
ECS 클러스터 생성완료

 

2-6. 클러스터 EC2 확인하기

  • 생성이 완료되면 “EC2 대시보드”의 동작중인 ECS 인스턴스(EC2)를 클릭해서 "인스턴스 요약" 하단의 "태그" 목록을 클릭한다.
  • Key:Value에서 이 인스턴스가 "ECS-Cluster"라는것을 확인할 수 있다.

EC2 태그 확인하기
EC2 태그 확인하기

 

2-7. ECS 클러스터에서 하단의 "인프라" 확인하기

  • 용량 공급자에 ASG(Auto-Scaling-Group)이 잘 지정되어있는지 확인한다.

인프라에서 ASG 확인
인프라에서 ASG 확인

 

여기까지가 ECS 클러스터 생성이었다. 이제 서비스를 만들자



3. ECS 서비스 만들기


3-1. 클러스터 하단의 서비스 목록에서 “생성”을 클릭한다.

ECS 서비스 생성하기
ECS 서비스 생성하기

 

3-2. 서비스 생성하기 “환경”에서 컴퓨팅 옵션을 선택한다.

  • 우리는 클러스터를 EC2로 만들어 줬으니 컴퓨팅 옵션에 EC2를 선택한다.

환경 세팅하기
환경 세팅하기

 

3-3. 배포 구성 선택하기

  • 패밀리에 선택할 것은 1번에서 정의했던 “태스크 정의”를 선택하면 된다. 이후 서비스 이름을 작성한다.

배포 구성 설정
배포 구성 설정

 

  • 여기서 "배포 옵션" 은 하단과 같이 기본 default를 사용한다. (롤링 업데이트 선택)

배포 옵션 선택하기
배포 옵션 선택하기

 

 

3-4. 서비스 생성하기

  • 하단의 “생성” 버튼을 누르면 클러스터 개요로 이동되고 기다림이 시작된다.

배포 대기
배포 대기

 

3-5. 배포상태 체크하기

  • 클러스터 하단의 테스크를 확인한다. “원하는 상태 필터링”에서

태스크 체크
태스크 체크

  • 그 옆의 서비스도 확인한다.

서비스 체크
서비스 체크

 

 

이렇게 ALB없이 ECS 배포를 마쳤다. 이것또한 많은 우여곡절이 있었지만 VPC를 기본으로 세팅하니 수월하게 해결되었다. 다음에는 왜 VPC때문에 문제가 생겼었는지 공유하고 해결방안에 대해서 말하도록 하겠다.


2023.10.27 - [AWS] - AWS ECR로 Docker 이미지 관리하기: 완벽 가이드


 

AWS ECR로 Docker 이미지 관리하기: 완벽 가이드

코딩은 글쓰기라고 생각한다. 꾸준히 기록하며 내 개발 실력을 키울것이다.

curiousjinan.tistory.com

 

반응형

'AWS > ECS, ECR' 카테고리의 다른 글

AWS ECS와 ALB: 동적 포트 vs 명시적 포트 설정의 EC2 DNS 접속 이슈  (1) 2023.10.31
AWS - ALB를 적용시킨 ECS의 동적 포트 할당관계 동작원리  (1) 2023.10.30
AWS EC2를 사용하는 ECS 클러스터 생성 및 사용  (1) 2023.10.28
AWS ECS를 위한 ALB세팅: 실전 예제와 함께  (0) 2023.10.27
AWS ECR로 Docker 이미지 관리하기: 완벽 가이드  (1) 2023.10.27
'AWS/ECS, ECR' 카테고리의 다른 글
  • AWS ECS와 ALB: 동적 포트 vs 명시적 포트 설정의 EC2 DNS 접속 이슈
  • AWS - ALB를 적용시킨 ECS의 동적 포트 할당관계 동작원리
  • AWS EC2를 사용하는 ECS 클러스터 생성 및 사용
  • AWS ECS를 위한 ALB세팅: 실전 예제와 함께
Stark97
Stark97
문의사항 또는 커피챗 요청은 링크드인 메신저를 보내주세요! : https://www.linkedin.com/in/writedev/
  • Stark97
    오늘도 개발중입니다
    Stark97
  • 전체
    오늘
    어제
    • 분류 전체보기 (247)
      • 개발지식 (20)
        • 스레드(Thread) (8)
        • WEB, DB, GIT (3)
        • 디자인패턴 (8)
      • JAVA (21)
      • Spring (88)
        • Spring 기초 지식 (35)
        • Spring 설정 (6)
        • JPA (7)
        • Spring Security (17)
        • Spring에서 Java 활용하기 (8)
        • 테스트 코드 (15)
      • 아키텍처 (6)
      • MSA (15)
      • DDD (11)
      • gRPC (9)
      • Apache Kafka (18)
      • DevOps (23)
        • nGrinder (4)
        • Docker (1)
        • k8s (1)
        • 테라폼(Terraform) (12)
      • AWS (32)
        • ECS, ECR (14)
        • EC2 (2)
        • CodePipeline, CICD (8)
        • SNS, SQS (5)
        • RDS (2)
      • notion&obsidian (3)
      • AI 탐험대 (1)
      • 팀 Pulse (0)
  • 링크

    • notion기록
    • 깃허브
    • 링크드인
  • hELLO· Designed By정상우.v4.10.0
Stark97
AWS - ALB(로드 밸런서)없이 ECS 생성하기
상단으로

티스토리툴바