App Engine
App Engineは アプリケーションを実行するための管理プラットフォームを提供するPassコンピューティングサービスです。
App Engineを使う場合、アプリケーションを中心に考える必要があります。コードの実行に必要なリソースはGoogleが管理します。
1、App Engineには、スタンダード環境とフレキシブル環境が提供れる。スタンダード環境は提供された言語ランタイムを利用しますが、フレキシブル寛容はより柔軟なコンテナ実行フラットフォームです。
2、App Engineフレキシブル環境はフルマネージドPaasを提供します。アプリケーションとサービスを小さなコンテナセットにパッケージ化できる場合に適したオプションです。これkらのコンテナは負荷に応じて自動スケーリングできます。
3、App Engineのユースケース
・基盤となるOSやストレージの構成を制御する必要がない場合
・App Engine スタンダード環境は、サポートされている言語のいずれかで記述されたアプリケーション向けに設計されています。
・App Engineフレキシブル環境では、サービスに分解でき、各サービスをコンテナ化でkるアプリケーションに適している。
・App Engine スタンダードでが、負荷がない場合は実行中のインスタンスがなくなるまでスケールダウンしますが、フレキシブル環境の場合はそうではありません。サービスは常に1個以上のコンテナが実行されてます、システム負荷がかかっていなくても、
コンテナが実行されている間は課金される。
Kubernetesは、仮想マシンとベアメタルマシンのクラスタを管理する木庭でGoogleが作成したオープンソース ツールです。次のことができます。
・コンテナのためにKubernetesオーケストレーション ソフトウェアを実行するVMのクラスタを作成する。
・コンテナ化されたアプリケーションをクラスタにデプロイする。
・クラスタを管理する。
・自動スケーリングなどのポリシーを指定する。
・クラスタの状態を監視する。
Kubernetes EngineはGCPのマネージドKubernetesサービスです。Kubernetes Engineが次の機能を提供します。
・Kubernetesクラスタ内にデプロイされたCompute Engine VM全体の負荷分散
・クラスタ内にあるノード(VM)の自動スケーリング
・クラスタソフトウェアの必要に応じた自動スケーリング
・ノードのモニタリングと正常性の修復
・ロギング
Kubernetesクラスタには、クラスタマスターノードと複数のワーカーノードが含まれており、
それぞれマスターとノードと呼ばれます。
マスタノードはクラスタを管理します。Kubernetes APIサーバー、リソースコントローラー、スケジューラんどのクラスタ
サービスはマスターで実行されます。
Kubernetesクラスタが作成されると、一定数のノードも作成されあ、これらがCompute Engine のVMとなります。
KubernetesはPodと呼ばれる単位でコンテナをデプロイします。一つの同じPODに入っているコンテナは、ストレージと
ネットワークリソース、IPアドレスとポートすベースを共有します。PODとはサービスを提供するための論理的なユニットです。
コンテナはこの単位でデプロイ及びスケーリングされます。
Kubernetesの高可用性
・リソース不足しているPODをシャットダウンすること。
・複数の同一PODを実行できること、同一PODはReplicaと呼ばれます。