AWSが少しわかるエンジニアがGoogle Cloudについて調べてみた

Google Cloudについて調べた。一部AWSと比較している。

Google Cloudとは

・2008年提供開始。最初のサービスはGoogle App EngineというWebアプリケーション実行のPaaS環境。
・長年Googleで運用してきたコンテナ技術や、データ分析や機械学習に強みがあるパブリッククラウドサービス。
・地球最大規模のGoogleネットワーク網(インターネットトラフィックの40%を運ぶとも言われている)を利用してサービス提供できる。Google検索、YouTube、Gmailなどを支えている。

Google Cloudの設計観点

・The Datacenter as a Computer というデータセンターをあたかも1つのコンピューターとして扱うような設計思想。
・エニーキャストと呼ばれる技術を活用し、アクセス元のユーザの近隣リージョンに通信をルーティングできる。
…そっちの方がエンジニアは便利だよね」 …Google エンジニアのそんな声が聞こえてくる… AWSのサービスからは「顧客の求める要求を網羅しようとする」というAmazonの顧客第一主義の思想を強く感じます。

サービス観点

仮想マシン

・GCE(Google Cloud)ではライブマイグレーションが可能。EC2(AWS)では停止、起動することでホストを移動する。
・インスタンスの名前はプロジェクト内で一意である必要がある。
・特定インスタンスタイプについて継続利用割引(Sustained use discounts)と確約利用割引(Committed use discounts)が存在する。継続利用割引では1ヶ月のうち0-25%利用分は定価、次の25%-50%利用分は定価の86%の価格、50-…といった感じで割引率が増えていく。
・カスタムマシンタイプを利用することでvCPUとメモリを好きなように設定可能。
・マシンイメージというマシンタイプやファイアウォールの設定などもコピーするバックアップ方法がある。

IAM

・そもそものIAMの考え方が異なる。AWSはAWSアカウント内にIAMユーザなどを作成して権限を付与する。Google CloudはGoogleアカウントなどプロジェクト外も含めたユーザなどに対して権限を付与する。
・各リソースに権限を付与する機能名についてAWSではIAMロール。Google Cloudではサービスアカウントと呼ぶ。
・APIキーの管理場所について、AWSはIAM。Google Cloudは[APIとサービス]>[認証情報]。

VPC

・Google Cloudでは各リージョンにサブネットを作成し、ルーターで複数サブネットを接続してグローバルなネットワークを作成する設計となっている。AWSではVPCはリージョンに依存する。
・Google Cloudではサブネット毎にファイアウォールは設定できず、デフォルトでパブリックサブネットとなっている。そのためAWSと異なって1つのVPC内にパブリックサブネットとプライベートサブネットが同居するという構成はできない。

ファイアウォール

・ファイアウォールはステートフルであり、デフォルトで外部IPへの25番ポートアクセスが禁止されている。
・ファイアウォールについてルールに合致しない通信について、暗黙的に上りは拒否され、下りは許可される。
・ファイアウォールポリシーは組織もしくはその配下のフォルダに適用するファイヤーウォールルール。ファイヤーウォールと異なって有料でVM1台あたり1ドル必要となる。

ロードバランサー

・Cloud Load Balancing(Google Cloud)はプレウォーミング不要で、外部分散負荷はクライアントの通信をCloud Load Balancingで受け付けて一番近いリージョンに分散させる。

ストレージ

・gsutilコマンドというCloud Storage用のツールがある。(それ以外のリソースはgcloudコマンドを利用することがほとんど)
・Cloud Storageのバケット名にはgoogleやgoogleに類似した文字列は含められない。
・バケット作成時に単一リージョン、デュアルリージョン、マルチリージョンを選択可能。容易にリージョンレベルの災害の対処ができる。
・マルチリージョンはどのリージョンに保管されるかは把握することができない。160km以上離れた少なくとも2箇所に保存される。
・Google Cloudのアーカイブ系のストレージクラスColdline Storage、Archive Storageなどについて、必要なデータの取得に数時間あるいは数日かかることはない。AWSは待ち時間が発生する。

データ分析

・BIツールについてユーザごとにライセンス料金が発生することが多いが、Googleデータポータルは無料。(ライセンス料やリソース料がかからない)

SQL Server

・Cloud SQLにパブリック接続するためにCloud SQL Auth Proxyというネットワークに関係なくセキュアに接続できる機能がある。
・Cloud SQLなど一部サービスを構築するとサービスプロデューサーのネットワークという専用ネットワークが作成され、ユーザのVPCとVPCピアリングで接続される。
・Google CloudのCloud SpannerとはRDSの強整合性とNoSQLのスケーリングの特徴を組み合わせたDB、可用性99.999%。アクセス数に合わせて柔軟にスケーリングし、自動でシャーディングする。AWSのAurora V2に近い。
・Cloud Spannerについてデータをシーケンシャルに登録すると、データが一定のノードに偏るためランダムなUUIDを主キーとすることが推奨されている。

コスト

・リソース割り当て機能を利用することで、リソース利用量が指定限度を超えることを防ぐことが可能。つまり予期しない課金を防ぐことができる。

参考

初回は1ヶ月無料。Google Cloudのコンソールを操作できとても便利だった。
https://www.cloudskillsboost.google/

Google Cloudの各サービスについて網羅的に抑えられてよかった。
https://gihyo.jp/book/2021/978-4-297-12301-7

AWSとの比較時にとても役に立った。
https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison?hl=ja
https://qiita.com/hayao_k/items/906ac1fba9e239e08ae8

その他細かい仕様など記載されたサイト

https://mihono-bourbon.com/gcp-network-1/