Google Cloud Platformの仮想マシンサービス「Compute Engine 」の特徴やインスタンスの作成方法について紹介

はじめに

インターネットの普及や大量なデータの取り扱いが必要になったことを背景として進められたクラウドサービスの開発は、2006年のAmazonによるAmazon EC2/S3のリリースを契機として急速に発展しました。その後GoogleやMicrosoftといった企業もクラウドサービスの提供に踏み切り、AmazonのAWS、GoogleのGoogle Cloud Platform、MicrosoftのAzureは2023年の今もクラウド市場のシェア率を多く占めています。

企業においてはスタートアップ、ベンチャー企業に限らず大手企業でもオンプレミスからクラウドへ移行したり、両方を組み合わせたマルチクラウド環境で運用したりという傾向が見られ、公的機関のシステムにおいても「クラウドファースト」という考えの下、クラウドへの移行や新システムの開発の際は優先的にクラウドを利用するといった動きが見られます

今回は、そんなクラウド化の動向がさらに広がりを見せると予想しているGoogleの提供するGoogle Cloud Platform(GCP)に含まれる仮想マシン(VM)サービス「Compute Engine」について詳しく紹介します。なお、Google Cloud Platform(GCP)という名称は過去のものであり、Googleでは2016年にGoogle Apps for Work(旧・G Suite)、Google Cloud Platform、Google Maps、Chromebook、Androidを合わせて「Google Cloud」に名称変更することが発表されています。しかしGoogle Cloud Platform(GCP)はいまだに広く馴染みのある名称であるため、この記事では旧名称の方を利用します。

これから自社のオンプレミス環境をクラウドへ移行することを検討している方、仮想マシンサービスを利用するに当たって比較検討しているという方、Google Cloudのサービスについて詳しく知りたいという方はぜひご覧ください。

クラウドサービスの共通する特徴

クラウド化が進んでいるのにはもちろん理由があります。クラウドサービスの共通する大きなメリットとしてコストの削減という点が挙げられます。オンプレミス環境でシステム開発・運用を行う場合はサーバーやサーバーラック、ネットワーク機器等を購入やレンタルしたうえで、それらを設置する場所の確保も必要となります。またサーバーやネットワークのセットアップ、設置作業、稼働後の保守作業にそれぞれエンジニアが必要となります。対するクラウドでは機器の購入やレンタル、場所の確保は不要で、実装前の構築作業がほぼ不要となります。

以上のことだけでもコスト削減ができることは一目瞭然ですが、さらに料金形態についてもほとんどのサービスが従量課金制であり、必要な分を必要な時だけ利用することでのコスト削減も実現できるという特徴もあります。サービスによってはさらに無駄な稼働時間と課金を減らす課金システムを採用しているものもあります。

世界的企業の安定したバックボーンネットワークや技術を利用できるという点も一つのメリットです。クラウドのシェア率のほとんどを占めるAmazon、Google、Microsoftのサービスを利用することでその企業のネットワークを利用してシステムを運用でき、蓄積された独自技術を自社システムに生かすことが可能となります。

クラウドサービスの形態は大きくSaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure as a Service)の3つに分けられます。他にも細かく分けるとFaaS、BaaS、CaaSといったものもありますが、代表的なものとして最初の3つを抑えておいてもらえれば問題ないでしょう。

SaaSはすでに完成されたアプリケーションをユーザーが利用する形態です。ユーザーは多少の設定変更が行えるものの、それも全てアプリケーションの仕様の下で行うこととなります。Google CloudではGmail、Googleドライブ、Google Meet等のサービスが該当します。

PaaSはアプリケーションを稼働させるプラットフォームが提供された状態であり、開発環境としての利用が可能です。バックエンドの開発環境やOSが提供されているため環境構築する必要がなく、開発に専念できます。Google CloudではGoogle App Engine(GAE)というサービスが該当します。

そして今回取り上げる「Google Compute Engine(GCE)」が該当するのがIaaSです。IaaSはCPU、メモリといったリソースやストレージ、ネットワークといったインフラを全てカスタマイズ可能であり、ユーザーの管理範囲はPaaSやIaaSに比べて広いです。システム開発・運用に関する多くの知識も必要となりますが、独自のサービスをクラウドで開発したい場合は適しています。まさにオンプレミスのシステム環境をそっくりそのままクラウド上に移したものがIaaSであると言えます。

拡張性に優れているという点もクラウドサービスの大きな魅力です。例えばオンプレミスでメモリを拡張しようとした場合は、一旦システムを停止し物理的にメモリを差し込む等の作業が必要となります。メンテナンス期間を設けてその間にその他作業と合わせて実施することが予想されるため、その分人件費がかかり、ECサイト等であればメンテナンスの時間帯に商機を逃す可能性もあります。その点クラウドの場合はサービスの停止をすることなく管理画面上からボタン一つでメモリやVMの追加、または削除が可能なので気に掛ける部分が少なくなります。

セキュリティ性に優れているという点もクラウドのメリットとして挙げておきます。クラウドサービスを利用するということはほとんどの場合、Google等の他社サービスに個人情報等の重要データを配置することとなります。そのため、かつてはクラウドでの運用への懸念は多大なものでオンプレミスからの移行を躊躇うということもありましたが、近年はセキュリティの強固さも大きく前進しており、有名企業のシステムであってもクラウド上で安心して運用できる状況となっています。

念のためデメリットについても触れておきます。従量課金制のサービスがほとんどであることから、事前に予算が立てづらいという面があります。しばらく利用すればある程度の見積もりが出るようになりますが、初めてクラウドを利用する時は予算の設定が難しいことでしょう。ただしGoogle Cloud Platformには大まかではありますが「GCP Pricing Calculator」という便利なツールがあり、希望のサービス等を選択することで見積もりができるのでぜひ利用してみましょう。

もう一つは、サービスがあり過ぎて自社の状況に合わないサービスを契約してしまうという可能性があります。クラウドサービスは誤って契約してしまっても月額がかかるということはないので万が一誤って契約してしまってもすぐに削除すれば大きなマイナスにはなりませんが、事前に公式サイトや今回のような記事を参考にし、適したサービスを見つけてみましょう。

Google Cloud Platform(GCP)のサービスについて

Compute Engineについて紹介する前に、Google Cloud Platformの全体像を解説しておきます。現在は「Google Cloud」に統合されたことは前述しましたが、以前Google Cloud Platformとして提供されていたものとしてはCompute Engineの他に、ビッグデータの解析が行えるデータベースサービス「BigQuery」、アプリの開発に特化した「Google App Engine」、コンテナ管理サービス「Google Kubernetes Engine」、機械学習における複雑なモデルの作成やトレーニング、モデル展開、予測、モニタリングが可能な「Cloud Machine Learning Engine」、ストレージサービス「Cloud Storage」、関数の作成・実行に特化した「Google Cloud Functions(GCF)」といったサービス等があります。以上はほんの一部で、これらのサービスを単体あるいは組み合わせて利用できるようになっています。今回はGoogle Cloud Platformのサービスについて紹介しましたが、他社のクラウドサービスにおいても大抵の場合はそれぞれ類似サービスが存在します。

その中で特にGoogle Cloud Platform独自のメリットとしては、TensorFlow(テンソルフロー)やBigQuery、Cloud Machine Learning Engineといったサービスを利用することでAIや機械学習の分野の開発が可能という点が挙げられます。

無料枠が設けられているサービスが多いという点もGoogle Cloud Platformの大きなメリットです。これを執筆している2023年4月時点で無料枠の提供があるものとしてはCompute Engine、Cloud Storage、BigQueryといったGCPの代表的なものを含んだ全24サービスとなっていました。なお、各サービスで無料の対象となるものは稼働時間数であったり、容量であったり、クエリ数であったりと異なるので、実際に利用する際は公式サイトの「無料枠プロダクト」を参照してみてください。

近年は翻訳ツールの制度が上がっているのである程度の理解は可能と思いますが、日本語のドキュメントが少なく、理解するのに時間がかかる可能性があるという点にはあらかじめご注意ください。

Google Compute Engine(GCE)の概要

Compute EngineはGoogle Cloud Platformにおける仮想マシンサービスであることはすでに述べましたが、これはAWSにおけるAmazon EC2、Microsoft AzureにおけるAzureVirtual Machinesに該当します。もちろんクラウドサービスの共通する特徴となっている臨機応変な拡張も可能なサービスです。Compute EngineのVMインスタンスには様々な種類が用意されており、「マシンタイプファミリー」という中から開発するシステムに見合ったものを選択して利用できます。またあらかじめ用意されたインスタンスだけではなく、カスタマイズして構築するタイプも用意されています。

Compute Engineには基本的なWebシステムからAIやデータ分析が可能な機能が備わっており、機械学習ワークロードの高速化に有効な「TPU(Tensor Processing Unit)」や一般的に画像処理に特化した演算装置「GPU(Graphics Processing Unit)」の利用も可能となっています。

「マシンタイプファミリー」の話に戻りますが、現時点で提供されているマシンタイプファミリーは大きく、スケールアウトワークロード(T2A、T2D)、汎用ワークロード(E2、N2、N2D、N1)、超高メモリ(M2、M1)、コンピューティング負荷の高いワークロード(C3、C2、C2D)、特に要求の厳しいアプリケーションとワークロード(A2)の5種類に分けられ、カッコ内はそのバージョンを表しています。特に理由がない限りは最新バージョンを利用するのがおすすめです。

T系はコストパフォーマンスに優れたタイプで、それぞれ特徴の異なるx86、Armといった2種類のプロセッサーから選択可能となっています。なお公式サイトによるとT2AはArmプロセッサで動作するGoogle Cloudの最初のマシンシリーズとのことでした。

E系のT系同様にコストパフォーマンスが良く料金を抑えやすいタイプであり、Webサーバーや小規模なデータベースシステムの運用に適していますが、最大16個のvCPU、128GBのメモリが利用できるので試しに利用する場合は特にスペック的に問題ない程度に利用できることでしょう。N系はアプリ提供や中規模なおデータベースシステムの運用といった柔軟性やパフォーマンスを重視したい場合に適したタイプとなります。常に最新のCPUを利用できるという点もN系のメリットの一つです。

M系は、データをメモリに保存するマルチモデルデータベース「SAP HANA」のようにメモリを多く利用するシステムの運用に適したタイプです。そのため最新で高速なメモリ技術を採用しているにもかかわらずメモリの単価が安く設定されています。C系は、ゲームや複雑な計算を高速に処理するHPC(ハイパフォーマンス コンピューティング)、さらにはレイテンシの影響を受けやすいAPIのようにコアの能力が重要視されるワークロードを必要とするシステムに適した強力なコンピューティングが可能という特徴を持っています。

A系は高性能GPUが搭載されており、機械学習や超並列計算、HCPに適したハードなワークロードが可能なタイプとなっています。エンジニアにおいては、事前に十分な要件定義をしたうえで以上の5種類から最も条件に見合ったサービスを選択することが重要となります。

課金の仕組みについて

Compute Engineは他のサービスの例に漏れず従量課金制ですが、その課金対象はvCPU、メモリ (RAM)、ストレージ、GPU、スナップショット、データ通信量、IPアドレスの使用状況、また有償のOSを利用している場合はそのライセンス料となります。

なおCompute Engineの無料枠としては無料クレジット$300分が利用できる他、1台のVMを1ヶ月無料で利用できるようになっています。

さらに従量課金制であるものの、事前に利用する期間やリソースを決めておくことで割安で利用できるようになる「確約利用割引」や、といった割引制度も用意されています。VMの稼働状況によって自動的に割引される「継続利用割引」もあり、こちらは100%に近く稼働している程割安になります(1か月の25%以上のリソース実行時間があった場合に適用)。このように割引サービスが充実している点は仮想マシンサービスとしてCompute Engineを選択するメリットと言えます。

Compute EngineでVMインスタンスを作成してみる

Google Cloud Platformのサービスは「コンソール」と呼ばれる統合的なGUIの管理画面を用いて操作を行います。コンソールへは無料のGoogleアカウントさえ持っていれば「Google Cloud」の画面からシングルサインオンが可能です。万が一Googleアカウントを作成したことがない方は事前に作っておく必要があります。初めての方は「無料で使ってみる」「無料で利用開始」等のボタンをクリックして進んでください。コンソールではGoogle Cloud Platformのプロジェクトやリソース管理が可能です。

コンソールへログインができたら新規プロジェクトを作成していきます。なお、もしGUIではなくコマンドでVMの作成を進めたい場合は「Google Cloud CLI 」をインストールする必要があります。この記事ではGUIでの作成方法のみ紹介することをあらかじめご了承ください。「プロジェクト セレクタ」のページで「新しいプロジェクト」を選択し、任意のプロジェクト名を入力して「作成」をクリックすることでプロジェクトの作成は完了です。

プロジェクトが出来上がったら実際にCompute EngineのVMインスタンスを作成していきます。コンソール内左側メニューにある「Compute Engine」をクリックすると、何もインスタンスが存在していない場合は画面中央に「Compute Engine VM instances」というポップアップが表示されているので、その中にある「Create Instance」をクリックします。

次にインスタンスを作成するにあたって必要な項目の入力が求められます。「Name」には任意のインスタンス名を、「Zone」ではインスタンスを作成したいデータセンターのゾーンを、「Machine type」ではCPU数やメモリ量を、「Boot disk」ではOSをそれぞれ入力または選択します。「Identity and API access」の部分は初期状態で「Compute Engine default service account」、「Allow default access」が選択されていますが試す場合はこのままで問題ありません。「Firewall」では外部からのアクセスを許可したいポートの設定を行います。初期状態では全て拒否する設定となっているため、必要最低限のポートのみを許可しましょう。以上の設定をし終えたら最後に「Create」をクリックして完了となります。

なお「Zone」に関して東京を選択したい場合は「asia-northeast1」のa、b、cいずれかを選んでください。また「Machine type」では初期状態で「1 vCPU」が選択されていますが、無料で利用したい場合は「E2-micro」に変更する必要がある点に注意が必要です。さらに「Boot disk」でも無料で利用したい場合は「標準永続ディスク」を選択しましょう。

インスタンスの作成が完了すると自動的に「VM instances」の画面に遷移し、作成したインスタンス名が表示されます。すでにこの状態となったらグローバルIPアドレスが付与され、インスタンスの起動が可能となっています。「SSH」ボタンをクリックして接続を試してみましょう。

今回は公開OSイメージからの作成方法について紹介しましたが、Compute Engineではカスタムイメージ、非ブートディスク、共有イメージ、スナップショット、コンテナイメージからもそれぞれにインスタンスの作成が可能なので、必要に応じて使い分けてください。

まとめ

今回見てきたようにCompute Engineは従量課金制で拡張性があり、環境構築の手間が省けるという一般的なクラウドサービスのメリットを持ちながら、AI・機械学習の分野の開発が可能でマシンタイプファミリーとして様々な用途に適したインスタンスが選択可能、無料枠が設けられている、複数タイプの割引サービスがあるといったGoogle Cloud Platform独自の特徴も持ち合わせています。また「GCP Pricing Calculator」を利用することで、クラウドサービスにおいて困難なことの一つである見積もりもしやすくなります。

Google Cloud Platformは全般的に日本語の解説が少ないという面もありますが、公式サイトに基本的なドキュメントやチュートリアル、トレーニング等も用意されているため、今回紹介した内容を魅力的に感じた方はぜひ仮想マシンの選択肢の一つとしてCompute Engineを取り入れてみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

GCPの料金について

次の記事

GCPの始め方