Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Dag
- kafka
- docker
- Python
- SQL
- milvus
- airflow
- MSA
- amazonlinux
- pySpark
- prometheus
- aiagent
- spark
- BigQuery
- 오블완
- hadoop
- airflow설치
- javascript
- vectorDB
- Streamlit
- sparkstreaming
- 설치
- jmx-exporter
- ubuntu
- grafana
- Redshift
- metadabatase
- RAG
- dockercompose
- 루프백주소
Archives
- Today
- Total
데이터 노트
[MSA] MSA 아키텍처를 공부했다면, AWS ECS를 이해해보자. 본문
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
- ALB : Application Load Balancer
서버 부하 분산 방법
상세한 내용은 참고 글 6번
- Round Robin
- Least Connection
- Ratio
- Fastest(Response Time)
* 참고 글 & 같이 보면 좋은 글 *
- https://blog.kyobodts.co.kr/2022/03/25/aws-ecs란/
- 기본 개념 및 ECS 생성 실습 예제
- https://blog.naver.com/withnetworks/222004830412
- 스위치 기본 개념
- https://www.akamai.com/ko/glossary/what-is-a-network-switch
- 스위치와 라우터 차이, 스위치와 허브 차이
- https://aws-hyoh.tistory.com/entry/L4-Switch-쉽게-이해하기
- L4 스위치의 로드 밸런싱 개념 이해
- https://aws-hyoh.tistory.com/128
- ELB
- https://aws-hyoh.tistory.com/entry/Server-Load-Balancing-쉽게-이해하기
- 서버 부하 분산
'Insights' 카테고리의 다른 글
[MA & MSA & SOA] 개념, 장단점, 차이점 (1) | 2024.11.06 |
---|---|
localhost 와 127.0.0.1 의 차이? 루프백 주소? (2) | 2024.01.08 |
Gitlab 초기 설정 및 SSH Key 발급하기 (0) | 2023.10.05 |
Parquet 파일이란? (0) | 2023.02.10 |
[알고리즘] 선택정렬 / 같은 빅오 표기법 다른 효율성 (0) | 2023.02.10 |