본문 바로가기

[Cloud]/[GCP]

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

728x90

[ 로컬에서 GCP Redis-Instance(memorystore) 에 연결하기 ]

 

Redis 인스턴스에 연결  |  Redis용 Memorystore  |  Google Cloud

이 페이지에서는 Compute Engine 및 Google Kubernetes Engine을 사용하여 Redis 인스턴스에 연결하는 방법을 설명합니다. 또한 Telnet으로 기본 Redis 명령어를 테스트하는 방법도 제공합니다. Memorystore for Redis

cloud.google.com

    로컬 개발환경에서 GCP의 MemoryStore(나의 경우 redis-instance)에 접근 할 필요가 있다. 이럴때는 간단하게, 포트를 Redis 인스턴스로 전달하는 데 사용할 Compute Engine 인스턴스를 생성하면 된다. 그러면 localhost와 gcp-instance, redis-instance간에 ssh 터널을 만들 수 있다. 

# in cloud shell
gcloud compute instances create NAME --machine-type=f1-micro --zone=ZONE

# in local zsh
gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379

 

[ 로컬의 docker 컨테이너에서 localhost url 사용하기 ]

    다음과 같이, host url을 host.docker.internal로 바꿔준다. 하지만 이는 개발을 편하게 하기 위한 목적으로 사용하는 방법으로, 다른 목적으로는 사용하지 말라고 docker document에 적혀져 있다.

 

[ 도커파일 빌드 후 GCP container - registry 에 업로드 ]

    이어서 도커파일을 빌드하고, gcp의 docker image들이 모여있는 registry에 등록한다. 어떤 위치에 있는 데이터센터를 사용할 것인지 선택하고, 단 명령어 몇줄로 업로드가 가능하다.

# 이미지 빌드
docker build -t asia.gcr.io/mypractice-315909/chat-platform .

# 권한 획득
gcloud auth configure-docker

# 이미지 업로드
docker push asia.gcr.io/mypractice-315909/chat-platform

그리고 docker 이미지들이 있는 repositories에 들어가 보면....!!!!

 

[ GCP Cloud-Run으로 배포 ]

 

컨테이너 이미지 배포  |  Cloud Run 문서  |  Google Cloud

 

cloud.google.com

    GCP Cloud-Run으로 배포하는 방법은 다양하게 있다. 그 중에서 나는 gcp 레지스트리에 있는 도커 이미지로 배포하는 방법을 선택했다. 테스트로 max-instance를 2개로 지정하고 테스트 배포를 해봤는데 결과는 성공! 여유가 되면 cloud run을 kubernetes로 한번 다시 구성해봐야겠다ㅋㅋㅋ

gcloud run deploy chatservice \
     --image=asia.gcr.io/mypractice-315909/chat-platform:latest \
     --vpc-connector=minimum-redis-connector \
     --set-env-vars REDIS_URL=redis://10.130.240.139:6379 \
     --max-instances=2 \
     --allow-unauthenticated

 

728x90