본문 바로가기

Infrastructure/Certificate

[SAA] Classic Solutions Architecture

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