수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다
개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!
교재 <구글 클라우드 플랫폼 인 액션> 을 토대로 실습을 진행했습니다.
구글 앱 엔진(Google App Engine, GAE)은 구글에서 제공하는 서비스 중 하나이며, 웹 응용 프로그램을 PHP · Python · Java · Go 언어를 사용하여 개발하고 구글의 인프라에서 실행하고 버전 관리할 수 있다. 구글 클라우드 플랫폼의 일부이다.
- 출처 : 위키백과 -
* App Engine Standard
* [방법1] App Engine으로 초간단 웹서버 만들기
App Engine > 대시보드 > 만들기 > 언어:Python > Cloud Shell 선택 > Shell에 코드 작성 > 웹 미리보기 ( 8080포트에서 미리보기 ) > 'Hello World!' 가 출력됨
터미널에 입력할 내용 ( Shell에 코드 작성 )
$git clone https://github.com/GoogleCloudPlatform/python-docs-samples
$cd python-docs-samples/appengine/standard_python3/hello_world
$virtualenv --python python3 ~/envs/hello_world
$source ~/envs/hello_world/bin/actiave
$pip install -r requirements.txt
$python3 main.py
* [방법2] App Engine으로 초간단 웹서버 만들기
터미널에 계속해서 진행합니다. 경로 ( /python-docs-samples/appengine/standard_python3/hello_world )
gcloud auth login > 링크 접속 후 계정 로그인하고 권한 허용 클릭 > gcloud config set project [프로젝트ID] > gcloud app create > gcloud app deploy app.yaml --project [프로젝트ID]
-> https://[프로젝트ID].appspot.com/ 으로 검색하면 웹에 Hello World! 가 출력되는 것을 확인할 수 있습니다.
내용을 바꾸고 싶다면 vi main.py 실행 후 return 부분에 출력할 내용을 입력하시면 됩니다.
다시 gcloud app deploy app.yaml --project [프로젝트ID] 실행 후 웹에 접속해보면 바뀐 내용이 출력됩니다.
* App Engine Flex
App Engine 의 터미널에서 시작합니다.
* 패키지 정의 및 필요 종속성 설정
$mkdir default-flex
$cd default-flex
$npm init
모든 설정 Enter
$npm install express
* "Hellow, world!" 애플리케이션 정의하는 스크립트 작성
$vi app.js 에 아래 스크립트를 작성 후
github.com/Jpub/GCP/blob/master/Chapter_11/list11.6.js
$node app.js 를 실행하면, 아래와 같이 출력되면서 포트가 열린 것을 확인할 수 있습니다.
새로운 터미널을 열고
$curl http://localhost:8080 을 실행하면
Hello from App Engine Flex! 가 출력됨을 확인하실 수 있습니다!
이제 코드가 작동하는지 확인했으므로 App Engine에 다시 배포할 수 있습니다.
이전과 마찬가지로 App Engine에 코드 실행 방법을 설정해야 합니다.
App Engine 표준과 마찬가지로 app.yaml이라는 파일에 구성 옵션을 추가합니다.
-> 가장 큰 차이점은 Flex 기반 애플리케이션이 도커를 기반으로 하기 때문에 app.yaml에 넣은 구성이 훨씬 덜 복잡하다는 것입니다.
$vi app.yaml 실행 후 아래 내용을 저장합니다.
runtime: nodejs
env: flex
service: default
보다시피 이 구성 파일은 App Engine Standard에 애플리케이션을 빌드할 때 사용한 구성 파일보다 훨씬 간단합니다.
App Engine Flex는 코드를 가져와서 컨테이너에 넣는 방법만 알면 됩니다.
라우팅 정보를 설정하는 대신 App Engine에 서버 시작 방법을 알려줘야 합니다.
$vi package.json 실행 후 아래 내용을 저장합니다.
{
"name": "default-flex",
"version": "1.0.0",
"main": "index.js".
"license": "MIT",
"dependencies": {
"express": "^4.17.1"
},
"scripts": {
"start": "node app.js"
}
}
* App Engine Flex에 배포
App Engine Flex에 애플리케이션을 배포하는 것은 App Engine Standard에 배포하는 것과 유사합니다.
첫 번째 차이점은 배포를 완료하는 데 약간 시간이 거린다는 점입니다.
App Engine Flex는 애플리케이션 코드에서 도커 컨테이너를 만들어 구글 클라우드에 업로드하고, Compute Engine VM 인스턴스를 프로비저닝하고, 해당 인스턴스에서 컨테이너를 시작하기 때문에 더 많은 시간이 소요됩니다.
App Engine Standard를 사용하는 경우보다 훨씬 더 많은 작업을 수행할 수 있지만, 프로세스 자체는 동일하므로 gcloud 명령줄 도구로 수행할 수 있습니다.
$gcloud app deploy ../default-flex 명령어를 실행해 애플리케이션에 배포한 후,
App Engine Standard에서 애플리케이션을 테스트한 것과 동일한 방식으로 작동하는지 테스트할 수 있습니다.
$curl https://PROJECT-ID.appspot.com/ 명령어를 실행하면
Hello from App Engine Flex! 가 출력되는 것을 확인할 수 있습니다.
'클라우드 > GCP' 카테고리의 다른 글
Cloud Storage : 오브젝트 스토리지 (0) | 2021.02.09 |
---|---|
Cloud Functions : 서버리스 애플리케이션 (0) | 2021.02.09 |
Node.js 설치 (0) | 2021.02.05 |
Cloud Spanner : 대규모 SQL 실습 (0) | 2021.02.05 |
로드 밸런싱(Load Balancing) 구축 실습 (0) | 2021.02.04 |
댓글