해리슨 avatar

Google App Engine 과 Git을 이용한 자동 배포

calmlake79

Published: 08 Mar 2018 › Updated: 08 Mar 2018Google App Engine 과 Git을 이용한 자동 배포

Google App Engine 과 Git을 이용한 자동 배포

개발자라면 누구나 원하는 자동화.

Git을 이용하여 개발을 할 경우 생각해 볼만한 것중 하나가 Git Push만 하고 나면 자동으로 서버가 올라가게 할 순 없을까? 하는것일꺼다.

당연히 있다.

Github에서 Webhook 을 이용하여 하는건....여기서 다룰 내용이 아니니 패스하고, 순수하게 GCP에서 제공해주는 서비스들만 구성하여 하는것을 이야기 해보고자 한다.

만들려는 일련의 과정은 다음과 같다.

  1. Google Cloud Source Repository ( https://cloud.google.com/source-repositories/?hl=ko 이하 GCSR로 약칭 )에 Git Push를 한다.

  2. Google Container Registry( https://cloud.google.com/container-builder/?hl=ko ) 에 있는 Build Trigger ( 이하 트리거 )를 이용하여 자동으로 빌드 ( 원래는 Docker Image를 빌드 할 수도 있지만, 간략하게 하기 위하여 여기서는 PHP 를 이용할 것임 )

  3. 빌드후 Google App Engine 으로 자동 배포

==========================
결국 설정만 해놓으면, Git 에서 Push만 하고 나면 사람이 할 일은 없는것이다.
그럼 순서대로 보겠다.

( 모든 설명은 한국어 메뉴 기준이다. )

저장소에서 임의의 저장소를 만든다. 여기서는 test라는 이름으로 하나 만들도록 한다.
생성된 저장소에 다음과 같은 파일을 업로드한다.

screenshot 2018-03-08 23.27.26.png

3개의 파일을 만든다.
각각의 파일의 내용과 용도는 다음과 같다.
[ helloworld.php ]

<?php

echo 'Hello, World!6';

올리고자 하는 파일이다.

[ app.yaml ]

service: default
runtime: php55
api_version: 1

handlers:
- url: /.*
  script: helloworld.php
  secure: always

App Engine 을 설정하는 파일이다. 자세한 설명은 - https://cloud.google.com/appengine/docs/standard/php/config/appref

[ cloudbuild.yaml ]

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - app
  - deploy

트리거가 해석하여 동작할 파일이다. 저 부분이 조금 고생했는데, steps는 트리거가 저 스텝대로 동작을 한다고 이해하면 된다. 좀더 자세한 설명은 다음 링크에 - https://cloud.google.com/container-builder/docs/create-custom-build-steps

이대로 저장을 한뒤 Git Push를 한다. 그 다음에 빌드 트리거로 가서 트리거를 만든다.
screenshot 2018-03-08 23.35.53.png

Cloud Source 저장소를 선택한뒤, 저장소 선택을 하면 아까의 그 test 저장소가 나온다. 선택한다.
마지막으로 트리거를 설정하는 복잡한 화면에서는 아무것도 건들지 말고, 빌드구성을 cloudbuild.yaml 을 선택한다.
screenshot 2018-03-08 23.37.14.png

마지막으로 저장.

자 이제 소스코드를 수정한뒤 git push를 하거나 혹은 아래와 같은 화면에서 트리거 실행을 선택해 보자.

screenshot 2018-03-08 23.39.00.png

왼쪽의 빌드 기록을 보면 성공적으로 동작한것을 확인 할 수 있다.

screenshot 2018-03-08 23.39.36.png

그리고 App Engine으로 가서 확인을 해보면 다음과 같이 성공한것을 알 수 있다.

screenshot 2018-03-08 23.40.37.png

아. 중간에 빼먹은것이 있는데, IAM 을 수정해야 합니다. ( 아마 위에 그대로 하셨으면 중간에 오류가 났을껍니다. )
screenshot 2018-03-08 23.48.46.png

메뉴와 같이 IAM을 가서 CloudBuilder를 찾아 권한을 수정합니다.
기존에는 [ 클라우드 컨테이너 빌더 ] 권한만 있을것입니다. 여기에 [ App Engine 관리자 ] 권한을 추가합니다.
이제 다시 트리거로 가서 테스트를 해보시면 .. 성공리에 배포가 된것을 확인 할 수 있습니다.

Leave Google App Engine 과 Git을 이용한 자동 배포 to:

Written by

안녕하세요 해리슨입니다.

Read more #kr posts


Best Posts From 해리슨

We have not curated any of calmlake79's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 해리슨