【GCP】はじめてのApp Engine設定


前回軽くさわったGAE(Google App Engine)の使い方というかサービス構成を構造ファイルを作りながら見る。

Go1.12のapp.yaml構成を参考にYAMLファイルを書いてみます。

他の言語でもコア部分は同じですが必要なものがちょくちょく違います。

他言語についてはここから「APIとリファレンス→構成ファイル」を参照。

設定一覧

とりあえずドキュメントにあるものを書き出してみる。

 

色々ありますがとりあえず気にするところを見てみます。

スケーリングとインスタンス

インスタンス時間に課金されるのでここが一番大事だと思います。

無料枠のインスタンス時間は次のようになっています。

1 日あたり 28 時間のフロントエンド インスタンス時間、1 日あたり 9 時間のバックエンド インスタンス時間

ドキュメントによってはバックエンドは8インスタンス時間と書かれています。

これは最低クラスのインスタンスF1、B1での時間でありF2、B2だと半分の時間になるようです。

バックエンドではデフォルトで使用されるインスタンスがB2なのには注意する。

 

またスケーリングは3種類から選べるが使えるインスタンスが異なる。

例えばbasic_scalingでF1インスタンスを使おうとするとエラー。

INVALID_ARGUMENT: Instance class (F1) is only allowed with the automatic scaling value.

つまりフロントエンドサービスを作るのであればautomatic_scaling一択。

インスタンスを無料内に制限するだけならこれでいいはず。

その他スケーリングキーはこちら

ハンドラ

ハンドラ要素の詳細はこちらを参照しますが基本的にURLハンドリングはアプリ側でやるのでupload以外は省略してもいい気がします。

静的ファイルのサーブを設定することでインスタンス時間の節約やアプリ負荷を減らすことが出来そう。

この設定でhtmlフォルダ内の静的HTMLファイルにアクセスしてもインスタンスが出来ませんでした。

files設定ではGAEにアップロードするファイルを正規表現で書いています。

処理内で画像やHTML、CSS、JSのような静的ファイルを利用する、あるいはサーブする場合には必要な分をupload設定しないといけない。

 

SSLリダイレクトも設定できます。

neverを指定するとHTTPへのリダイレクト設定もできる。

 

エラーハンドル(error_handlers)の方はPaaS由来の割り当て上限エラーとタイムアウトに対応した静的ファイルを返せます。

何を返すべきなのかはわからないけど「時間をおいて下さい」とかかな。

サービスとインスタンス

概要にあるようにインスタンスはツリーの最下位にある。

Project→App Engine→サービス→バージョン→インスタンス のツリー構造。

 

serviceでサービス名を指定しない場合にはdefaultサービスとして作られます。

そして同じサービスをデプロイするたびにバージョンが増えます。

そのうち管理できなくなると思うのでgcloud app deploy -v v1のようにバージョンを指定してデプロイするのがよさそうかな。

新しいバージョンをデプロイすると自動でトラフィック割り当てされるので古いバージョンのインスタンスはそのうちなくなるはずですが、manual_scalingの場合は残りそうなので停止したり削除する必要がありそうです。

 


コメントを残す

メールアドレスが公開されることはありません。