![見出し画像](https://assets.st-note.com/production/uploads/images/39630203/rectangle_large_type_2_51c3e61826b4fe6f21903afc0787c239.jpg?width=1200)
Google App Engine。
続きです。
GAEの種類
一重にGAEといってもスタンダード環境、フレキシブル環境(GAE Flex)といった2つの環境が存在します。通常GAEというと前者をさします。また、スタンダード環境には第1世代のGAE(GAE1ST)、GAE Flex、GAE(GAE2nd)が存在します。つまり3種類。これらができたのは年号順に
GAE 1st:2008-
GAE Flex:2016-
GAE 2nd:2018-
といった形で出来上がりました。
GAEの特徴
GAEはWebアプリケーションにフォーカスを当てたPaaSタイプのクラウドサービスです。特徴としては
・オートスケーリングと負荷分散
・アプリ開発に専念できる
・フルマネージドサービスである
点です。大きな特徴とすると、まずあがるのはオートスケール機能を備えていることです。アプリに負荷がかかるとそれに応じて自動的にスケーリングし、負荷分散が行われます。アプリのインフラはすべてGoogleが管理します。ハードウェアの障害やデータセンタのネットワーク障害などもすべてプラットフォーム側で処理され、障害があってもGoogleがすべて解決してくれます。(これだけで使う価値は大いにあり。)
デフォルトのデータベースであるCloud DataStoreを使うことで、データベース管理者も必要ありません。そのためインフラ構築・運用コストを削減でき開発者は自身のアプリ開発に専念できます。インフラ側の設備を気にする必要はありません。リクエスト量やデータベース、HDDのサイズなどを気にする必要もありません。膨大なリクエストがきてもプラットフォーム側ですべて管理してくれます。また、開発環境やデプロイ環境の使い分けも可能でローカル環境でテストサーバを立ち上げ、デバッグなども可能です。デバッグもコマンド一つで可能となります。
第一世代のGAE登場
2008年、GCPの最初のサービスとして第一世代GAEが発表されました。GAE1stはランタイム環境がGoogleのプラットフォーム側で提供されているWebアプリ用のサービスです。Java,Python,Go,PHPなどのプログラミング言語を使ってWebアプリを開発します。しかし、限られたプログラミング言語しかなくバージョンも固定されています。OSも選ぶことはできません。ミドルウェアも入れることもできません。リクエストを30秒以内(現在は1分以内)に返さなければならないなどの制限があります。1stの特徴としては
・基本料金無料
・スケジューリングタスク
・強力なキャッシュ機能
が挙げられます。
特に優れた点はスケーリング機能です。リクエストに合わせて、インスタンスが増減するのがGAEの特徴ですが、1stではリクエストが全くないときはインスタンスの数を0に抑えてくれます。リクエストの少ないサービスであれば無料で使い続けることも可能となります。また、急なアクセルスパイクにも対応でき、予期しない突然のリクエストの増加でも高速にスケールアウトできます。ほかにも、リクエストを実行するための非同期タスクキューや高速なインメモリキャッシュ機能などが、1stの弱点を補っています。
最後に
GAEのバックグラウンド・特徴偏となりました、いかがでしたか。
3種類あることもこの記事を書きながら調べながら知りました。実際のサービスを保守運用している人が読んだらなんて革新的な機能なんだ、というものがたくさんありますよね。ほんまにぶっ壊れの機能を有していると思います。次回は今回取り上げきれなかったFlex,2ndについて触れていきながらGAEについてより深堀していこうと思います。ではまた。
N
私の常日頃の生活をベースに、皆さんの役に立てたり、探しているものを紹介できたらと思っています。今後もよろしくお願いします!