Softwares/Cloud Computing (4)

가비아 도메인과 구글앱엔진 연동


구글앱엔진으로 구축한 웹 어플리케이션은 따로 설정하지 않으면 [프로젝트명].appspot.com으로 웹에서 접근할 수 있게 됩니다. 하지만 맞춤 도메인을 통해 개인이 소유한 도메인을 연결시킬 수 있습니다. 예를 들어, 가비아에서 도메인을 구입한 뒤 구글앱엔진으로 구축한 웹 애플리케이션에 연결시킬 수 있습니다. 가장 먼저 할 일은 물론 가비아에서 도메인을 구입하여야 하는 것입니다. 가비아에서 도메인을 구입하였고, 구글앱엔진으로 구축하여 appspot으로 돌아가는 웹 애플리케이션이 있다는 가정하에 아래 과정을 진행하면 됩니다.


구글앱엔진 설정


왼쪽 대시보드 설정 - 맞춤 도메인 - 새 맞춤 도메인 추가



그러면 이렇게 해당 도메인의 DNS 구성에 TXT 기록을 추가하라고 나옵니다. 이 화면에서 멈춰놓고 가비아 홈페이지에 접속하여 이 기록을 추가하여야합니다.



가비아 설정


가비아 홈페이지 - DNS 설정 - 레코드 추가



여기서 호스트에는 @를 하고 값/위치에 위에 구글에서 알려준 TXT 기록을 입력한 후 저장을 누릅니다. (호스트에 반드시 @를 쓰셔야합니다. 다른 걸 쓰면 안됩니다..)

다음에 구글앱엔진으로 돌아와 확인을 누르면 도메인에 대한 소유권이 확인됩니다. 여기까지 되었으면 해당 도메인이 본인 거라는 것을 구글이 확인한 것입니다. 이제 그 도메인으로 접속할 수 있으려면 A레코드를 추가해야하는데 위 과정을 진행하면 앱엔진 대시보드 상에 다음과 화면이 나오게 됩니다. 여기에서 "데이터" 란에 표시된 IP 주소를 가비아에 입력해주어야합니다.



아까의 가비아 DNS 설정 화면으로 돌아와서 레코드 추가에서 타입을 A, 호스트는 @그리고 값에는 위의 IP 주소를 넣으면 설정이 완료됩니다. 그러면 해당 도메인으로 구글 앱 엔진에 접속할 수 있게 됩니다.




하위 도메인 설정 방법 


구글 앱엔진에서 하위 도메인(www를 예로 들음)을 추가한 후에, 가비아에서 1. 레코드 추가-타입 CNAME  2. 호스트 - www, 3. 값 - 구글앱엔진 대시보드 상의 "데이터" (저의 경우에는 ghs.googlehosted.com 을 입력하였습니다.) 를 입력한 후 저장하면 www.domain.com 으로도 구글 웹앤진을 접속할 수 있습니다.



구글의 PaaS(Platform as a Service) 구글 앱 엔진(Google App Engine)에는 크게 두 가지 환경, standard environment와 flexible environment가 있습니다.


저 같은 경우 아무 생각도 없이 node.js google app engine 어플리케이션을 개발한 후 서버에 deploy 했는데, 지출 한도를 0으로 설정했음에도 불구하고 과금이 계속되어 결국에 25달러를 날리게 된 경험이 있습니다..


찾아보니 node.js의 경우 flexible 환경에서만 지원되고, 지출 한도는 standard environment에 적용되는 것이었습니다. 또한 flexible 환경에서는 cpu, memoery 등을 사용한 시간에 따라 과금되는 것이더라구요. 그래서 deploy가 된 시간만큼 요금이 나왔던 것이었습니다. 


아래는 두 가지 환경을 비교한 표입니다.


<https://cloud.google.com/appengine/docs/the-appengine-environments>








참고


https://cloud.google.com/appengine/docs/the-appengine-environments



  • 큐토 2018.11.15 09:50

    이 포스트가 무려 1년 반 전 게시물인데...
    멍청한 저는 테스트하다가 25달러를 날려먹었네요 ㅋㅋㅋ

    그래도 고무적인 부분은
    node.js 도 standard environment 를 지원하고 있습니다.
    댓글을 작성하는 현재까지는 beta 버전이긴 하지만요.

    많이 늦었지만 좋은 정보공유 감사드립니다.

    • Deepplay 2018.11.15 12:54 신고

      저랑 비슷하시네요... 저도 25달러 정도 날렸습니다 ㅠ_ㅠ Node 도 이제 Standard environment 지원을 하는군요! 앞으로 Node도 구글앱엔진에서 활발히 사용되겠네요 ㅎㅎ

Google App Engine + node js 환경의 sample 어플리케이션인 BookShelf 어플리케이션을 로컬에서 개발하려던 중,

npm start를 통해 어플리케이션을 실행한 후 홈에 접속하려고 할 때 아래와 같은 문제가 있었다.



Error: Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.



문제는 위의 에러 코드에서도 나오듯 아래 URL에서 확인할 수 있는데

https://developers.google.com/accounts/docs/application-default-credentials

Google App Engine 어플리케이션을 로컬에서 작동시키려면 Google App Engine API의 Credential이 필요하다. 


아래와 같은 방식으로 해결하였다. Google Cloud SDK가 설치된 상태에서 콘솔창에


gcloud auth application-default login


를 입력한다. 이후 웹 브라우저가 자동으로 실행되고 자신의 구글 계정으로 로그인하여 클릭을 하면 credential 파일이 로컬에 다운로드되고 알아서 그 파일을 어플리케이션 안에서 default credential로 잡게 되는 것 같다.


이후 다시 npm start를 통해 어플리케이션을 실행하면 Bookshelf 어플리케이션이 잘 구동되는 것을 확인할 수 있다.



  • sensa2 2020.11.20 00:27

    유용한 글 잘 배우고 가용~

/**

구글 클라우드 SDK로 파이썬 웹 애플리케이션 구축하기

작성자 : 3개월

날짜 2016-10-29

*/


참고 사이트 : https://cloud.google.com/appengine/docs/python


구글 클라우드 SDK에 포함된 PaaS 서비스인 구글 앱엔진을 통해 파이썬 Hello World 어플리케이션을 만드는 법에 관한 포스팅이다.

위의 구글 클라우드 앱엔진 Document만 봐도 할 수 있지만 한 번 정리해보았다.


1. 구글 클라우드 SDK 설치

(https://cloud.google.com/appengine/docs/python/download)


우선 구글 클라우드 SDK를 설치하여야한다. 위 사이트에서 Download and Install을 클릭한 후 설치하면 된다.


설치가 완료되면 cmd창을 열고 터미널에 아래 명령어를 입력한다.


gcloud init


사실 원래는 구글 앱엔진이라는 이름으로 구글의 PaaS 서비스가 따로 떨어져 있었다. 근데 얼마전부터 구글 앱엔진이 구글 클라우드 SDK에 통합된 것 같다. 구글 클라우드 플랫폼에서는 구글 클라우드 SDK에 종속되지 않은 구글 앱엔진의 파이썬 SDK도 따로 제공하고 있다. 


https://cloud.google.com/appengine/docs/python/download 이 곳에서 [Optionally ...] 부분을 클릭하면 이것을 다운 받을 수 있다. 하지만 모처럼 구글 클라우드 SDK라는 구글 클라우드의 통합 버전이 나왔음으로 이를 이용하도록 하자. 


구글 앱엔진을 이용하기 위해선 구글 클라우드 SDK를 설치한 후 명령어를 통하여 구글 앱엔진 파이썬 모듈을 추가하면된다.

(구글 앱엔진 파이썬 모듈이 구글 클라우드 SDK에 default로 설치되어있는지는 잘 모르겠다.. 저의 경우 그냥 명령어를 통해 모듈을 추가했다.)


2. 구글 앱엔진 파이썬 모듈 추가

커맨드 창에 아래와 같이 입력하면 구글 앱엔진 파이썬 모듈이 추가된다. (출처 : http://stackoverflow.com/questions/40290695/where-is-appcfg-py-in-google-cloud-sdk-133-0-0-darwin-x86-64-tar-gz)


gcloud components install app-engine-python

그러면 아래와 같은 디렉토리에 파이썬 모듈이 생성된다. (저의 경우에는 아래 루트에 생성됨 - Windows10 사용자)

C:\Users\사용자이름\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine


3. 이클립스를 다운받는다. http://www.eclipse.org/

구글 앱엔진은 이클립스 사용을 권장하는듯 하다.

(자바가 없으면 자바 SDK 먼저 다운로드)


4. PyDev를 설치한다.

이클립스에서 Help > Eclipse Market Place에서 PyDev 검색 후 Install. 계속 next, accept 누르면 된다.


5. PyDev Google App Engine Project를 생성한다.

이클립스에서 File -> New -> Project 에서 PyDev Google App Engine Project 누른다.



Please configure an interpreter before proceeding. 를 눌러 default interpreter를 설정하고, 

구글 앱엔진 디렉토리에는 2번의 링크를 넣는다.


6. 다음 화면에서는 구글 클라우드 사이트에서 등록한 아이디가 있으면 입력하고 Template은 Hello Web App World를 선택한다.


 


7. 다음으로는 Eclipse에게 프로젝트가 어떤 library에 의존하고 있는지 알려주어야한다.

프로젝트가 생성되었음을 확인한 후 프로젝트명을 우클릭하여 Properties에 들어간다.

PyDev > PYTHONPATH 에서 Add Source Folder를 누른후 OK를 누른다.


8. 다시 프로젝트명을 우클릭후 Run As > PyDev: Google App Run을 누르면 웹 서버가 작동한다


http://localhost:8080에 들어가면 Hello, webapp World 라는 글씨가 보이게 된다.



  • 2017.04.16 10:42

    비밀댓글입니다