Google Cloud Platform を1年ほど使ってみて、これは!と思う便利な機能や、他のクラウドサービスにはない Google Cloud Platform のメリットをまとめてみました。
プロジェクト単位での管理
いきなりちょっと地味なところですが Google Cloud Platform には「プロジェクト」という仕組みがあり、Google Cloud Platform の各種サービスを利用するには、このプロジェクトを作成(または選択)するところからはじまります。
その名の通りプロジェクト案件や会社の部署ごとに Google Cloud Platform のプロジェクトを分けておけば、そのプロジェクトで使っているサービスやメンバーのアカウントなどを、一目で把握することができます。また、プロジェクトごとに請求も管理できるので、毎月の請求額をプロジェクトごとに割り振る必要もありません。
Google Cloud Resource Manager より引用
また、次の適切なユーザーアカウント管理にも関係しますが、あるプロジェクトで100台のサーバー(Compute Engine)を使っているとして、新たに運用ユーザーを追加する場合、サーバー100台すべてに新たにユーザーを追加する必要があります。この負担を回避するために共有アカウントが使われることが多いのですが、セキュリティ的には望ましくありません。
Google Cloud Platform の場合はプロジェクトにユーザーを登録するだけで、100台すべてのサーバーに自動でユーザーを作成してSSH公開鍵まで登録してくれます。これなら共有アカウントを使う必要もないでしょう。
適切なユーザーアカウントの管理
公開鍵認証方式では、「秘密鍵」を厳重に管理し「公開鍵」を配布するのが基本ですが、なぜかクラウドサービスでは「秘密鍵」を配布するのが一般的になっています。
その秘密鍵を持ったユーザー(例えばAWSではec2-user)が、別の新しいユーザーを作成して管理していればよいのですが、配布された「秘密鍵」を共有して運用されているのを時々見かけます。こうなるともはや公開鍵認証の意味をなしていません(^^;)
Google Cloud Platform では Compute Engine のサーバーにユーザーを追加する場合、ユーザーが自分のパソコンでSSH認証鍵のペアを作成し、管理者がコンソールからユーザーの「公開鍵」を登録するといった、公開鍵認証方式ではごく当たり前の流れになっています。
このように公開鍵と秘密鍵を正しく取り扱うことで共有アカウントの利用を防ぎ、適切なユーザー管理を行うことができるのでセキュリティの向上にもつながります。
速い・安い・高性能!
Google Cloud Platform のメリットとしてよく取り上げられるのが、Compute Engine でインスタンス(サーバーのことです)を作成してからサーバーが起動するまでの速さです。
他のクラウドサービスではサーバーが起動するまで数分待つのが普通ですが Compute Engine ではほとんどの場合、30秒もかからずにサーバーが起動します。公式ドキュメントにも1分以内で起動すると書かれています。
Compute Engine インスタンスは、40〜50 秒以内で起動します。これは、他社クラウドの約 5 倍の速度です。つまり、Google のアプリケーションと同様に、受信トラフィックに応じてアプリケーションの処理能力を即座に増やすことができます。
https://cloud.google.com/why-google/future-proof/?hl=ja より引用
また、AWSとの比較になりますが、同じくらいのスペックのサーバーで比べた場合 Google Compute Engine の方が料金が安く高性能です。
ベンチマーク | AWS EC2 | Google Compute Engine |
---|---|---|
CPU性能 - System Benchmarks Index Score | 523.8 | 918.9 |
Read ディスク性能(MB/秒) | 80.97 | 79.23 |
Write ディスク性能(MB/秒) | 76.9 | 37.1 |
MySQLトランザクション毎秒(per sec) | 274.59 | 311.86 |
月額費用(概算) | $24.56 | $18.66 |
詳細は「AWS EC2 と GCE(Google Compute Engine)を徹底的にベンチマークしてみた」の記事にまとめました。
Cloud Shell が便利
Google Cloud Shell は、ブラウザからLinuxコマンドラインを使うことができるサービスです。仕組みとしては、Cloud Shell を開くと Compute Engine の仮装マシン(debianベースのLinux)が起動して、その仮装マシンをブラウザから操作できるといったものです。(この仮装マシンに利用料金は発生しません)
この Cloud Shell から Compute Engine のサーバーにSSHログインしたり、App Engine にアプリをデプロイすることができます。
また、Cloud Shell には、はじめから Google Cloud SDK や gcloud コマンドがインストールされているので、なにも準備をしなくてもWEBブラウザさえあれば Google Cloud Platform の各種リソースを管理することができます。
ライブマイグレーションで定期メンテも怖くない
Google Compute Engine にはライブマイグレーションという仕組みがあり、ホストマシンなどのメンテナンスのために、仮想マシンの停止や再起動ができるだけ発生しないように運用されています。
ライブマイグレーションを使い、Google Compute Engine にダウンタイムのないサービス インフラストラクチャーを | Google Cloud Platform Japan Blog より引用
ライブマイグレーションは、利用者が直接さわることはなく Google がメンテナンスを行う時に使っているようです。上の記事に書いてありますが、利用者は仮想マシンがライブマイグレーションがされたことすら気がつくことはまずありません。
少し意外だったのは、クラウドサービスでこのライブマイグレーションを明言して積極的に使っているのは Google Cloud Platform だけのようです。他のクラウドサービスでは、ホストマシンのメンテナンスのため仮想マシンの停止&起動(こうすることでホストマシンを移動しています)が必要になることがありますが、本番サービスが稼働しているサーバーではやりたくない作業です。しかし Google Compute Engine ならその必要はありません。
おわりに
Google Cloud Platform が、他のクラウドサービスと大きく違うと感じるのは、WEBアプリケーションの開発や運用そしてセキュリティの確保を、いかに効率的に行えるかが一番に考えて設計されているところです。
これまでに多くのWEBサービスを開発運用してきた Google の知識や経験が詰まっているところが Google Cloud Platform を使う一番のメリットなのかもしれません。
コメント