arrow_back

アプリ開発 - 開発環境の設定: Java

ログイン 参加
700 以上のラボとコースにアクセス

アプリ開発 - 開発環境の設定: Java

ラボ 2時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、Google Cloud で Java 開発環境を設定します。Google Compute Engine を使用して仮想マシン(VM)を作成し、ソフトウェア開発用にソフトウェア ライブラリをインストールします。

目標

以下のタスクを行います。

  • Google Compute Engine インスタンスをプロビジョニングする。
  • SSH を使用してインスタンスに接続する。
  • インスタンスに Java ライブラリをインストールする。
  • ソフトウェアのインストールを確認する。

Google Cloud

Google Cloud は、コンピュータやハードディスク ドライブなどの物理アセット一式と、VM などの仮想リソースで構成されています。これらは世界中にある Google のデータセンターで稼働しています。各データセンターは世界各地のリージョンに存在します。リージョンには、米国中部、西ヨーロッパ、東アジアなどがあります。リージョンはゾーンの集まりで、各ゾーンはリージョン内で相互に分離されています。各ゾーンは、文字の識別子とリージョン名を組み合わせた名前で識別されます。たとえば、東アジアのリージョンのゾーン a は、asia-east1-a という名前になります。

このようにリソースが分散されていることで、障害時の冗長性や、クライアントの近くにリソースが配置されることによるレイテンシの削減など、さまざまなメリットがあります。また、分散されているリソースを一緒に使用するためのルールも適用できます。

プロジェクト

Google Cloud のリソースを割り当てて使用するには、リソースがプロジェクトに含まれている必要があります。プロジェクトとは、構築する対象をまとめて管理する 1 つの単位と考えることができます。

プロジェクトは、設定や権限に加え、アプリケーションに関する情報を記述したその他のメタデータで構成されます。

同じプロジェクト内のリソースは簡単に連携できます。これは、リージョンとゾーンのルールに沿った内部ネットワーク通信などによって行われます。各プロジェクトに含まれるリソースは、他のプロジェクトからは分離されます。異なるプロジェクトのリソースを相互に接続するには、外部ネットワーク接続を利用する必要があります。

各 Google Cloud プロジェクトに含まれているものは以下のとおりです。

  • プロジェクト名(ユーザーが指定)
  • プロジェクト ID(ユーザーまたは Google Cloud が指定)
  • プロジェクト番号(Google Cloud が指定)

Google Cloud を使った操作では、コマンドラインや API 呼び出しでこれらの識別子を使用することがあります。

Google Cloud コンソールのホーム > [ダッシュボード] にプロジェクト名、ID、番号が表示されます。

各プロジェクトには Google Cloud 全体で一意の ID が割り当てられます。プロジェクトは作成後に削除できますが、その ID を再び使用することはできません。

課金を有効にすると、各プロジェクトは 1 つの請求先アカウントに関連付けられます。リソースの使用については、複数のプロジェクトで同じアカウントに請求されるように設定できます。

プロジェクトは名前空間として機能します。これは、特定のプロジェクト内の各リソースが一意の名前を持つ必要があることを意味します。ただし、異なるプロジェクトに存在するリソースの名前は同じものにすることができます。一部のリソース名はグローバルに一意である必要があります。詳しくはリソースについてのドキュメントをご覧ください。

このラボでは、Google Cloud で Google Compute Engine 仮想マシン(VM)をプロビジョニングし、Java を使用したソフトウェア開発用にソフトウェア ライブラリをインストールします。

サービスにアクセスする方法

Google Cloud は、サービスやリソースを操作するための 3 つの基本的な方法を提供しています。

  1. Google Cloud コンソール: ウェブベースのグラフィカル ユーザー インターフェースで、Google Cloud のプロジェクトやリソースの管理に使用できます。

  2. コマンドライン インターフェース:

    • Google Cloud SDK: gcloud コマンドライン ツールを使って、必要なコマンドを実行できます。
    • Cloud Shell: ブラウザベースのインタラクティブな Google Cloud 用シェル環境です。Cloud Shell には Google Cloud コンソールからアクセスできます。

ターミナル ウィンドウで作業する場合は、Google Cloud SDK が提供する gcloud コマンドライン ツールを使用して、必要なコマンドを実行します。gcloud ツールを使用して開発ワークフローと Google Cloud リソースの両方を管理できます。使用できるコマンドの完全なリストについては、gcloud リファレンスをご確認ください。

  1. クライアント ライブラリ: Cloud SDK にはクライアント ライブラリが含まれています。これを使用すると、リソースを簡単に作成、管理できます。Google Cloud のクライアント ライブラリが公開している API を使用すれば、サービスへのアクセスやリソースの管理が可能になります。また、Google API クライアント ライブラリを使用して、Google マップ、Google ドライブ、YouTube などのプロダクトの API にアクセスできます。

設定と要件

ラボの設定

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. Compute Engine 仮想マシン インスタンスを作成する

このセクションでは、Google Cloud コンソールを使用して、新しい Google Compute Engine 仮想マシン(VM)インスタンスをプロビジョニングします。

VM を作成し、それに接続する

  1. コンソールで、ナビゲーション メニュー > [Compute Engine] > [VM インスタンス] の順にクリックします。 ナビゲーション メニューが開かれていて、Compute Engine のメニュー オプションと VM インスタンスのサブメニュー オプションがハイライト表示されている
  2. [VM インスタンス] ページで [インスタンスを作成] をクリックします。
  3. [マシンの構成] ページで次のように設定します。
  • 名前: dev-instance

  • リージョン: us-central1

  • ゾーン: us-central1-f

    注: Google Cloud では、リージョンと呼ばれる複数の異なる地理的なロケーションでプロダクトやサービスが提供されます。各リージョンには複数の異なるゾーンがあります。各ゾーンは電源とインターネット接続が他のゾーンから分離されています。
  1. [ネットワーキング] をクリックします。

  2. [ファイアウォール] で [HTTP トラフィックを許可する] をオンにします。

  3. [セキュリティ] をクリックします。

  4. [アクセス スコープ] で [すべての Cloud API に完全アクセス権を許可] をオンにします。

  5. 残りの設定はデフォルトのままにして、[作成] をクリックします。

    仮想マシンがプロビジョニングされて起動されるまでに約 20 秒かかります。

  6. [VM インスタンス] ページの dev-instance の行で、[SSH]([接続] 列)をクリックします。

    これによって、ブラウザでホストされる SSH セッションを起動できます。ポップアップ ブロッカーを使用していると、2 回クリックしなければならない場合があります。 SSH 認証鍵の構成や管理は必要ありません。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。

Compute Engine 仮想マシン インスタンスを作成する(ゾーン: us-central1-f)

ソフトウェアをインストールし、VM インスタンスを構成する

  1. Debian パッケージのリストを更新するために、SSH セッションで次のコマンドを入力します。

    sudo apt-get update
  2. Java 17 をインストールします。

    sudo apt-get install -yq openjdk-17-jdk
  3. OpenJDK 17 における証明書の問題の回避策を適用します。

    sudo sed -i 's/^\(keystore\.type\s*=\s*\).*$/\1jks/' /etc/java-17-openjdk/security/java.security; sudo rm /etc/ssl/certs/java/cacerts; sudo /usr/sbin/update-ca-certificates -f
  4. Git をインストールします。

    sudo apt-get install git -y
  1. Maven をインストールします。

    sudo apt-get install -yq maven
  2. IP テーブルを構成します。

    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

    上記のコマンドでは、ポート 80 へのリクエストをポート 8080 にリダイレクトする IP テーブルが構成されます。Java のウェブ アプリケーションはポート 8080 でリッスンします。

  3. プロジェクト ID を環境変数としてエクスポートします。

    export GCLOUD_PROJECT="$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/project/project-id)"

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。

ソフトウェアをインストールし、VM インスタンスを構成する

タスク 2. VM を構成してアプリケーション ソフトウェアを実行する

このセクションでは、ソフトウェアのインストールを確認し、サンプルコードをいくつか実行します。

Java のインストールを確認する

  1. Java のバージョンを確認するには、次のコマンドを実行します。

    java -version

    出力例:

    openjdk version "11.0.12" 2021-07-20 OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2deb10u1) OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2deb10u1, mixed mode, sharing)

    JDK バージョン 11.x.x が表示されます。「11」は Java のバージョン番号を示します。

  1. クラス リポジトリのクローンを作成します。

    git clone --depth=1 https://github.com/GoogleCloudPlatform/training-data-analyst
  2. 簡単に移動できるように、作業ディレクトリへのショートカットとしてソフトリンクを作成します。

    ln -s ~/training-data-analyst/courses/developingapps/v1.3/java/devenv ~/devenv
  3. サンプル ファイルが含まれているディレクトリに移動します。

    cd ~/devenv
  4. シンプルなウェブ アプリケーションを実行します。

    mvn clean install

    プロジェクトがビルドされるまで待ちます。プロジェクトのビルドが正常に終了すると、次のような出力が表示されます。

    [INFO] ------------------------------------------------------- [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------- [INFO] Total time: 26.429 s [INFO] Finished at: 2021-12-06T09:46:15Z [INFO] -------------------------------------------------------
  5. アプリケーションを実行します。

    mvn spring-boot:run

    複数の警告が表示されることがありますが、次のような INFO メッセージが出力に表示される場合、プロジェクトは実行中です。

    09:48:00.374 [restartedMain] INFO c.g.training.appdev.DemoApplication - Started DemoApplication in 2.491 seconds (JVM running for 3.28)
  6. Cloud コンソールの VM インスタンスのリストに戻り、dev-instance外部 IP アドレスをクリックします。

    外部 IP 35.188.177.221 がハイライト表示されている

    ブラウザが開き、Java からの「Hello GCP dev!」というメッセージが表示されます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。

アプリケーション ソフトウェアを実行して成功のレスポンスを受け取る
  1. SSH ウィンドウに戻り、Ctrl+C キーを押してアプリケーションを停止します。

  2. Compute Engine インスタンスを一覧表示するシンプルな Java アプリケーションを実行するには、次のコマンドを実行します。

    mvn exec:java@list-gce

    ターミナル ウィンドウに VM の詳細が表示されます。

タスク 3. 理解度チェック

以下の多肢選択式の問題に取り組み、今回のラボで学習した内容の理解を深めましょう。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。