[ 로컬에서 GCP Redis-Instance(memorystore) 에 연결하기 ]
로컬 개발환경에서 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으로 배포 ]
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
'[Cloud] > [GCP]' 카테고리의 다른 글
[Side-Project] Ant Platform - High-scale chat server 구성하기 2 (0) | 2021.07.18 |
---|---|
[Side-Project] Ant Platform - High-scale chat server 구성하기 1 (3) | 2021.06.12 |
[GCP] Cloud Monitoring 로 VM 인스턴스 로그 수집하기 - 5.NAT을 통한 Static-IP 요금 절약 (0) | 2021.04.09 |
[GCP] Cloud Monitoring 로 VM 인스턴스 로그 수집하기 - 4. 중간 점검,앞으로 할 일 정리 (0) | 2021.04.08 |
[GCP] Cloud Monitoring 로 VM 인스턴스 로그 수집하기 - 3. Cloud Monitoring (0) | 2021.03.27 |