arrow_back

Dataflow ジョブの IAM とネットワーキングを設定する

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

Dataflow ジョブの IAM とネットワーキングを設定する

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

概要

このラボでは、IAM 権限を設定し、Datafow ジョブにプライベート IP アドレスを使用する方法を学びます。

目標

  • ジョブを起動できるかどうかに影響する IAM 権限を設定する。
  • Dataflow ジョブにプライベート IP アドレスを使用する。

設定と要件

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

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

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

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

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

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

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

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

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールが組み込まれた仮想マシンです。5 GB の永続ホーム ディレクトリを提供し、Google Cloud 上で実行されます。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。gcloud は Google Cloud のコマンドライン ツールで、Cloud Shell にプリインストールされており、Tab キーによる入力補完がサポートされています。

  1. Google Cloud Console のナビゲーション パネルで、「Cloud Shell をアクティブにする」アイコン(Cloud Shell アイコン)をクリックします。

  2. [次へ] をクリックします。
    環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続の際に認証も行われ、プロジェクトは現在のプロジェクト ID に設定されます。次に例を示します。

Cloud Shell ターミナル

サンプル コマンド

  • 有効なアカウント名前を一覧表示する:

gcloud auth list

(出力)

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

(出力例)

Credentialed accounts: - google1623327_student@qwiklabs.net
  • プロジェクト ID を一覧表示する:

gcloud config list project

(出力)

[core] project = <プロジェクト ID>

(出力例)

[core] project = qwiklabs-gcp-44776a13dea667a6

タスク 1. Cloud Storage バケットを作成する

  1. 変数を設定するため、Cloud Shell で次のコマンドを実行します。

    PROJECT=`gcloud config list --format 'value(core.project)'` USER_EMAIL=`gcloud config list account --format "value(core.account)"` REGION={{{ project_0.default_region | "REGION" }}}
  2. Cloud Storage バケットを作成します。

    gcloud storage buckets create gs://$PROJECT --project=$PROJECT

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Storage バケットを作成する

タスク 2. Dataflow ジョブを起動する

このタスクでは、Dataflow ジョブの実行を試みます。IAM 権限がないため、最初は失敗します。必要なロールを割り当てると、ジョブは正常に実行されます。

  1. まず、アカウントに関連付けられている IAM ロールを確認します。

    gcloud projects get-iam-policy $PROJECT \ --format='table(bindings.role)' \ --flatten="bindings[].members" \ --filter="bindings.members:$USER_EMAIL"
  2. Dataflow ジョブの起動を試みます。

    gcloud dataflow jobs run job1 \ --gcs-location gs://dataflow-templates-{{{ project_0.default_region | "REGION" }}}/latest/Word_Count \ --region $REGION \ --staging-location gs://$PROJECT/tmp \ --parameters inputFile=gs://dataflow-samples/shakespeare/kinglear.txt,output=gs://$PROJECT/results/outputs

IAM 権限がないため、これは予想どおり失敗します。

  1. ユーザー アカウントに Dataflow 管理者ロールを追加します。
gcloud projects add-iam-policy-binding $PROJECT --member=user:$USER_EMAIL --role=roles/dataflow.admin
  1. Dataflow ジョブをもう一度起動します。

    gcloud dataflow jobs run job1 \ --gcs-location gs://dataflow-templates-{{{ project_0.default_region | "REGION" }}}/latest/Word_Count \ --region $REGION \ --staging-location gs://$PROJECT/tmp \ --parameters inputFile=gs://dataflow-samples/shakespeare/kinglear.txt,output=gs://$PROJECT/results/outputs
  2. Google Cloud コンソールのタイトルバーにある検索フィールドに「Dataflow」と入力し、[プロダクトとページ] セクションの [Dataflow] をクリックします。

ジョブが完了するまで約 5 分間待ってから先に進んでください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Dataflow ジョブを起動する

タスク 3. プライベート IP で起動する

このタスクでは、まず --disable-public-ips ディレクティブを使用して Dataflow ジョブの起動を試みます。限定公開の Google アクセス(PGA)がネットワークで有効になっていないため、最初は失敗します。PGA を構成し、コマンドを再実行してジョブを起動します。

  1. --disable-public-ips ディレクティブを使用して Dataflow ジョブを起動するために、Cloud Shell で次のコマンドを実行します。 gcloud dataflow jobs run job2 \ --gcs-location gs://dataflow-templates-{{{ project_0.default_region | "REGION" }}}/latest/Word_Count \ --region $REGION \ --staging-location gs://$PROJECT/tmp \ --parameters inputFile=gs://dataflow-samples/shakespeare/kinglear.txt,output=gs://$PROJECT/results/outputs --disable-public-ips

PGA が有効になっていないため、このジョブは予想どおり失敗します。

  1. job2 が失敗したことを確認するには、Google Cloud コンソールに移動し、ナビゲーション メニュー[Dataflow] > [ジョブ] をクリックします。

  2. job2 をクリックし、一番下までスクロールして、[ログ] の横にある [表示] をクリックしたら、エラーの原因を確認します。

  3. Cloud Shell で次のコマンドを実行して、PGA を有効にするために必要なロールをユーザーに付与したら、PGA を有効にします。

gcloud projects add-iam-policy-binding $PROJECT --member=user:$USER_EMAIL --role=roles/compute.networkAdmin gcloud compute networks subnets update default \ --region=$REGION \ --enable-private-ip-google-access
  1. 手順 1 を繰り返します。

    gcloud dataflow jobs run job2 \ --gcs-location gs://dataflow-templates-{{{ project_0.default_region | "REGION" }}}/latest/Word_Count \ --region $REGION \ --staging-location gs://$PROJECT/tmp \ --parameters inputFile=gs://dataflow-samples/shakespeare/kinglear.txt,output=gs://$PROJECT/results/outputs --disable-public-ips
  2. Google Cloud コンソールナビゲーション メニューで、[Compute Engine] > [VM インスタンス] をクリックします。起動された VM に外部 IP アドレスがないことに注目してください。

注: ジョブ ステータスが [完了] に変わると、VM インスタンスは削除されます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 プライベート IP で起動する

お疲れさまでした

これでこのラボは終わりです。このラボでは、適切な IAM ロールを使用して Dataflow ジョブを起動しました。さらに、サブネットを限定公開の Google アクセスに変更し、Dataflow ジョブの一部として外部 IP アドレスを使用しない VM を起動しました。

ラボを終了する

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

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

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

  • 星 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 つのラボ

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

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

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