App Engine(Google Cloud)

GCP
この記事は約2分で読めます。
スポンサーリンク

App EngineはAWSのLambdaのようにアプリケーションを実行する環境を提供してくれます。
LambdaはAWS側で管理されているので考慮すべき部分はありませんが、App Engineは導入に際して検討すべき部分がいくつかあります。

実行環境選択

App Engineの実行環境としては「スタンダード環境」と「フレキシブル環境」の2種類があります。
スタンダード環境はLambdaに近くGoogle側でほぼ全て管理してくれる環境です。
フレキシブル環境はDockerコンテナ内でアプリが実行されます。

フレキシブル環境の方が自由度が高いですが、サーバーレスというよりは「ある程度GoogleがDockerを管理してくる」という状況に近いです。
また、セキュリティ更新の為に毎週再起動が必要だったりするのでフレキシブル環境を選択するのであれば、普通にComputeEngineで構築したほうが良いかもしれません。

料金

スタンダード環境では無料割り当てがあるのである程度までは無料で使用することができます。フレキシブル環境には無料割り当て分はありません。
また、各リソース(ネットワーク帯域など)に上限値が設定されています。
サーバーの管理は不要でも使用するリソース量を考慮する必要があります。

スタンダード環境

スタンダード環境では、負荷状況によってインスタンスの数が増減します。(スケーリングと呼びます)
インスタンスの管理方法
スケーリングの方式は「自動」「手動」「基本」の3種類があり、インスタンスタイプによって使用できる方式が決まっています。
F系は「自動」、B系は「手動、基本」となります。

「自動」はリクエスト数などの閾値を設定し、スケーリングする資料として使用します。
「基本」はリクエストの受信、処理をトリガーとしてスケーリングします。
「手動」はインスタンス数を指定します。

Webサービスなどの場合は負荷状況による増減させるのでF系、バッチ処理などの内部処理は時間や処理内容で制御するので「基本」「手動」のスケーリングを使用するB系という形で使い分けることが多いと思います。

フレキシブル環境

フレキシブル環境はDocker上で動作する為、Compute Engineのように使用することが可能です。

アプリ設計

App Engineの制御ファイルは「app.yaml」ファイルになります。
デプロイする場合なども、app.yamlを引数に指定しデプロイを行います。

cron.yamlファイルを使用することにより、App Engine上でもcronを使用した定期的な処理を実行することができます。

コメント

タイトルとURLをコピーしました