음. 갑자기 구글 지도 API를 잠시 사용할 일이 생겨서, 확인해보니 카드 등록을 해야 하는데, 과금에 대한 불안감에 이것저것 찾아보았습니다. 일단 구글에서는 대부분의 사용자는 계속 무료로 쓸 수 있다고 하는데, 세상은 믿을 수 없으니.
예. 2018년 7월 16일 이후에 결제를 활성화하면 매달 200달러만큼 Maps, Routes, Places를 무료로 사용할 수 있습니다. 현재 지도 관련 API를 이용하는 수백만 명의 사용자 중 대부분이 이 크레딧으로 Google Maps Platform을 계속 무료로 사용할 수 있습니다. https://cloud.google.com/maps-platform/pricing/?hl=ko
구글 지도 API 과금 안내 사이트에 보면 "요금 계산기"라고 있는데, 지도 API(경로와 장소는 제외하고)만 보면 아래의 경우 과금이 된다고 합니다.
- Embed Advanced
- Static Maps
- Dynamic Maps
- Static Street View
- Dynamic Street View
일단 단순하게 특정 위치의 지도만 표시하는 경우에는 과금이 되지 않습니다. 과금이 되는 대상은 경로를 검색하거나(Directions mode) 스트리트뷰를 사용하거나(Street View mode) 검색기능을 사용(Search mode)할때입니다. 뭔가 구글의 컴퓨팅 자원이 들어가는 일은 돈을 받는다는 개념 같습니다.
https://developers.google.com/maps/documentation/embed/usage-and-billing?authuser=1#embed-advanced
Static Maps, Static Street View은 자바스크립트를 사용하지 않고 그냥 URL로 원하는 지도를 호출하는 방식입니다. 그냥 지도만 표시하는 건 제한이 없는데, 특정 위치에 마커를 찍거나 뭔가 다른 동작이 들어가면 비용이 발생하나 봅니다.
https://developers.google.com/maps/documentation/maps-static/intro
https://developers.google.com/maps/documentation/streetview/intro
Dynamic Maps, Dynamic Street View는 자바스크립트에서 Map 클래스를 생성해 사용하는 경우라고 합니다. 이런 경우에는 맵을 로드할때마다 0.007 USD가 과금된다고 합니다. 10만번까지는 1000번 호출하면 7달러가 과금되는 것이지요. 어찌되었든 호출할때마다 계속 과금이 됩니다. 자바스크립트에서 뭔가 기능을 사용하는 경우에는 다 걸린다는 이야기 같은데요.
https://developers.google.com/maps/documentation/javascript/tutorial
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
그래도 무료라고 이야기하는 건 매월 200달러의 크레딧을 주기 때문입니다. 예를 들어 Dynamic Maps의 경우 200달러로 28,500건까지 동적 지도 웹 로드를 사용할 수 있습니다. 한달을 30일로 계산하면 서비스 이용자가 하루 950명 이하여야 합니다. 그 이상이 되면 과금이 된다는 이야기죠.
동적 지도이더라도 모바일에서는 무료로 사용할 수 있습니다. 모바일은 뭔가 혜택을 주는건가요 ㅠㅠ
한달 크레딧이 모자라다면, 여러 개의 계정을 사용해서 API KEY를 여러 개 사용할 수 있을까 싶었는데, 이미 비슷한 생각을 하는 분들이 있더군요.
하지만, 구글 서비스 이용 약관에 이미 명시가 되어 있구요. 어떤 식으로든 구글을 속여넘길수는 없을것 같네요. 뭐 물론 아예 별개의 도메인, 별개의 서비스라면 상관이 없을 수도 있습니다만, 구글에서 로그인 패턴을 조사한다든지 등의 모니터링으로 걸릴 수도 있을 것 같네요.
(e) No Circumventing Fees. Customer will not circumvent the applicable Fees. For example, Customer will not create multiple billing accounts or Projects to avoid incurring Fees; prevent Google from accurately calculating Customer’s Service usage levels; abuse any free Service quotas; or offer access to the Services under a “time-sharing” or “service bureau” model. https://cloud.google.com/maps-platform/terms/#3-license
뭐 이 정도 비용을 지불하고 더 많은 기회를 얻을 수 있다면 좋겠지만, 그냥 일시적인 필요에 의한 것이라면 다른 방법을 찾아봐야겠네요.
추가로 도메인 제한을 둘 수 있는데 이때 localhost를 설정하는 경우에도 과금이 된다고 합니다. 때문에 localhost로 설정한 계정 key값이 털리면(사실 자바스크립트라면 키값이 공개되어 있으니) 위험할 수도 있다고 하네요.