AWS vs Azure vs GCP
2017年2月12日最近、このサイトを運用しているサーバーを Google Cloud Platform の Google Compute Engine に移転しました。その際に調べたことをメモしておきます。
まず、サーバーで価格を重視するのであれば、VPS がいいと思います。メモリ 1G のものが1000円程度、8G のものが 数千円程度であります。クラウドの場合 CPU だけであれば同じぐらいの価格ですが、ストレージやデータ転送量が別途必要になるので価格は1.3倍とかになってしまいます。ただし、VPS には以下のような欠点があるので、安定した運用向きです、
- 初期費用が必要だったり月単位の料金のところが多く、柔軟にサーバーの能力や台数を変更することができない。OSやアプリケーションの大規模なバージョンアップの場合、運用を止めないためには平行運用をする時間が必要であるが、クラウドのようにその時間だけの費用ではなく、初期費用等の料金が発生する。
- クラウドの場合は、バックアップが簡単に取れたり、Amazon S3 のようなクラウドストレージが利用できるが、VPS では、そのようなサービスがない。
クラウドで IaaS を選択する場合には以下の記事が参考になると思います。
- ZDNet Japan の記事 AWSとMSがIaaS市場で圧倒--ガートナーの「マジック・クアドラント」
- Publickeyの記事 ガートナーがIaaSクラウド市場のマジッククアドラント2016年版を発表。Amazonクラウドの圧倒的リーダーは変わらず
- 元資料 Gartner: Magic Quadrant for Cloud Infrastructure as a Service, Worldwide
クラウドの Iaas 分野では、リーダーは AWS(Amazon Web Servise)です。上に紹介した記事で「AWSは多様な顧客ベースを有し、ほとんどのユースケースを網羅している。」とあるように、サービスの豊富さでは他を圧倒しています。
価格的には、AWS、Azure、Google Cloud Platform(GCP) も割引を除いては大きな差はありません。AWS はサービスが豊富です。AWS の典型的なサービスとしては、Amazon Aurora があり、OSS の RDB である MySQL 及び PostgreSQL をクラウド向けに改良してフルマネージドのサービスとして提供しています。AWS は、ビジネスに必要なツールをクラウドに適した形で提供するというのが得意です。
Azure は、企業のニーズを満たすために重要な機能、例えば、セキュリティ、可用性、ユーザー管理などの機能が充実しています。例えば、バックアップであれば下の図のように、毎日定時にバックアップするとかファイルの回復という機能がついています。自分が以前にExcelで事務をして Windows 2013 Server をファイルサーバーにしていた時にこういうことをしていました。
また、料金サービスの面でも以下のように企業向けには便利なものがあります。
- エンタープライズ契約をして前払いをすると大幅な割引がある。
- 他のクラウドがクレジットカード払いになるのに対して、エンタープライズ契約をすると請求書払いが可能。また、リセラーからライセンスキーを購入するという方法もあるのでクレジット払いをしなくてもすむ。
- 料金が円建てなので為替による変動がない。
このようなことから、Azure の売上高は急増しています。しかし、自分のような個人や零細企業の場合は、割引が全く適用されないこと、AWS であればスポットインスタンス、GCP であればプリエンプティブインスタンスに対応するものがないことから、コスト的に相当高くなるので AWS か GCP を選択した方がいいと思います。
GCP(Google Compute Platform)は、記事に「この業界のリーダーに分類されている企業が有している機能に相当するものすべては備えていないため、大企業や中規模企業を強く魅了することに苦労している」とありますが、自分もそのとおりだと思います。そういうことで、利用者数では AWS や Azure から一歩遅れていることも事実です。
しかし、開発者の立場からすると、快適に使えるクラウドです。昨年の11月に東京リージョンが開設されたことだし、$300ドルで60日間使用できるクレジットが貰えるということなので、実際に使ってみました。GCE は、起動が速く、マシンを1分もかからずに起動できます。また、起動しているマシンを止めることなくスナップショットを1分ぐらいで取れます。そのため、運用しているマシンを増やすのも簡単だし、テスト環境も直ぐに作れます。
また、ダッシュボードは下の図のようになっており、管理画面はかなり使いやすいし、AWS と違って料金を払わなくても 1分間隔の CPU の稼働率が表示されるのが嬉しいところです。管理機能は、Stackdriver が使っており、かなり高機能なことができるようです。
価格的には、AWS とほぼ同じですが、割引の条件が AWS の EC2 場合は1年又は3年縛りになっていて事前に購入が必要等料金設定が複雑です。それに対して、GCE の場合は、1ヶ月単位で長時間使用していれば勝手に割引してくれるのでかなり楽です。
自分なりのクラウドの選択についての結論をいうと以下のようになります。
- ビジネスのために使いたいのであれば、AWS がベストです。Amazon はECサイトから発展した会社だけあってユーザーニーズを最もよくつかんでいる会社です。だから、今後もサービスの豊富さではリーダーシップを取っていくと思います。
- エンタープライズであれば、Azure がいいと思います。SQL Server、 Windows Server、Microsoft Office のようにエンタープライズ向けの製品を扱ってきた経験と実績があり、エンタープライズが必要な機能が充実しています。
- Web、スマートフォンのバックエンド、AI、データサイエンス等の分野で使うのであれば GCP がベストです。GCP は、Google が自社の環境を一般公開しているという側面が強く、基本性能は高いので、このような Google が得意とする分野では優れたものがあります。
自分の場合は、Google Adsense、Analytics、Search Console 等の Google のサービスを以前から使っており、また、以前のブログ「ボットネットの脅威を考えたら Google Cloud を使うのがベストだ」に書いているように、DDoS攻撃に強いものにしていきたいので GCP を選択しました。