[GCP] Google Cloud(GCP) 3 tier 아키텍쳐 구축하기 (3)

vinca·2025년 2월 12일

Introduction

현재까지 구축한 부분까지 오버랩하면 아래와 같다.

빨간색으로 표시한 WEB 서버와 내부 LB를 연결하는 과정을 제외하고는 전부 완료하였다.

이제 이 아키텍쳐에서 WEB과 내부 LB를 연결해 주도록 하자.

이를 연결하는 방법은 매우매우 간단하다. 바로 해보도록 하자.

1. 요청에 대한 프록시 설정

"연결"이라 함은 WEB에 요청이 들어왔을 때, 내부 LB의 IP로 해당 요청이 프록시 되도록 만들어 주면 된다. (리버스 프록시)

특정 요청이 들어왔을 때, WEB 서버 자체가 해당 요청을 처리하는 것이 아니라 이를 다른 곳(내부 LB의 IP)으로 보내고 그 결과를 사용자가 받아오도록 하는 것이다.

1.1 기존 웹 서버 1 인스턴스 접속 후 수정

기존의 [GCP] Google Cloud(GCP) 3 tier 아키텍쳐 구축하기 (1)에서 수행했던 웹 서버의 코드를 열어서 localhost 부분을 아래와 같이 내부 LB의 IP로 대체해준다.

웹 인스턴스에 SSH로 접속 후 다음 명령어로 파일을 열고 수정한다. (본인의 내부 LB의 IP를 쓸 것)

sudo nano /etc/apache2/sites-available/000-default.conf
  • 파일 수정 결과

1.2 웹 서버 2에 대해서도 동일하게 적용

📍 실제 Production환경에서 사용한다면 1.1에서 수정된 VM을 다시 템플릿화 해서 그룹으로 재 생성해야 하지만, 여기서는 편의상 기존에 만들어둔 그룹을 사용하도록 한다.

동일하게 웹 서버 2에 대해서도 1.1의 과정을 반복해주자.

웹서버 VM에 SSH 접속 후, 파일을 수정하면 된다.

  • 두번째 웹서버 접속

  • 파일 열기

sudo nano /etc/apache2/sites-available/000-default.conf
  • 수정

2. 테스트

자 이렇게 되었다면 WEB-WAS-DB의 3티어 아키텍쳐가 완성되었다.🌟 (DB의 이중화는 테스트의 목적이므로 굳이 하지않았다.)

정확하게 말하면 ALB-WEB-NLB-WAS-DB 형태로 중간중간 로드밸런서를 넣어 트래픽까지 분산시키는 형태까지 구현되었다.

이제 최종적으로 웹 페이지에 접속해서 확인해 보도록 하자.
웹페이지에 접속하기 위해 ALB(외부 LB)의 IP를 통해 접속해보도록 한다.

페이지에 접속 한 뒤, DB 조회 버튼을 눌러보면?
DB에서 데이터가 가져와 지는 것을 확인할 수 있다. 🎉

어떤 과정을 거쳐서 가져왔는가?
HTTP 7계층 외부 LB - Web Server (Apache HTTP) 접속 - DB 조회 버튼 클릭 - TCP 4계층 내부 LB - WAS (Flask) - DB(MySQL)


여기서 리버스 프록시의 실제 어디로 접속하는지는 확인할 수 없다보안적인 특징을 확인할 수 있는데,

사용자는 분명 http://34.54.139.157/api/users 로 외부 LB의 IP로 요청을 보냈으나 실제로는 http://10.128.0.59:25/api/users내부 LB의 아이피로 요청이 Proxy되었고, 이를 통해 DB를 조회하여 데이터를 가지고 온 것이다.

End

끝.

이것으로 Google Cloud(GCP) 3 tier 아키텍쳐 구축하기를 마친다.

profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

1개의 댓글

comment-user-thumbnail
2025년 7월 29일

The agario gameplay is fast-paced, strategic, and highly competitive. Every move counts.

답글 달기