Google App Engine 과 Git을 이용한 자동 배포
개발자라면 누구나 원하는 자동화.
Git을 이용하여 개발을 할 경우 생각해 볼만한 것중 하나가 Git Push만 하고 나면 자동으로 서버가 올라가게 할 순 없을까? 하는것일꺼다.
당연히 있다.
Github에서 Webhook 을 이용하여 하는건....여기서 다룰 내용이 아니니 패스하고, 순수하게 GCP에서 제공해주는 서비스들만 구성하여 하는것을 이야기 해보고자 한다.
만들려는 일련의 과정은 다음과 같다.
Google Cloud Source Repository ( https://cloud.google.com/source-repositories/?hl=ko 이하 GCSR로 약칭 )에 Git Push를 한다.
Google Container Registry( https://cloud.google.com/container-builder/?hl=ko ) 에 있는 Build Trigger ( 이하 트리거 )를 이용하여 자동으로 빌드 ( 원래는 Docker Image를 빌드 할 수도 있지만, 간략하게 하기 위하여 여기서는 PHP 를 이용할 것임 )
빌드후 Google App Engine 으로 자동 배포
==========================
결국 설정만 해놓으면, Git 에서 Push만 하고 나면 사람이 할 일은 없는것이다.
그럼 순서대로 보겠다.
( 모든 설명은 한국어 메뉴 기준이다. )
저장소에서 임의의 저장소를 만든다. 여기서는 test라는 이름으로 하나 만들도록 한다.
생성된 저장소에 다음과 같은 파일을 업로드한다.
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를 한다. 그 다음에 빌드 트리거로 가서 트리거를 만든다.
Cloud Source 저장소를 선택한뒤, 저장소 선택을 하면 아까의 그 test 저장소가 나온다. 선택한다.
마지막으로 트리거를 설정하는 복잡한 화면에서는 아무것도 건들지 말고, 빌드구성을 cloudbuild.yaml 을 선택한다.
마지막으로 저장.
자 이제 소스코드를 수정한뒤 git push를 하거나 혹은 아래와 같은 화면에서 트리거 실행을 선택해 보자.
왼쪽의 빌드 기록을 보면 성공적으로 동작한것을 확인 할 수 있다.
그리고 App Engine으로 가서 확인을 해보면 다음과 같이 성공한것을 알 수 있다.
아. 중간에 빼먹은것이 있는데, IAM 을 수정해야 합니다. ( 아마 위에 그대로 하셨으면 중간에 오류가 났을껍니다. )
메뉴와 같이 IAM을 가서 CloudBuilder를 찾아 권한을 수정합니다.
기존에는 [ 클라우드 컨테이너 빌더 ] 권한만 있을것입니다. 여기에 [ App Engine 관리자 ] 권한을 추가합니다.
이제 다시 트리거로 가서 테스트를 해보시면 .. 성공리에 배포가 된것을 확인 할 수 있습니다.
Leave Google App Engine 과 Git을 이용한 자동 배포 to:
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 해리슨
- kubernetes 에서 Pod 균등 분배하기
- Namecheap 에서 GCP용 SSL 인증서 만들기
- GCP의 새로운 Memorystore - Redis 벤치마크
- GCP의 새로운 Memorystore - Redis 출시
- Google Kubernetes Engine 에서 Private Network 접속하기
- Kubernetes in Google Cloud Platform - (2)
- Kubernetes in Google Cloud Platform - (1)
- Google Container Registry를 활용한 이벤트 트리거
- Google App Engine 을 이용한 자동배포 - 2
- Google App Engine 과 Git을 이용한 자동 배포