Google Cloudチュートリアル:GoogleCloudを使い始める

人々がグーグルという言葉について考えるとき、彼らはあなたの言葉をおそらくあなたが探しているものを正確に持っているウェブサイトのリストに変換する検索と巨大な計算インフラストラクチャについて考えます。Googleがエンジニアを雇い、カスタムコンピュータを設計し、ウェブクエリに答えるハードウェアの膨大なコレクションを作成するのに何年もかかりました。これで、数回のキーストロークとクリックであなたのものになります。 

Googleは、その専門知識とインフラストラクチャの多くを他のWeb企業に貸し出しています。賢いウェブサイトやサービスを構築したい場合、Googleは膨大な数のマシンで実行するために料金を請求する準備ができています。あなたがする必要があるのはいくつかのウェブフォームに記入し始めることです、そしてすぐにあなたはあなたの雑用をスケーリングして処理する準備ができているサーバーの大きなコレクションを手に入れるでしょう。

開始するためのクイックガイド、および途中で多くの選択肢をナビゲートするためのクイックガイドについては、私に従ってください。  

ステップ1:アカウントを設定する

これは簡単な部分です。Googleアカウントをお持ちの場合は、準備ができています。cloud.google.comにログインして、コンソールとダッシュボードに直接アクセスできます。始めたとき、ここで見ることはあまりありませんが、すぐにあなたの広大なコンピューティング帝国が何をしているかについての詳細を見るようになります。つまり、作成したサーバーインスタンスの負荷、ネットワークを流れるデータ、およびAPIの使用法です。一目ですべてがスムーズに実行されていることを確認できます。

ステップ2:構造の必要性を特定する

Googleのインフラストラクチャを使用するには、2つの方法があります。1つは独自の方法です。Googleの開発チームのすべての天才を活用したい場合は、十分な手持ちを提供するツールを選択できます。たとえば、Google App Engineを使用すると、Googleが厳選した社内およびオープンソースのフレームワークのコレクションに依存することで、わずか数百行のコードで洗練されたウェブアプリケーションを構築できます。App Engineは、何かをすばやく起動するための高速な方法です。

すでに独自のコードを持っている場合、またはGoogleの方法に縛られることを心配している場合は、Google ComputeEngineを使用して1秒ごとにマシンをレンタルできます。LinuxまたはWindowsの主要なディストリビューションの1つを選択するだけで、数秒後にrootパスワードを取得し、コマンドラインにアクセスできます。制限はありません。

間にあるオプションがあります。必要に応じて、独自のコードを使用してApp Engineをカスタマイズすることも、WordPressやNode.jsなどの一般的なアプリケーションに必要なすべてのファイルが既に含まれているComputeEngine用のビルド済みイメージを選択することもできます。そして、これらの間のどこかにあるさらに多くのオプションがあります。

おそらく、完全に構造化されたApp Engineアプリを一部に使用し、コモディティハードウェアで実行されているカスタムコードを別の部分に使用するなど、サポートが混在することになります。自分でどれだけやりたいか、そしてGoogleのツールを使ってどれだけオープンに構築できるかを決めることがより重要です。

関連ビデオ:クラウドネイティブアプローチとは何ですか?

この60秒のビデオでは、Heptioの創設者兼CEOであり、オープンソースシステムKubernetesの発明者の1人であるCraig McLuckieから、クラウドネイティブアプローチが企業のテクノロジー構造をどのように変えているかを学びます。

ステップ3:非伝統的なアプローチを検討する

誰もが同じ方法でWebアプリケーションを構築する必要があるわけではありません。Googleは非常に多くのオプションを提供しており、従来のコードを記述しなくても優れた結果を生み出すことがよくあります。たとえば、1つの賢いアイデアは、ストレージ用にChrome拡張機能とユーザーのGoogleドライブアカウントを組み合わせたものです。唯一のコードはクライアントで実行され、Googleがすべてのインフラストラクチャを処理します。より単純なアプローチではアプリケーションを解決できないことを確認するために、よく考えてください。

ステップ4:マシンを選択する

これを、有形の「機械」のような物理的なものを選ぶと考えるのはほとんど間違いです。実際には、必要と思われるCPUパワー、メモリ、およびディスク容量を選択するだけです。Compute Engineは、数十の標準サイズの「マシン」を提供します。または、独自のカスタムの組み合わせを選択することもできます。

より重い負荷を処理するために複数のマシンを探している場合は、Google KubernetesEngineを使用してKubernetesクラスターを作成することをお勧めします。Googleは、複数のマシン間でコンテナを簡単に実行できるようにするツールを開発しました。負荷が増加すると、Kubernetesはより多くのインスタンスをスピンアップし、負荷が減少すると、インスタンスをスピンダウンします。

Google Cloud Functionsなどのより自動化されたパスを選択して、選択しないこともできます。Googleは、マシンのサイズに関する決定を処理し、アプリの作業単位ごとに請求します。その月に1つの小切手を書く代わりに、各顧客のクリックに対して数分の1セントで支払います。

Googleは、マシンが1か月の特定の割合で使用された後に開始される継続使用割引を提供することにより、プロセスの他の側面を自動化したことは注目に値します。他のクラウド企業は、割引を受けるために多くの時間を費やすことを要求しています。Googleの割引は、マシンが長時間稼働すると自動的に表示されます。

ステップ5:コードのベンチマークを設定する

最大の課題の1つは、マシンに適したサイズを見つけることです。Googleは非常に多くのオプションを提供しているため、気が遠くなる可能性があります。予測が難しいパフォーマンスの大きな違いを見つけました。仮想CPUの数を2倍にすると、処理時間が半分になることはめったにありません。RAMを追加すると、データを安全に保持するのに十分な量を追加するまで、マシンを劇的に高速化できます。

唯一の解決策は、さまざまな構成でソフトウェアをベンチマークすることです。Google Compute Engineの最良のオプションの1つは、RAM、CPU、およびディスク容量の量を組み合わせることができる方法です。事前定義された組み合わせに限定されません。したがって、最初から実験を開始し、負荷がシフトしてパフォーマンスが異なる場合に備えて、数か月ごとに再試行することを忘れないでください。

ステップ6:データストレージオプションを選択する

Google Cloudは、データを安全に保つために少なくとも5つの異なるオプションを提供します。その後、生の永続ディスクを使用して、いつでも独自のデータストレージモデルを実装できます。最初の質問は、SQLに応答するために構築されたリレーショナルデータベースの構造を使用するかどうか、またはNoSQLとオブジェクトストレージのより構造化されていない自由が必要かどうかです。

SQLの場合、GoogleはMySQLとPostgresに独自のAPIをラップしています。Google Cloud SQLは、バックアップ、レプリケーション、パッチ、アップデートを自動化します。これらの人気のあるオープンソースオプションに接続するコードを記述します。Google Cloud Spannerもリレーショナル構造を提供しますが、非常に高いレベルのサービスを提供します。Googleは、「99.999%の可用性SLA、計画的なダウンタイムなし、エンタープライズクラスのセキュリティ」を大胆に約束しています。(のレビューを参照してください。)

NoSQLの構造化されていないドキュメントモデルに関心がある場合は、Cloud Storage、Cloud Bigtable、CloudDatastoreなどの複数のオプションがあります。

また、情報を保存するだけではない高度なデータベースであるFirebaseを確認することが重要です。これは、ユーザーの認証、クライアントとのデータの同期、ファイルの提供、通知の送信に必要なインフラストラクチャの多くをバンドルし、アプリとユーザーの動作を監視します。 

これらのオプションはすべて、入力したデータの量に応じて請求されます。保管すればするほど、支払う金額も多くなります。

ステップ7:GoogleAPIを閲覧する

GoogleCloudで利用できるAPIの数はほとんど怖いです。もちろん、それらのほとんどはインターネット上のどのコンピューターでも利用できますが、Googleのクラウド内でうまく機能すると信じる(または想像する)ことはできません。

これらのAPIの多くは、プログラミングにかかる​​時間を大幅に節約できます。たとえば、Googleマップは、Webアプリケーション用に世界中から詳細な地図を提供します。Cloud Data Loss Preventionは、ドキュメントをくまなく調べ、社会保障番号などの機密情報にフラグを付けます(または編集します)。数十のオプションがあり、それらはすべて、それらを使用する頻度と量に応じて請求されます。多くの場合、小規模なアプリケーションや新規顧客向けに無料のサービス階層があります。

ステップ8:データ分析ツールを確認する

Googleは、社内のすべての調査を使用して、データ分析ツールと機械学習ツールの数を劇的に拡大しました。保存した任意のデータを取得してから、GoogleのビッグデータまたはクラウドAIツールを適用して、パターンや信号を見つけることができます。

これらのツールの多くは、アプリケーションから収集されたすべてのデータを分析するのに適しています。商品を販売している場合は、顧客と顧客が選択した商品との相関関係を探すことができるため、顧客のニーズをより正確に予測することができます。国の一部が1つの色を愛している場合、アルゴリズムはこれを発見するのに役立ちます。また、あまり目立たないつながりもあります。

これらのツールでは、AppEngineやComputeEngineを使用して情報を収集する必要はありません。他のシステムからデータをアップロードできます。

ステップ9:地域とゾーンを選択する

多くの基本的な仕事では、仕事をしているコンピューターの実際の場所についてあまり心配する必要はありません。それはクラウドと呼ばれていますよね?比喩は、魔法がどこで起こるかを正確に気にする必要がないことを示唆しています。

ただし、一部の仕事では、法的または実際的な理由から注意を払う必要があります。Googleは、南極大陸とアフリカを除くすべての大陸にデータセンターを持っています。各大陸は「地域」に分割され、各地域は「ゾーン」に分割されます。トラブルが発生したときに人生が続くことを確認したい場合は、別々のゾーンでマシンを借りる必要があります。さらに確実にしたい場合は、アプリケーションを複数のリージョンで実行する必要があります。

個々の製品とツールは一般的にどこでも機能しますが、いくつかのギャップがあります。たとえば、App Engineは、米国の4つの地域のうち3つでのみ利用できます。Cloud Storageのような他の製品は、1つまたは複数のリージョンのオプションを提供します。

ステップ10:コーディングを開始する

読むのをやめて、エディターを出てください。App Engineを使用する場合は、何かを実行するのにそれほど時間はかかりません。コモディティハードウェアをレンタルしている場合は、数分で選択したディストリビューションにルートレベルでアクセスできます。大量のコンピューティング火力をオンにするのに数秒しかかかりません。この力で何をするかはあなた次第です。