본문 바로가기

[Cloud]/[GCP]

[Side-Project] Ant Platform - High-scale chat server 구성하기 1

728x90

[ 캐치업 ]



    지난 한주는 정말 불꽃같은 한주였다. 먼저 면접... 백엔드+ML+클라우드+빅데이터(파이프라인) 에 대한 다소 깊이있는(신입 수준에서) 내용을 정리하느라 정작 기본적인 내용을 리마인드 하지 못했다. 게다가 2년전에 프로젝트를 여쭤보시는 바람에 기억이 잘 안나서 이상한 말도 많이했다ㅎㅎ. 생각할수록 아쉽고 부끄럽다 (면접관님께서 정확히 파악하셨다^^). 그래도 어쩌겠는가? 지나간 것은 이미 지나간 것이고, 이참에 이력서도 업데이트 하고, 기본기는 지금보다  더 잘 쌓인 개발자가 되면 된다!

  일전에 Side-project를 진행하면서 Cloud-Run과 Redis를 이용해 websocket 프로그램을 어떻게 배포할 것인지에 대한 고민과 함께 아키텍쳐를 공부했다. 이번에는 실질적인 배포과정을 기록으로 남긴다. 

 

[Celery] Side-Project(Ant Platform) - 6. High-scale chat server on Cloud Run

[ 일단 지난주 캐치업 ] 지난주에 socket기반 간단한 통신프로그램을 만들었고, 이제는 Redis와 Cloud-run을 이용해서 scale-out이 가능한 형태의 아키텍처로 만들어봐야겠다 생각하고 있었다. 사실 쿠버

buildabetterworld.tistory.com

 

 

[ 1. Cloud MemoryStore에 Redis Instance를 생성 ]

먼저 Cloud Memory Store에 Redis Instance를 생성하기에 앞서 VPC Network를 만들어 준다.


다음은 Cloud Memory에서 Redis Instance를 만들 차례이다.

 

Redis 인스턴스 만들기 및 관리  |  Redis용 Memorystore  |  Google Cloud

이 페이지에서는 Google Cloud Console과 Cloud SDK를 사용하여 Redis용 Memorystore 인스턴스를 만들고 관리하는 방법을 설명합니다. 클라이언트를 Redis용 Memorystore 인스턴스에 연결하려면 클라이언트와 인

cloud.google.com

 Create Instance를 클릭하면 Tier를 선택할 수 있다. Basic과 Standard가 있는데 replication과 Failover를 지원하는지에 대한 차이이다. 나는 그렇게까지는 필요하지 않기 때문에 Basic을 선택했다. 

  용량은 1GB만 했다. 2,3,4 늘려갈수록 Cost-Estimate 부분이 두배,세배,네배로 찍히는 것을 실감할 수 있다....

나머지 옵션은 그대로 두고 생성했다. VPC Net은 내가 생성한 cloud-run-chat으로 만들었다. (아래는 Creating 중인 화면)

다 만들어지고 나면 IP Address와 Port가 생성된다. (이때 사용할 VPC 네트워크를 선택하고, IP주소를 기록해둔다)

 


 [ 2. VPC Connector를 생성 ]

  그다음, VPC Connector를 생성해야 한다. 이 VPC Connector(access)를 사용하면 Google Cloud의 서버리스 환경(Cloud Run, Cloud Functions, App Engine 표준 환경)에서 VPC 네트워크에 직접 연결할 수 있다. VPC Connector는 다음과 같은 환경에서 많이 사용된다.

내가 사용할 구성은 Cloud-Run  => Connector => Redis Instance이다. 결국 Cloud-Run과 Redis를 연결하는 다리 역할인 것이다. Connector를 만느는 방법은 다음과 같다.

 

서버리스 VPC 액세스 구성  |  Google Cloud

서버리스 VPC 액세스를 사용하면 Google Cloud의 서버리스 환경(Cloud Run, Cloud Functions, App Engine 표준 환경)에서 VPC 네트워크에 직접 연결할 수 있습니다. 이렇게 연결하면 서버리스 환경에서 Compute Engin

cloud.google.com

    Connector를 생성하는 데, 이때 Subnet을 새로 생성해도 되고, VPC에 예약되어 있지 않은 IP를 사용해도 된다. 레퍼런스를 읽어보면 10.8.0.0은 대부분의 새로운 프로젝트에서 사용되지 않는 주소라 하여 그대로 사용했다.

 

다음 기록에 계속..

728x90