본문 바로가기

Infrastructure/Certificate

[SOA] Elastic Beanstalk

Elastic Beanstalk

이번 장에서는 SysOps Administrator를 준비하며 Elastic Beanstalk에 대해서 알아보도록 한다.


Elastic Beanstalk

  • 대부분의 웹/앱은 동일한 아키텍처(ALB+ASG)를 갖는다.
  • 대부분의 서비스가 동일한 아키텍처를 따른다면 매번 새롭게 생성하는 것은 비효율적이다.
  • "Elastic Beanstalk"는 애플리케이션 배포에 대한 개발자 중심의 관점이다.
  • 위에서 살펴본 이미지의 구성요소(EC2, ASG, ELB, RDS 등)를 사용한다.
  • 관리형 서비스다.
    • 용량 프로비저닝, 로드 밸런식, 확장, 애플리케이션 자동 처리 상태 모니터링, 인스턴스 구성 등
    • 애플리케이션 코드만 개발자의 책임이다.
  • 완전 관리되는 서비스지만 개발자가 구성을 완전히 제어할 수 있다.
  • "Beanstalk"에 대한 비용은 무료이며 생성된 서비스들에 대한 비용만 지불하면 된다.

Component

  • Application: "Elastic Beanstalk"의 구성 요소 모음이다.(Environment, Version, Configuration 등)
  • Application Version: 애플리케이션 코드의 반복이다.
  • Environment:
    • 애플리케이션 버전을 실행하는 AWS 리소스 모음이다.(한 번에 하나의 애플리케이션 버전만 가질 수 있다.)
    • Tiers: 웹 서버 환경 계층 및 작업자 환경 계층이다.
    • 여러 환경(Dev, Test, Prod 등)을 생성할 수 있다.
  • 새로운 버전을 업로드하고 환경을 시작하고, 이후 라이프사이클을 관리한다.
  • 반복하고 싶다면 새로운 버전을 업로드해서 버전을 업데이트하고 새로운 환경을 다시 배포하여 애플리케이션 스택을 업데이트할 수 있다.

Supported Platform

  • 여러 플랫폼을 지원하며 원하는 플랫폼이 없는 경우 사용자 정의 플랫폼을 작성할 수 있다.
    • Go
    • Java SE
    • Java with Tomcat
    • .NET Core on Linux
    • .NET on Windows Server
    • Node.js
    • PHP
    • Python
    • Ruby
    • Packer Builder
    • Single Container Docker
    • Multi-Container Docker
    • Preconfigured Docker

Web Server Tier vs Worker Tier

  • 웹 계층은 전통적인 아키텍처로 부하 응답이 있다.
  • 웹 서버가 될 여러 EC2 인스턴스를 가진 "Auto Scaling Group"으로 트래픽을 전송한다.

  • Beanstalk 아키텍처는 Worker 환경을 중심으로 한다.
  • EC2 인스턴스에 직접 액세스하는 클라이언트가 없다.
  • SQS를 이용하여 EC2 인스턴스로 메시지를 전송하여 처리하도록 한다.
  • Worker 환경의 경우 SQS의 메시지가 많을수록 EC2 인스턴스의 수도 늘릴 것이다.

Deployment Mode

  • Beanstalk에는 두 가지 배포 모드가 있다.
  • 첫 번째는 단일 인스턴스를 사용한다.
    • 단일 EC2 인스턴스, 단일 RDS를 사용하여 개발 용도로 적합하다.
  • 두 번째는 확장이 가능한 고가용성 모드다.
    • 다중 EC2 인스턴스, Load Balancer, 다중 AZ RDS를 통해서 운영 환경에서의 가용성을 높일 수 있다.

'Infrastructure > Certificate' 카테고리의 다른 글

[SOA] Lambda  (0) 2023.11.01
[SOA] CloudFormation  (0) 2023.10.30
[SOA] High Availability & Scalability  (0) 2023.10.29
[SOA] 대규모 EC2 관리  (0) 2023.10.25
[SOA] Amazon Machine Image (AMI)  (0) 2023.10.24