- 우당탕탕 Cloud 구축과 운영/아키텍트 방법론

[Cloud 인프라 아키텍트 방법론] 클라우드 환경의 이중화 아키텍처

오돌오돌 오돌뼈 2022. 11. 29. 17:00
반응형

- 이중화의 기준

 일반적으로 Onpremise에서는 이중화 아키텍쳐를 물리적으로 고려합니다. 서버를 둔다면 2대의 서버를 둔다던가, 라우터 혹은 Load Balancer를 사용할 경우에도 2대를 두고 HW 혹은 SW 이중화 솔루션을 통해 이중화를 구성합니다.

 클라우드 환경에서도 기본 구성은 동일합니다. Load Balancer를 사용하여 이중화를 구성하거나, VM내에 Cluster를 사용하여 이중화를 구성합니다. 다만 다른 점이라면 Load Balancer의 종류가 다양하다는 점(Public, Private, L4, L7등) 그리고 클러스터 구성시 별도 CSP자원 구성이 필요하다는 것이 다르다면 다른점입니다.

 약간 기준이 다른 부분도 있습니다. 우선 Cloud DB나 Cloud 리소스에 대해서는 이중화를 할대 서버를 두 대 둔다는 개념보다는 AZ 혹은 타 Region에 백업 서버를 한 대 더 둔다라는 표현이 더 맞는 표현일 것같습니다. Azure의 MI DB의 경우에는 우리가 생각하는 것처럼 이중화된 DB를 지원하지 않습니다. PaaS는 이미지만 올라와있는 것이니 이중화를 보통 하지 않는 것과 동일한 원리인데요. 타 Region에 자원을 하나 더 두고 실시간으로 Replication하는 형태로 구성하게 됩니다. 하지만 직접적으로 Paired DB에 대해서 접근 할 수 없습니다.(RA-GRS를 사용하면 Paired DB에 대한 접근은 가능합니다.) AWS RDS의 경우에도 멀티 AZ를 통해 이중화를 구성하게 되고, Replication을 끊을 경우에만 Paired DB접근이 가능합니다. 

 

- 이중화 아키텍쳐 Load Balancer

 Onpremise에서 일반적으로 구성하는 Load Balancer는 클라우드 환경에서도 구성이 가능합니다. 다만 환경에 따라 사용해야할 Load Balancer가 다릅니다.

1) Azure

 - Azure Load balancer

  기본적으로 사용하는 L4입니다. 타겟 리소스로는 VM을 설정할 수 있습니다. HTTP/HTTPS 요청이 가능하다는 부분이 AWS의 NLB와 다른점입니다. TCP/UDP 요청에 대해서 Load Balancer를 구성할 수 있습니다. Public/Private 중에 선택하여 구성할 수 있으며 VM외에 IP기준으로 타겟 리소스를 구성하거나, SSL인증서는 사용이 불가능 합니다. Azure LB는 Load Balancer 기능 외에도 VM에서 외부 인터넷으로 통신을 위한 Outbound NAT 기능을 지원합니다.

 - Azure Application Gateway

 L7기능을 포함하는 Load Balancer입니다. 타겟 리소스로는 VM외에도 IP나 URL을 지정할 수 있습니다. SSL인증서도 추가 할 수 있는 점이 특징입니다.

 

2) AWS

 

 - Network Load Balancer(NLB)

  Azure의 기본 Load Balancer와 동일 선상에 있는 LB입니다. L4단 LB를 지원하고 있습니다. 고정 IP를 VIP로 사용하게 되고, TCP,UDP Layer에서 처리하기 떄문에 HTTP 헤더를 해석하지 못합니다. ALB와는 다르게 Security Group을 LB에서 설정할 수 없습니다. NLB또한 SSL인증서를 처리할 수 없습니다. 일반적으로 NLB가 L4로 통신되는 만큼 지연시간이 짧기 때문에 대규모 트래픽 처리에 많이 사용됩니다.

 

 - Application Load Balancer(ALB)

  HTTP/HTTPS를 처리할 수 있는 L7단의 LB입니다. SSL인증서를 처리할 수 있으며 NLB와는 다르게 Security Group을 설정할 수 있습니다. L7단의 LB에서 자주 발생하는 타겟쪽에 Source IP를 ALB의 IP로 설정하는 특성을 가지고 있어, X-Forwarded For를 추가하여 Client IP를 설정해야 합니다. 

반응형