3大クラウド(AWS,Azure,GCP)をプロダクションで実運用した感想(その1 シェア、将来性)
はじめに
今まで私がエンジニアとして10年以上仕事をしてきた過程で、利用されているクラウドインフラ基盤を転職要件に含めていなかったことも相まって、AWS(Amazon Web Services),Azure(Microsoft Azure),GCP(Google Cloud Platform)という3大クラウドのクラウド基盤で、サービスの立ち上げから運用まで関与することができました。
各々のクラウド基盤に関して掘り下げられていることはあっても、エンジニア/SREの視点から俯瞰して述べられていることはあんまり無いので私が実務レベルで各々のサービスを使っていて感じたことを共有しておきます。
最初に結論を述べておくと、各々得意、不得意があるので、作成したいサービスの内容や規模感、エンジニア組織によって最も適しているクラウド基盤は異なってくるという印象です。
また、若手のエンジニアや学生向けにどれを勉強しておくべきかという視点でいうと、働きたい企業や今後描いていきたいキャリアによって異なるので、自身が進みたい企業の分類やクラウド基盤の将来性に応じてどの基盤を勉強するかは変えたほうがいいと思いました。
使ってみた結果、「よくできているなー」と思うことはあっても「〇〇しか勝たん」みたいなことにはなりませんでした。
当初想定よりも長い記事になりそうだったので記事を分割し、今回は「3大クラウド(AWS,Azure,GCP)のシェア」と「3大クラウドの各々の将来性」に関して感想を述べていきます。
3大クラウド(AWS,Azure,GCP)のシェア
2022年の夏時点での米調査会社Canalys社のレポートだとAWS 31%, Azure 24%, GCP 8%となっています。
2022年の春時点のSynergy Research 社の日本に限定した調査だと、AWS,Azure,Fujitsu,NTT,GCPの順とのことなので、AWS > Azure >>> GCPという順です。
この調査結果は公共機関,大企業,SIer,メガベンチャー,中小ベンチャーといった企業分類を考慮せずに作成されています。
企業分類ごとの数値感が乗っている資料はちょっと見つかりませんでした。
この調査結果は働いている/働きたい企業分類によって、エンジニアが実務で関わるクラウドインフラのシェアとは大きく異なる印象です。
私が実務で関わった会社様や、交流会、エンジニア採用で他社様の話を聞いている感じだと以下のシェアになるかなーと思ってます。
※ 完全に感覚値なので、このへんに関して明確な調査データをご存知の方は教えていただけると助かります。
- 公的機関,大企業,SIer -> AWS >= Azure >>> GCP
- メガベンチャー -> AWS > GCP >>> Azure
- 中小ベンチャー -> AWS >> GCP > Azure
これはクラウドインフラの利用開始時期と過去15年の3大クラウドのシェアの変動やサービスの提供時期が大きく影響していると思います。
基本的にクラウドシフトが早かった企業ほどAWSの利用率が高く、大規模なマイクロサービスを構成するためにK8s(Kubernetes)の利用時期が早かった企業ほどGCPの利用率が高い印象ですね。
というか当時はそれしか選択肢がなかったので、そうならざるを得なかったんだと思います。
2010年以前にオンプレサーバーをクラウド基盤に移動する「リフト&シフト」をやろうとすると、基本的にAWSのEC2(EC2-Classic)を利用する選択肢しかありませんでした。
そして、K8sはもともとGoogleが自社サービスのために作ったものをオープンソース化したもので、発表当時はGCPでしかマネージドサービス(GKE)として利用できませんでした。
K8sはオープンソースなのでAWS上で巨大なEC2インスタンスを使ったセルフマネージドなK8sを利用するみたいなことはできましたが、運用が超絶大変になるので、SREがたくさんいないと無理ゲーでした…。
今ではAWSだとEKS(Elastic Kubernetes Service), Azure だとACA(Azure Container Apps),AKS(Azure Kubernetes Service)を用いてマネージドサービスとしてKubernetesを運用できるようになったので、GKEの絶対的な優位性はなくなったかと思います。
※ とはいえ、細かい機能面でGKEはまだまだ優位性はあると思います。
蓄積されたナレッジの問題もあるうえにオンプレサーバーをクラウドインフラに移動するのよりもクラウドインフラを別のクラウドインフラに移すことのほうが難易度が高いので、初期のインフラ選定をそのまま今も引き継いでいるかたちです。
一度選択したクラウドインフラを別のクラウドインフラに移すのはビジネス的にもエンジニア的にも非常にインパクトが大きい意思決定なので、これは当然の帰結だとは思います。
中小ベンチャーでAWS,GCPが多いのはCTOやテックリードといったアーキテクチャ選定に決定権を持つ人が基本的にメガベンチャーの経験者から流れてくることが多いので、メガベンチャーに近いシェア状態になっているイメージです。
3大クラウドの各々の将来性
2022年の春時点のSynergy Research 社のリサーチによると3大クラウドの過去数年のシェアの傾向として、以下のことが読み取れます。
- AWSはマーケットリーダーでありつつシェアは数年横ばい
- Azureは大幅にシェアが上昇中
- GCPは緩やかにシェアが上昇中
構造として、AWSをAzureが猛追するかたちとなっています。
この傾向はグローバルだけではなく国内でも同様です。
特に2022年はあまりにAzureの利用が急増しすぎて、半導体不足と相まってAzure内部のサーバーの増設が間に合わず、日本を含む多くのリージョンで一時期新規アカウントでのリソース作成制限がかかったりしました。
私もAzureを利用する前はなぜ急速にシェアを伸ばしているのかが分からず、「大企業/公的機関での利用が多いことからOfficeへの親和性とか大企業向けの機能が多いのか?」ぐらいにしか思ってませんでしたが、プロダクションで使ってみてシェアの増加の理由がわかりました。
他のクラウドインフラには無い固有の優位性がいくつかあるのですが、そのあたりは次回以降で述べます。
AWSはグローバルで見るとシェアは横ばいではあるものの、日本国内ではAWSで世界 No.1パートナーとなったクラスメソッドさんをはじめ世界トップレベルのパートナー企業が複数社あるので、その影響もあって日本国内においては今後もシェアが上昇していく可能性はあります。
長年シェアNo.1なので、トラブルがあったときにGoogle検索でのトラブルシューティングもしやすいです。
余談ですが、AWSのアーキテクトの方と話をしててもAWSの公式ドキュメントではなくクラスメソッドさんの記事を紹介されるほうが多いんじゃないかってぐらいに信頼されてます。
(なぜAWSの公式ドキュメントではないのかはお察しください)。
GCPは緩やかにシェアは伸びているものの、Azureの急激なシェアの伸び方と比べると一段将来性は落ちる印象です。
このことから将来性という観点でいえば、基本的にはAzure >= AWS > GCPという順番になるかなと思います。
※ 学生や若手エンジニアが3年以内にメガベンチャーで働くことをゴールにおくなら、学習の優先度としてはAWS > GCP >>> Azureとなると思います。
今のAzureのシェアの伸び率が続けば、数年以内にAWSとAzureのシェア逆転現象が起きるので、長年AWSやCGPで仕事をされているミドル層以上のインフラエンジニア/SREの方は、将来の食い扶持を確保するためAzureの学習をおすすめします。
最後に
総論に当たる部分が長くなってしまったので、冒頭の結論を導き出す理由の記載は次回以降とさせてください。
次回以降、冒頭の結論を導き出す理由となったプロダクション運用で感じた3大クラウドインフラの得意領域、不得意領域などをいくつかの観点から述べていきます。