Google App Engine 을 이용한 자동배포 - 2

in kr •  7 years ago  (edited)

GAE는 크게 Flexible Engine 과 Standard Engine 으로 나뉜다.
둘다 GAE라는 시스템을 만드는 엔진이긴 한데 몇가지 차이점이 있다.

기본적으로 가장 쉽게 설명하자면, Flexible은 유연하게 어느정도의 커스텀이 되는 환경이라고 하면, Standard는 표준화된 환경을 의미한다고 볼 수 있다. 따라서, Flexible은 상대적으로 인스턴스의 시작(부팅)이 느리고 ( 분단위 ) Standard는 빠르다( 초단위 ).
또한 요금 시스템 또한 Standard는 사용시간 단위라고 하면, Flexible은 커스텀된 cpu,memory ,disk를 기준으로 과금을 한다.

자세한 내용은 다음 링크를 통해 ( https://cloud.google.com/appengine/docs/the-appengine-environments )


이번 포스팅이 기본적으로 standard를 배포하는 내용이었다면, 이번에 다룰 내용은 flexible을 다룰것이다.
standard는 빠르지만 대신에 기본적인 환경이라서, php5 만 사용이 가능한데, flex 는 php7.1 도 사용이 가능하다.
또한 Node.js의 경우에는 standard에서는 동작하지 않고 flex에서만 동작이 가능하다. 따라서 이번에는 flex를 다룰것인데,
사실 기본적인 내용은 이전 포스팅과 전혀 다를게 없고 오로지 app.yaml과 cloudbuild.yaml 파일만 수정하면 할 수가 있다.

세부적인 내용은 이전 포스팅 참조 ( https://steemit.com/kr/@calmlake79/google-app-engine-git )


app.yaml 은 다음과 같다.

service: default
runtime: php
api_version: 1
env: flexible

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

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 20

오토스케일링 관련을 넣어준것과 환경을 flex로 바꾼것 외에는 크게 달라진게 없다. 오토스케일링을 안넣어주면 기본적으로 2개의 인스턴스를 띄워준다. 주의하도록.
관련 링크는 다음과 같다. ( https://cloud.google.com/appengine/docs/flexible/php/configuring-your-app-with-app-yaml )
참고로, flex랑 standard랑 미묘하게 옵션값이 달라서 헷갈릴수 있으니 주의해야 한다.

다음은 cloudbuild.yaml 이다.

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ["build", "-t", "gcr.io/bustling-walker-196904/test", "."]
- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "gcr.io/bustling-walker-196904/test"]
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - app
  - deploy
  - --image-url=gcr.io/bustling-walker-196904/test

여기는 좀 내용이 많이 바뀌었다.
steps 아래에 - name 이런식으로 하면 순차적으로 실행이 되는 구조이다.
3개의 라인을 순차적으로 이해를 하면,

  1. 먼저 docker 이미지를 생성한다.
  2. 만든 docker 이미지를 Cloud Registry 로 push 한다.
  3. 해당 이미지를 이용하여 앱을 배포한다.
    의 구조로 이해하면 된다.

마지막으로 Dockerfile을 추가한다.

FROM gcr.io/google-appengine/php71

COPY . /usr/src/app

php7.1 이미지를 가져오는 docker file 이다.

이대로 만들고 소스코드를 수정하고 git push를 하면? 짜잔.
screenshot 2018-03-09 12.28.22.png

기존과는 다르게 생긴 버전이 배포 되었다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!