데이터 노트

[MSA] MSA 아키텍처를 공부했다면, AWS ECS를 이해해보자. 본문

Insights

[MSA] MSA 아키텍처를 공부했다면, AWS ECS를 이해해보자.

돌돌찐 2024. 11. 15. 21:15

MSA를 보고 나니 AWS ECS라는게 있던데.. 뭐지 하고 찾아보게 되었다.


개념

AWS ECS란?

  • ECS는 마이크로서비스 아키텍처에서 사용되는 컨테이너들을 관리해주는 오케스트레이션 도구
  • → 고로, MSA 아키텍처에 대한 이해가 필요하다. (이전 글 참고)
  • 컨테이너의 생성과 종료, 자동 배치 및 복제, 로드 밸런싱, 클러스터링, 장애 복구, 스케줄링 등의 역할 수행

ECS 관련 요소 및 구성

  • ECR
    • Elastic Container Registry
    • 도커 파일을 통해 생성된 이미지는 Docker Registry에 보관하여 가져와 사용할 수 있는데, AWS는 ECR.
    • ECR에 저장된 도커 이미지를 가져와 ECS에서 이미지를 실행해 컨테이너를 생성한다.
    • Docker hub를 써도 연결이 가능하지만 ECR은 IAM 인증을 통해 Push/Pull에 대한 권한 관리가 가능하여
      보안 상 좋고, S3에 저장되어 고가용성이 유지되며 다른 AWS 서비스와 연결하기 용이한 점이 있다.
  • ECS 구성
    • Task Definition: 컨테이너를 실행하기 위해 정의한 설정.
    • Task : Task Definition에 의해 배포된 컨테이너 Set.
    • Service: 클러스터에 Task를 몇 개 배포할 것인지 정하고, ELB와 연결하거나 Auto Scaling을 설정하는 등 Task의 LifeCycle을 관리.
    • Cluster: Task가 배포되는 환경들이 논리적으로 그룹화되는 단위.

 

추가 관련 개념

ELB

  • Elastic Load Balancer
  • 온프레미스에서 L4 스위치 개념 → 스위치에 대해 알아야 한다.
    • 스위치 
      • 네트워크 단위 연결하는 통신 장비. 데이터 패킷을 수신하고 올바른 목적지로 전달한다.
      • OSI 모델(네트워크 프로토콜 디자인과 통신을 계층(레이어)으로 나눈 것)의 레이어에 따라 스위치가 다르다.
      • 라우터 vs 스위치
        : 라우터는 한 네트워크에서 다른 네트워크로 데이터 패킷을 전달, 유선&Wi-Fi O.
        스위치는 동일한 네트워크에 있는 디바이스를 상호 연결하는 데만 사용, 주로 이더넷 통한 유선.
    •  
  • ELB 역할
    • 부하 분산
    • HTTP Header를 조작하여 전달 대상을 정하거나 고정 페이지를 반환
    • Cloudfront를 연결하여 반응 속도 향상
    • AWS에는 오토 스케일링이라는 기능이 있는데, 사용작 정한 일정 시간 내 일정 조건을 충족하면 EC2를 추가/삭제하여 필요한 만큼의 서버만 유지해 비용을 최적하 할수 있는 기능임.
      → ELB는 이 오토 스케일링 기능을 연동해, 추가된 EC2를 자동으로 ELB 부하 분산 대상에 포함/제외 시킬 수 있음
  • ELB 기본 구성
    • 외부 요청을 받아들이는 리스너(Listener)와 요청을 분산/전달할 리소스의 집합인 대상 그룹(Target Group)
    • 리스너는 외부 요청을 받아들이기 때문에 서비스 포트를 보유하고 있으며, 외부 요청은 서비스 포트로 들어오는 요청 건만 처리한다.
    • 대상 그룹 또한 서비스 포트를 보유하고 있는데, 부하 분산 대상인 EC2는 해당 포트가 열려 있어야 한다.(꼭 리스너와 같은 포트일 필요는 없음)
    • 리스너는 Virtual Server에 해당하며, 대상 그룹은 Pool에 해당 된다.
    • 또한 크게 공인 IP와 사설 IP 모두 갖는 Internet IP와 내부에서의 접근만 허용하며 사설 IP만 갖는 Internal IP 로 구분된다.
    • ELB 종류
      • ALB : Application Load Balancer
        • L7 계층에 해당. 부하분산 + HTTP/HTTPS 특성을 주로 다루며 HTTP 헤더 정보 이용해 분산
      • NLB: Network Load Balancer
        • L4 계층에 해당. TCP/UDP를 사용하는 요청을 받아들여 부하 분산
      • CLB: Classic Load Balancer

서버 부하 분산 방법

상세한 내용은 참고 글 6번

  • Round Robin
  • Least Connection
  • Ratio
  • Fastest(Response Time)

* 참고 글 & 같이 보면 좋은 글 *

  1. https://blog.kyobodts.co.kr/2022/03/25/aws-ecs란/
    • 기본 개념 및 ECS 생성 실습 예제
  2. https://blog.naver.com/withnetworks/222004830412
    • 스위치 기본 개념
  3. https://www.akamai.com/ko/glossary/what-is-a-network-switch
    • 스위치와 라우터 차이, 스위치와 허브 차이
  4. https://aws-hyoh.tistory.com/entry/L4-Switch-쉽게-이해하기
    • L4 스위치의 로드 밸런싱 개념 이해
  5. https://aws-hyoh.tistory.com/128
    • ELB
  6. https://aws-hyoh.tistory.com/entry/Server-Load-Balancing-쉽게-이해하기
    • 서버 부하 분산