Classic Solutions Architecture
이번 장에서는 여러 사례를 살펴보며 솔루션 설계자의 사고 방식의 발전을 살펴본다.
Instantiating Application quiclky
- 풀스택(EC2, EBS, RDS)를 시작할 때 아래의 작업에서 많은 시간이 소요될 수 있다.
- 애플리케이션 설치
- 초기 데이터 삽입
- 모든 항목 구성
- 애플리케이션 실행
- 이러한 작업들은 클라우드를 활용하여 속도를 높일 수 있다.
- EC2 인스턴스:
- Golden AMI 사용: 애플리케이션, OS 종속성 등을 미리 설치하고 Golden AMI에서 EC2 인스턴스를 시작한다.
- 사용자 데이터를 사용한 부트스트랩: 동적 구성의 경우 사용자 데이터 스크립트를 사용한다.
- 하이브리드: Golden AMI와 사용자 데이터를 혼합(Elastic Beanstalk)하여 사용한다.
- RDS 데이터베이스:
- 스냅샷에서 복원: 스냅샷을 사용하면 준비되어 있는 스키마와 데이터를 사용하여 데이터베이스를 생성할 수 있다.
- EBS 볼륨:
- 스냅샷에서 복원: 디스크는 이미 포맷되어 있고 데이터가 저장되어 있다.
Typical architecture: Web App 3-tier
- 일반적인 Web App 3-tier 아키텍처는 아래와 같다.
- 다중 가용지역에 위치한 “Public Subnet”의 ELB를 통해 트래픽을 분산한다.
- “Auto Scaling Group”, 다중 가용지역에 EC2 인스턴스를 분산한다.
- “ElastiCache”를 사용하여 세션 데이터를 저장하고 검색하거나 자주 조회되는 데이터를 캐시한다.
- RDS를 사용하여 데이터를 “Read/Write” 한다.
AWS에서 개발자들의 문제
- AWS를 통해서 서비스를 운영할 때 개발자들은 아래와 같은 공통된 문제를 고민한다.
- 인프라 관리
- 코드 배포
- 데이터베이스 설정, 로드 밸런서 등
- 확장에 대한 고민
- 대부분의 웹-앱은 동일한 아키텍처(ALB + ASG)를 가지고 있다.
- 개발자가 원하는 것은 코드가 실행되기만 하면 된다.
- 다양한 애플리케이션 및 환경에서 일관되게 실행되도록 하는 것이 가능하다.
Elastic Beanstalk
- “Elastic Beanstalk”는 애플리케이션 배포에 대한 개발자 중심 View이다.
- EC2, ASG, ELB, RDS와 같은 모든 구성 요소를 사용한다.
- 관리형 서비스
- 용량 프로비저닝, 로드 밸런싱, 애플리케이션 상태 모니터링, 인스턴스 구성을 자동화한다.
- 이로써 애플리케이션 코드만 개발자의 책임이 된다.
- 구성을 완벽하게 제어할 수 있다.
- Beanstalk의 사용 비용은 무료이며 인스턴스 사용에 대한 비용만 지불한다.
구성 요소
- 애플리케이션: Elastic Beanstalk 구성 요소 모음(Environments, Versions, Configurations 등)
- 애플리케이션 버전: 애플리케이션 코드의 반복
- 환경:
- 애플리케이션 버전을 실행하는 AWS 리소스 모음(한 번에 하나의 애플리케이션 버전만 실행)
- 계층(Tiers): 웹 서버 환경 계층 및 작업자 환경 계층
- 여러 환경(dev, test, prod)을 생성할 수 있다.
지원 플랫폼
- Elastic Beanstalk는 아래와 같은 플랫폼을 지원한다.
- Go, Ruby, Java SE, PHP, Python
- Parker Builder,
- Java with Tomcat, Node.js
- Single Container Docker, Multi Container Docker, Preconfigured Docker
- .NET Core on Linux, .NET on Windows Server
- 만약 기본적으로 지원하지 않는 플랫폼인 경우 사용자 정의 플랫폼을 사용하여 작성할 수 있다.
Web Server Tier vs Worker Tier
- “Worker Environment”의 경우 SQS 메시지 수에 따라 확장 가능하다.
- 다른 웹 서버 계층에서 SQS 대기열로 메시지를 푸시할 수 있다.
참고 자료
'Infrastructure > Certificate' 카테고리의 다른 글
[SAA] Advanced Amazon S3 (0) | 2022.12.07 |
---|---|
[SAA] S3 Introduction (0) | 2022.11.20 |
[SAA] Discussions - MyWordPress.com (0) | 2022.11.16 |
[SAA] Discussions - MyClothes.com (0) | 2022.11.16 |
[SAA] Discussions - WhatIsTheTime.com (0) | 2022.11.16 |