【GCP】App Engine で手軽にアプリケーションをデプロイする

# 概要

`App Engine`をGCP学習の一環で触ってみたので機能をまとめてみる

https://www.udemy.com/course/google-cloud-platform-gcp/

# App Engine(GAE)とは

- 自動でスケーリングして負荷分散してくれる
- インフラの管理を全て自動でやってくれる
- カスタムドメインにデフォルトでSSL証明書を利用できる
- 各プロジェクトで1つだけ存在できる

https://cloud.google.com/appengine/docs?hl=ja

> App Engine は、大規模なウェブ アプリケーションを開発およびホスティングするための、フルマネージド型のサーバーレス プラットフォームです。アプリの開発では複数の一般的な言語、ライブラリ、フレームワークからの選択が可能で、開発したアプリのインスタンスのサーバー プロビジョニングとスケーリングは App Engine によってオンデマンドで行われます。



# GAEの構築

## `app.yaml`の作成

- 今回は`PHP7`系のアプリケーションを構築する

https://cloud.google.com/appengine/docs/standard/php7/config/appref
 
```yaml:app.yaml
# 使用する言語
runtime: php72

# url: xxxxにアクセスされたときの挙動を定義
handlers:
# Serve a directory as a static resource.
- url: /stylesheets
  # 静的ディレクトリの設定
  static_dir: stylesheets

# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
  # 静的ファイルの設定
  static_files: \1
  # gif、png、jpg の拡張子を持つファイルを静的リソースとして提供
  upload: .+\.(gif|png|jpg)$

# Serve your app through a front controller at index.php or public/index.php.
- url: .*
  script: auto
```

## 動作させるPHPファイルを生成

```php:index.php
<?php 

echo "hogehoge";
```

## 開発サーバを起動する

https://howtoinstall.co/en/php7.0-cgi

```bash
# サーバー上でPHP7環境を動かすのでCGIをインストール
sudo apt-get update
sudo apt-get install php7.0-cgi

# アプリを実行する
dev_appserver.py --php_executable_path=/usr/bin/php-cgi .

# GAEを作成
gcloud app create

[1] asia-east1    (supports standard and flexible)
 [2] asia-east2    (supports standard and flexible and search_api)
 [3] asia-northeast1 (supports standard and flexible and search_api)
 [4] asia-northeast2 (supports standard and flexible and search_api)
 [5] asia-northeast3 (supports standard and flexible and search_api)
 [6] asia-south1   (supports standard and flexible and search_api)
 [7] asia-southeast1 (supports standard and flexible)
# ikaryaku
Please enter your numeric choice:  Please enter a value between 1 and 24:
# リージョンを選べって言われているのでasia-east1（東京）を指定 1

Success! The app is now created. Please use `gcloud app deploy` to deploy your first app.

# デプロイ
gcloud app deploy
[gae-demo-340017]
target service:              [default]
target version:              [20220201t184254]
target url:                  [https://gae-demo-340017.de.r.appspot.com]
target service account:      [App Engine default service account]

Do you want to continue (Y/n)?  y

WARNING: PHP 7.2 is no longer supported by the PHP Group as of November 2020. We recommend you to upgrade to the latest version of PHP runtime as soon as possible. For details on upgrading, see https://cloud.google.com/appengine/docs/standard/php7/runtime.

Updating service [default]...done.     
Setting traffic split for service [default]...done.

# 以下のURLにアクセスするとindex.phpの内容が出力されます
Deployed service [default] to [https://gae-demo-340017.de.r.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s default

To view your application in the web browser run:
  $ gcloud app browse
```

![スクリーンショット 2022-02-02 3.48.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555632/1da9de2e-2daf-5665-e5e9-006b57c82a0f.png)

# まとめ

今回は`App Engine `の構築〜デプロイまでまとめました
いいねしていただけると記事執筆の励みになりますので、参考になったと思った方は是非よろしくお願いします！