개발/구글앱엔진
구글앱엔진 배포했더니 에러가?!
큐토
2019. 1. 9. 19:55
Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.
기존 자바로 배포된 어플리케이션에서는 한번도 겪어보지 못한 에러인데...
노드로 필요한 아키텍트들을 구상하고 배포해봤더니 에러가 났습니다.
설마 웹소켓말고 또 못쓰는 기술들이 존재하는가 긴장했는데...
앱엔진 로그를 뒤져보니
기본제공 메모리가 오버됬다?!
구글앱엔진의 스탠다드 환경에서의 기본제공 인스턴스클래스는 F1인데, 인스턴스 메모리를 128MB까지 제공해줍니다.
시간당요금은 0.05달러.
Instance Class | Memory Limit | CPU Limit | Supported Scaling Types |
---|---|---|---|
F1 (default) | 128 MB | 600 MHz | automatic |
F2 | 256 MB | 1.2 GHz | automatic |
F4 | 512 MB | 2.4 GHz | automatic |
F4_1G | 1024 MB | 2.4 GHz | automatic |
B1 | 128 MB | 600 MHz | manual, basic |
B2 (default) | 256 MB | 1.2 GHz | manual, basic |
B4 | 512 MB | 2.4 GHz | manual, basic |
B4_1G | 1024 MB | 2.4 GHz | manual, basic |
B8 | 1024 MB | 4.8 GHz | manual, basic |
완성되면 어느정도 메모리가 필요할지 모르겠지만 일단 F2로 테스트를 진행하기로 했습니다.
루트디렉토리에 app.yaml 폴더에 해당 프로퍼티 속성을 지정할 수 있습니다.
runtime: nodejs8
instance_class: F2
이렇게 F2로 바꿔서 배포하니 문제가 사라졌습니다.
노드환경에서 스탠다드 환경이 지원된지 얼마 안되서 app.yaml 코드를 대충 복붙해오면 env: flex 값이 따라오게되는데, 상용서비스에 적합한 flexible 서비스라는 옵션입니다. standard와는 다르게 상시 인스턴스가 떠있기 때문에 최소 요금이 꽤 나갑니다.
필자는 실수로 한달간 아무 트래픽없는 사이트를 flexible 환경으로 배포했더니 25달러 정도 나와버렸습니다.
저 말고도 이런 뼈아픈 경험을 겪으신 분이 계시더라구요.