[ 캐치업 ]
오랜만에 스프링 부트에서 다시 사이드 플젝으로 돌아왔다. 지난 포스팅에서 [ 1. Cloud MemoryStore에 Redis Instance를 생성 ], [ 2. VPC Connector를 생성 ] 까지를 완성했다. 이후로 바로 cloud-run을 사용하려다가, 코드에서 고칠 부분도 있고 해서 VM에 환경을 구성하고 방화벽 등 서버간 통신이 문제가 없는 것을 확인하고 나서 Docker를 통해 배포를 해보기로 마음먹었다.
[ 삽질의 삽질 ]
사실 여기서부터 오랜기간 삽질의 기간이 있었다... redis instance를 gcp상에서 처음 사용해 보았고, fire-wall 설정과 vm-instance위에서 정상적으로 프로그램이 동작하는데 까지 좋은 경험이 되었다. '그냥 필요한거 설치하고 실행하면 끝이지' 라고 생각했었다가, 이거를 왜 app-engine이라는 놈을 굳이 만들어서 편하게 환경을 구축하도록 도와주는 것인지 '정말로' 체감하게 되었다.
1. local에서 돌아가는 localhost redis-url을 gcp redis instance url로 변경해 주었다
2. gunicorn으로 가볍고, 빠르게 동작하는 서버로 바꿔주었다(uwsgi 대체)
3. GCP VPC에 적용될 inbound/outbound 규칙을 설정해주었다
4. APP Engine을 사용하지 않고 날것의 VM에서 정상적으로 동작하도록 환경을 구성해보았다.
5. Flask response 객체를 만들 때 mime-type을 text/event-stream을 사용하는데, 블럭단위로 전송할 때 "/n" 대신 "/n/n"을 사용한다는 것을 알게 되었다!
[ 테스트를 위해 VM에 올린 샘플 ]
결론적으로 아직 High-scalable은 아니지만, 코드가 정상적으로 동작하도록 만들었다. GCP Redis Instance와 Redis의 pub/sub기능을 사용했고, VPC와 VM-instance를 사용했다.
'[Cloud] > [GCP]' 카테고리의 다른 글
[Side-Project] Ant Platform - High-scale chat server 구성하기 3 (0) | 2021.08.01 |
---|---|
[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 |