728x90
안녕하세요, devyu입니다.
저는 현재 AWS DDWU 에서 Final Project의 인프라를 담당하고 있는데요, 해당 프로젝트에서는 3-Tier 아키텍처를 구축함으로써, 각 계층의 독립적인 개발과 확장이 가능한 모듈성을 확보하고, 보안성을 강화하며, 유지보수의 용이성을 높였습니다.
또한 이 구조를 통해 각 계층별 성능 최적화와 리소스의 효율적 관리가 가능해져, 프로젝트의 전반적인 안정성과 확장성을 크게 향상시켰습니다.
프로젝트 아키텍처 설계
요구사항 및 시나리오 정의
- 수강신청 서비스는 새학기가 시작될 때 사용자가 몰릴 것이다.
- 특정 기간에 사용자 트래픽이 과중된다.
- 트래픽 분산이 필요하다.
- 사용자의 데이터와 서비스의 안정성을 위해 이중화 구성(Multi - AZ)이 필요하다.
- 사용자 1 ~ n 명의 경우 인스턴스 경량화가 필요하다.
- 사용자가 100명이 될 경우, 관리형 서비스가 필요할 것이다.
- 사용자가 1000명 이상이 될 경우, 부하를 줄이기 위한 아키텍처 구성이 필요하다.우리 프로젝트에서는 1000명 이상의 사용자를 가졍하여 설계를 진행하였습니다.
적은 사용자에 대한 고려
1000명 이상의 사용자 이전에, 그보다 적은 수의 사용자가 접속하는 아키텍처에 대해 구상하여 Bottom-Up 방식으로 구현을 생각해보기로 하였습니다.
[ 고려 사항 ]
- 기본 아키텍처
- 적절한 인스턴스 선택
- 인스턴스 경량화 - 데이터베이스 분리, web/was 분리 → 3 Tier 구축
- 기본 보안 및 모니터링
- 비용 효율적인 구성
[아키텍처 구성]
- 단일 퍼블릭 서브넷 → Public과 Private으로 분리함으로써 외부 사용자가 접근하는 네트워크와 데이터가 저장된 네트워크를 나눈다.
- 인스턴스 경량화를 위해 WEB/WAS 역할을 하는 인스턴스와 DB 역할을 하는 인스턴스를 분리한다.
- 사용자는 Route53이라고 하는 DNS서비스를 통해 Public IP를 찾아서 AWS VPC 안에 구성된 인스턴스와 연결하여 서비스를 이용한다.
- 퍼블릭 서브넷에 있는 탄력적 ip 가 사용되는 Instance는 Web과 WAS 역할을 하고 프라이빗 서브넷에 있는 인스턴스는 데이터베이스 역할을 한다.
- 기본 모니터링
- CloudWatch를 통한 리소스 메트릭 및 로그 모니터링
- 자동 대시보드 생성, 임계치 초과 알람(Slack 연결)
- 2계층 구성
- 인스턴스 경량화 - 3tier 분리 구축
- public subnet
- web server
- private subnet
- was
- db
- public subnet
따라서, 최종적으로는 위와 같은 간단한 아키텍처를 구상해볼 수 있다.
사용자가 1000명인 경우
여전히 소규모 서비스이기는 하지만 사용자와 트래픽 증가에 대한 대비를 미리 해보자!
→ 고 가용성에 집중을 하자
[ 아키텍처 설계 ]
1. HA(고가용성)을 위한 방안
- 이중화
- 다중 가용영역 (Multi -AZ)
서비스를 보다 안전하게 구성하려면 1개 이상의 가용 영역을 사용해야 한다.
단일 인스턴스, 단일 데이터베이스 개수를 늘리는 Scale Out- 인스턴스 개수가 여러 개일 때 트래픽을 어떻게 처리할까? → 인스턴스 앞 단에서 사용자 트래픽을 받아서 각 인스턴스에게 분배해줘야 한다.
- ELB를 사용함으로써 트래픽을 받아 부하를 분산시키고 가용성을 높여줄 수 있다.
- ELB를 이용한 수평적 확장
2. 트래픽 분산
- 트래픽 분산 대상
- EC2 인스턴스
- 컨테이너
- IP 주소
- 다중 가용 영역 지원
- 자동으로 용량 확장
- 오토 스케일 그룹 지원(자동으로 인스턴스를 ELB에 등록하고 제외)
- ELB Service
- ALB(Application Load Balancer)
- 고가용성, 자동확장
- L7기반 로드 밸런서
- 컨텐츠 기반 라우팅
- HTTP, HTTPS, HTTP/2 지원
- 헬스 체크
- 세션 유지
- 모니터링/로깅
- ALB(Application Load Balancer)
트러블 슈팅
WEB 구축 중 프리티어 스펙을 가용영역 b2에서 사용할 수 없음을 몰랐다
ALB
WAF 설정
'Cloud > AWS' 카테고리의 다른 글
SAA 합격 후기 (0) | 2024.03.22 |
---|---|
[AWS 세션] EKS IRSA 와 Lambda Serverless (0) | 2023.11.27 |
[SAA] EC2 인스턴스 스토리지 (0) | 2023.10.07 |
댓글