반응형

목차

  1. 인스턴스와 AMI
    • EC2(Amazon Elastic Compute Cloud)
    • 인스턴스
    • AMI(Amazon Machine Images)
  2. EBS와 네트워크 및 보안
    • EBS(Elastic Block Store)
    • 네트워크 및 보안
  3. 로드 밸런싱과 Auto Scaling

로드 밸런싱

AWS(Amazon Web Services)에서 로드 밸런서는 네트워크 트래픽과 워크로드를 여러 서버 또는 서버 클러스터에 균일하게 분산하는 서비스입니다. 로드 밸런서는 애플리케이션의 용량과 안정성을 높이는 데 사용됩니다.

AWS는 다음 세 가지 유형의 로드 밸런서를 제공합니다.

  1. 애플리케이션 로드 밸런서(ALB)
    요청 수준에서 작동하며 HTTP/HTTPS 트래픽을 라우팅하는 데 사용됩니다. 동일한 인스턴스의 다른 포트로 트래픽을 라우팅할 수 있습니다. 경로 기반 라우팅, 호스트 기반 라우팅, HTTP 헤더 기반 라우팅을 지원합니다.

  2. 네트워크 로드 밸런서(NLB)
    연결 수준에서 작동하며 TCP/IP 및 UDP 트래픽을 라우팅합니다. 초당 수백만 건의 요청을 처리할 수 있습니다. 네트워크 부하 분산 장치는 주로 짧은 지연 시간, 높은 처리량 및 전송 계층 트래픽이 필요할 때 사용됩니다.

  3. 클래식 로드 밸런서(CLB)
    AWS에서 제공하는 이전 유형의 로드 밸런서입니다. 전송 수준 또는 애플리케이션 수준에서 라우팅합니다. 이제 레거시로 간주되며 AWS는 새 애플리케이션에 ALB 또는 NLB를 사용할 것을 권장합니다.
  • AWS의 로드 밸런서는 다음과 같은 기능을 제공합니다.
    • 상태 확인
      로드 밸런서가 트래픽을 라우팅하는 인스턴스의 상태를 확인하도록 로드 밸런서를 구성할 수 있습니다. 인스턴스가 상태 확인에 실패하면 로드 밸런서는 상태 확인을 다시 통과할 때까지 해당 인스턴스에 대한 트래픽 라우팅을 중지합니다.

    • SSL 종료
      이렇게 하면 EC2 인스턴스에서 로드 밸런서로 SSL 트래픽을 암호화하고 해독하는 CPU 집약적인 작업이 오프로드됩니다.

    • 스티키 세션
      이를 통해 로드 밸런서가 사용자 세션을 특정 인스턴스에 바인딩할 수 있습니다.

    • 자동 확장 기능과의 통합
      로드 밸런서는 AWS 자동 확장과 통합됩니다. 인스턴스가 정상적이거나 비정상적이면 로드 밸런서에서 자동으로 추가되거나 제거됩니다.


로드 밸런서를 사용하려면 먼저 로드 밸런서를 생성하고 특정 IP 주소에서 들어오는 연결을 수신 대기하도록 구성합니다. 그런 다음 해당 연결을 라우팅할 위치를 지정합니다.

 

대상 그룹(Target group)

Amazon Elastic Load Balancing의 컨텍스트에서 대상 그룹은 하나 이상의 등록된 대상으로 요청을 라우팅하는 데 사용됩니다. 이러한 대상은 애플리케이션 아키텍처와 사용되는 로드 밸런서 유형(애플리케이션 로드 밸런서, 네트워크 로드 밸런서 또는 게이트웨이 로드 밸런서)에 따라 EC2 인스턴스, 컨테이너, IP 주소 또는 람다 함수가 될 수 있습니다.

대상 그룹을 만들 때 프로토콜(HTTP, HTTPS, TCP 또는 TLS), 포트 번호 및 대상 유형을 지정합니다. 각 측면에 대해 조금 더 자세히 설명합니다:

  • 프로토콜 및 포트
    이는 애플리케이션의 특성과 처리하는 트래픽 유형에 따라 다릅니다. HTTP/HTTPS는 웹 애플리케이션에 사용되며, TCP/TLS는 비 HTTP(S) 트래픽에 더 많이 사용됩니다.

  • 대상 유형
    인스턴스(EC2), IP 주소 또는 람다 함수가 될 수 있습니다. 인스턴스는 EC2 인스턴스를 타깃으로 사용합니다. IP 주소는 로드 밸런서를 호스팅하는 VPC 외부의 타깃을 허용합니다. 람다 함수를 사용하면 서버리스 애플리케이션을 실행할 수 있습니다.


타겟 그룹을 설정한 후 타겟 그룹에 타겟을 등록하면 로드 밸런서가 등록된 타겟으로 트래픽을 전송합니다.

애플리케이션에 대해 둘 이상의 대상 그룹을 가질 수 있으며, 이를 통해 요청을 다른 서비스로 라우팅하거나 인스턴스에서 다른 포트를 사용할 수 있습니다.

대상 그룹과 관련된 또 다른 중요한 개념은 상태 확인입니다. 상태 확인은 등록된 대상의 가용성을 모니터링하는 데 사용됩니다. 로드 밸런서는 등록된 각 대상에 주기적으로 요청을 보내 상태를 테스트합니다. 응답에 대상의 상태가 좋지 않다고 표시되면 로드 밸런서는 상태 검사를 다시 통과할 때까지 해당 대상에 대한 요청 라우팅을 중지합니다. 상태 검사에 대한 매개변수(예: 핑 대상 및 검사 간격)는 대상 그룹 수준에서 구성됩니다.

 

다음 페이지에는 로드 밸런서를 생성하는 과정을 정리했습니다.

 

[AWS Cloud] Load Barlancer 생성하기

목차 로드 밸런서의 역할 타겟 그룹 생성하기 어플리케이션 로드 밸런서 생성하기 시작하기에 앞서 해당 과정을 진행하려면 VPC에서 Subnet을 생성하고, 도메인 인증서가 있어야 합니다. 해당 내

easyitwanner.tistory.com

 

목차로 이동

 

Auto Scaling

Amazon EC2 Auto Scaling은 Amazon EC2 인스턴스를 자동으로 시작하거나 종료하여 애플리케이션의 부하를 처리하는 데 사용할 수 있는 정확한 수의 Amazon EC2 인스턴스를 확보할 수 있도록 설계된 완전 관리형 서비스입니다. 이 서비스는 애플리케이션 가용성을 유지하는 데 사용되며 정의한 조건에 따라 EC2 인스턴스를 자동으로 추가하거나 제거할 수 있습니다.

자동 확장은 안정적인 수요 패턴을 가진 애플리케이션과 시간별, 일별 또는 주별 사용량 변동이 있는 애플리케이션에 유용합니다. 수요 변화에 따라 애플리케이션을 자동으로 확장하여 성능을 유지하면서 비용을 최소화할 수 있습니다.

주요 구성과 개념

  1. 시작 구성
    시작 구성은 자동 스케일링 그룹이 EC2 인스턴스를 시작하는 데 사용하는 템플릿입니다. 시작 구성을 만들 때는 인스턴스에 대한 AMI(Amazon 머신 이미지)의 ID, 인스턴스 유형, 키 쌍, 보안 그룹 및 블록 디바이스 매핑과 같은 인스턴스 정보를 지정합니다.

  2. 자동 확장 그룹
    자동 확장 그룹에는 자동 확장 및 관리 목적으로 논리적 그룹으로 취급되는 Amazon EC2 인스턴스 모음이 포함되어 있습니다.

  3. 스케일링 계획
    자동 스케일링 그룹을 스케일링하는 방법을 결정합니다. 특정 조건이 충족되면 자동 확장은 일회성 작업을 수행하거나 수요에 따라 달라지는 지속적인 작업을 수행하여 자동 확장 그룹에 있는 인스턴스 수를 조정할 수 있습니다.

  4. 스케일링 정책
    스케일링 정책은 자동 스케일링이 애플리케이션의 수요 변화에 대응하는 방법을 알려주는 일련의 지침입니다. 고정된 인스턴스 수에 따라, 일정에 따라 또는 Amazon CloudWatch 알람에 응답하여 스케일링하도록 선택할 수 있습니다.

  5. 상태 확인
    자동 확장은 자동 확장 그룹의 인스턴스에 대해 주기적으로 상태 확인을 수행합니다. 인스턴스가 상태 검사에 실패하면 자동 확장은 해당 인스턴스를 종료하고 새 인스턴스로 교체합니다.

Amazon EC2 자동 확장을 활용하면 애플리케이션이 고가용성을 유지하고 실제로 필요한 리소스만 사용하도록 보장하여 비용을 최적화할 수 있습니다.

 

 

다음은 Auto Scaling을 생성하는 법을 정리한 포스팅입니다.

 

 

[AWS Cloud] Auto Scaling 생성하기

목차 들어가며 Auto Scaling 작동모습 들어가며 Auto Scaling을 생성하기 위해서는 템플릿이 필요합니다. 템플릿을 생성하는 방법은 아래 포스팅에 작성해 놓았으니 확인하면 좋을 듯 합니다. [AWS Cloud]

easyitwanner.tistory.com

 

목차로 이동

 

반응형