AWS Elastic Load Balancer 관련 정리

FGPRJS·2022년 8월 4일
0

AWS 공식 문서를 통하여 AWS Region 및 Availability Zone에 대해서 알아보고, 이 정보를 바탕으로 AWS Elastic Balancer에 대해 이해해본다.

Amazon EC2는 세계 각지의 여러 곳에서 호스팅 되고 있습니다. 이 위치는 다음으로 구성됩니다.

  • Region
  • Availability Zone
  • Local Zones (여기서 다루지 않음)
  • AWS Outposts (여기서 다루지 않음)
  • Wavelength Zone (여기서 다루지 않음)

AWS Region

각 Region은 개별 지리 영역입니다.

각 Amazon EC2 Region은 다른 Amazon Region에서 격리되도록 설계되었습니다. 이를 통해 가장 강력한 내결함성 및 안전성을 달성할 수 있습니다.

리소스를 볼 때, 지정한 Region에 연결된 리소스만 표시됩니다. Region은 서로 격리되어 있고, 여러 Region에 리소스가 자동으로 복제되지 않기 때문입니다.

  • Region 의 예시
코드이름옵트인 상태
us-east-1US East (버지니아)불필요
us-east-2US East (오하이오)불필요

Availability Zone

Availability Zone은 각 Region 내에 있는 여러 격리된 위치 입니다.

각 Region은 Availablility Zone이라고 알려진 격리된 위치를 여러 개 가지고 있습니다.
가용 영역의 코드는 Region 코드와 문자 식별자를 조합한 것입니다.
예시 ) us-east-1a

인스턴스를 시작할 때 Region과 VPC(Virtual Private Cloud)를 선택한 다음 Availabilit Zone 중 하나에서 직접 서브넷을 선택하거나 자동으로 서브넷이 선택되게 할 수 있습니다.

다음 다이어그램은 AWS Region의 여러 Availability Zone을 보여줍니다.

  • Availability Zone A는 하나의 서브넷이 있습니다. 서브넷에는 Instance가 있습니다.
  • Availability Zone B는 하나의 서브넷이 있습니다. 서브넷에는 Instance가 있습니다.
  • Availability Zone C는 서브넷이 없습니다. 이 Availability Zone으로는 Instance를 시작할 수 없습니다.

AZ ID (Availability Zone ID)

Region의 Availability Zone에 걸쳐 리소스가 배포될 수 있도록, 각 AWS 계정의 코드에 Availability Zone을 독립적으로 매핑합니다.

예를 들어, us-east-1a 계정의 AWS 가용 영역은 다른 us-east-1a 계정에 대한 AWS와 물리적 위치가 동일하지 않을 수 있습니다.

다를 수 있는 이 계정의 Availability Zone을 조정하려면, 이 Availability Zone에 대한 고유하고 일관된 식별자인 AZ ID를 사용해야 합니다.

예를 들어, use1-az1us-east-1 Region의 AZ ID이고, 모든 AWS 계정에서 물리적 위치가 동일합니다.

따라서, 계정의 AZ ID를 보고 다른 계정의 리소스와 관련된 리소스의 물리적 위치를 확인할 수 있습니다.

다음 그림은 Availability Zone 코드를 AZ ID에 매핑하는 서로 다른 2개의 계정을 보여 줍니다.

  • Region은 동일(us-east-1)하지만, 접근하는 Availability Zone의 문자 식별자는 다릅니다.
    Account 1의 경우 us-east-1a이지만, Account 2의 경우 us-east-1c입니다.

  • use1-az1이라는 AZ ID를 사용함으로서, Account 1Account 2는 같은 Availability Zone을 지칭할 수 있습니다.


Elastic Load Balancer

다음 문서를 통해 Elastic Load Balancing에 대해 이해한다.

Elastic Load Balancing은 하나 혹은 그 이상의 Availability Zone들에 있는 다음과 같은 여러 Target

  • EC2
  • Container
  • IP 주소
    을 통하는 트래픽을 자동적으로 분배해줍니다.
    이것은 등록된 Target들의 상태를 감시해주며, Healthy한 Target에게만 트래픽을 라우팅 해 줍니다.
    Elastic Load Balancing은 당신의 Load Balancer 용량을 들어오는 트래픽의 변화에 응답하여 자동적으로 스케일링 해줍니다.

Elastic Load Balancing은 다음과 같은 Load Balancer들을 지원합니다.

  • Application Load Balancers
  • Network Load Balancers
  • Gateway Load Balancers
  • Classic Load Balancers

How Elastic Load Balancing works

  • LoadBalancer는 Client에서 들어오는 트래픽을 수락하고, 하나 이상의 가용 영역에 있는 등록된 Target(ex : EC2 Instance)로 요청을 라우팅 합니다.
  • 또한 Load Balancer는 등록된 Target을 Health Check하고, Healthy한 Target 에게만 트래픽을 라우팅 합니다.
  • Load Balancer는 UnHealthy한 Target을 감지하면, 해당 Target으로의 트래픽 라우팅을 중지합니다. 그런 다음 대상이 다시 정상임을 감지하면 해당 Target으로 트래픽 라우팅을 재개합니다.

Elastic Load Balancer - Availability Zone

  • Load Balancer에 대해 Availability Zone을 활성화하면 Elastic Load Balancing은 Availability Zone에 Load Balancer Node를 생성합니다.
  • Availability Zone에 Target을 등록해도 Availability Zone을 Activate하지 않으면 이러한 등록된 Target은 트래픽을 수신하지 않습니다.
    Load Balancer는 Activate된 각 Availability Zone에 하나 이상의 Target이 등록되어 있는지 확인할 때 가장 효과적입니다.
  • 모든 Load Balancer에 대해 여러 Availability Zone을 Activate하는 것이 좋습니다. 하지만 Application Load Balacner를 사용하는 경우 최소 2개 이상의 Availability Zone을 Activate해야 합니다. 이 구성은 Load Balancer가 트래픽을 계속 라우팅할 수 있도록 합니다.
    한 Availability Zone을 사용할 수 없게 되거나 Healthy한 Target이 없는 경우, Load Balancer는 다른 Availability Zone의 Healthy한 Target으로 트래픽을 라우팅 할 수 있습니다.
  • Availability Zone을 Deactivate한 후에도 해당 Availability Zone의 Target은 Load Balancer에 등록된 상태로 유지됩니다. 그러나 등록된 상태로 유지되더라도 Load Balancer는 트래픽을 라우팅하지 않습니다.

Elastic Load Balancer - Cross Zone

  • Load Balancer의 Node는 Client의 요청을 등록된 Target으로 분산합니다.
  • Cross Zone Load Balancing이 Activate되면 각 Load Balancer Node는 활성화 된 모든 Availability Zone의 등록된 Target에 트래픽을 분산합니다.
  • Cross Zone Load Balancing이 Deactivate 되면 각 Load Balancer Node는 Availability Zone에 등록된 Target에만 트래픽을 분산합니다.

  • 상기 다이어그램은 Round-Robin이 기본 라우팅 알고리즘인 Cross Zone Load Balancing의 효과를 보여줍니다. 2개의 Activate된 Availability Zone이 있으며, Availability Zone A에 2개의 Target과 Availability Zone B에 8개의 Target이 있습니다.
  • Client는 요청을 보내고 Amazon Route 53 (DNS 서비스)은 Load Balancer Node 중 하나의 IP 주소를 사용하여 각 요청에 응답합니다.
  • Round-Robin Routing Algorithm을 기반으로 각 Load Balancer Node가 Client로부터 트래픽의 50%를 수신하도록 트래픽이 분산됩니다.
  • 각 Load Balancer Node는 해당 범위의 등록된 대상에 트래픽 공유를 분산합니다.

  • 상기 다이어그램은 Cross Zone Load Balancing이 Deactivated 된 경우입니다,
  • Availability Zone A의 2개 대상 각각은 트래픽의 25%를 수신합니다.
  • Availability Zone B의 8개 대상 각각은 트래픽의 6.25%를 수신합니다.
  • 이는 각 Load Balancer Node가 Client 트래픽의 50%를 Availability Zone의 Target에만 라우팅 할 수 있기 때문입니다.
profile
FGPRJS

0개의 댓글