チュートリアルセットアップ: 開発エンドポイントチュートリアルの前提条件 - AWS Glue

チュートリアルセットアップ: 開発エンドポイントチュートリアルの前提条件

開発エンドポイントは、ETL スクリプトを AWS Glue ジョブとして実行する前に、インタラクティブにさまざまな方法で ETL スクリプトをテストおよびデバッグできる環境を作成します。このセクションのチュートリアルでは、さまざまな IDE を使用してこれを行う方法を示します。これらのすべては、次のセクションの手順を使用して、開発エンドポイントをセットアップし、サンプルデータをクロールして AWS Glue Data Catalog にテーブルを作成することを前提としています。

場合によっては Amazon Simple Storage Service (Amazon S3) データのみを使用し、JDBC と Amazon S3 データを他と組み合わせるため、Virtual Private Cloud (VPC) にはない 1 つの開発エンドポイントと、Virtual Private Cloud (VPC) にある 1 つの開発エンドポイントを設定します。

チュートリアルで使用されるサンプルデータのクローリング

最初のステップでは、一部のサンプルデータをクロールし、そのメタデータを Data Catalog のテーブルに記録できるクローラを作成します。使用されるサンプルデータは http://everypolitician.org/ から取得され、チュートリアルの目的のため少し変更されています。これには、米国国会議員と米国下院および上院の議席についての JSON 形式のデータが含まれています。

  1. AWS Management Console にサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。

    AWS Glue コンソールで [Databases (データベース)] を選択し、[Add database (データベースの追加)] を選択します。データベースに legislators という名前を付けます。

  2. [Crawlers] (クローラ)、[Add crawler] (クローラの追加) の順に選択します。クローラに legislator_crawler という名前を付け、[次へ] を選択します。

  3. デフォルトのクローラソースタイプ (データストア) を受け入れ、[次へ] をクリックします。

  4. S3 はデータストアのままにしておきます。[Crawl data in] (クロールするデータの場所) で、[Specified path in another account] (別のアカウントで指定されたパス) を選択します。次に、[インクルードパス] ボックスに「s3://awsglue-datasets/examples/us-legislators/all」と入力します。[Next] (次へ) を選択し、[Next] (次へ) をもう一度選択して、別のデータストアを追加しないことを確認します。

  5. 実行時にクローラが引き受ける IAM ロールを指定します。

    s3://awsglue-datasets/examples/us-legislators/all にアクセスできるロールを指定するか、[IAM ロールを作成する] を選択して名前を入力し、その場所にアクセスできるロールを作成します。

  6. [次へ] を選択し、再度 [次へ] を選択して、このクローラがオンデマンドで実行することを確認します。

  7. [Database] (データベース) に、legislators データベースを選択します。[Next] (次へ) を選択し、[Finish] (完了) を選択して新しいクローラの作成を完了します。

  8. ナビゲーションペインで [Crawlers] (クローラ) を再度選択します。新しい legislator_crawler クローラの横にあるチェックボックスを選択して、[Run crawler] (クローラの実行) を選択します。

  9. ナビゲーションペインで、[Databases] (データベース) を選択します。legislators データベースを選択して、[Tables in legislators] (legislators のテーブル) を選択します。クローラが取得したメタデータを含む Data Catalog 内のクローラによって作成された 6 つのテーブルが表示されます。

Amazon S3 データの開発エンドポイントの作成

次に、Amazon S3 データの開発エンドポイントを作成します。JDBC データソースまたはターゲットを使用する場合は、開発エンドポイントを VPC で作成する必要があります。ただし、このチュートリアルで Amazon S3 にアクセスするのみの場合は必要ありません。

  1. AWS Glue コンソールで、[Dev endpoints (開発エンドポイント)] を選択します。[Add endpoint] (エンドポイントの追加) を選択します。

  2. demo-endpoint などのエンドポイント名を指定します。

  3. ETL ジョブ実行に使用する [IAM roleAWS Glue] (IAM ロール) と同様の権限を持つ IAM ロールを選択します。詳細については、「ステップ 2: AWS Glue 用にIAM ロールを作成する」を参照してください。[Next (次へ)] を選択します。

  4. [Networking] (ネットワーク) で、[Skip networking information] (ネットワーキング情報をスキップ) を選択したままにして、[Next] (次へ) を選択します。

  5. [SSH Public Key] (SSH パブリックキー) に、ssh-keygen などの SSH キー生成プログラムによって生成されたパブリックキーを入力します (Amazon EC2 キーペアは使用しないでください)。生成されたパブリックキーは、開発エンドポイントにインポートされます。対応するプライベートキーを保存し、後で SSH を使用して開発用エンドポイントに接続します。[Next (次へ)] を選択します。詳細については、Wikipedia の「ssh-keygen」を参照してください。

    注記

    Microsoft Windows でキーを生成する場合は、最新バージョンの PuTTYgen を使用して、PuTTYgen ウィンドウから AWS Glue コンソール内にパブリックキーを貼り付けます。RSA キーを生成します。パブリックキーを使用してファイルをアップロードしないでください。代わりに、[Public key for pasting into OpenSSH authorized_keys file] (OpenSSH authorized_keys ファイル内に貼り付けるパブリックキー) フィールドで生成したキーを使用します。PuTTY で対応するプライベートキー (.ppk) を使用して開発エンドポイントに接続します。Windows で SSH を使用して開発エンドポイントに接続するには、PuTTYgen の [Conversion] (変換) メニューを使用してプライベートキーを .ppk 形式から OpenSSH の .pem 形式に変換します。詳細については、「PuTTY を使用した Windows から Linux インスタンスへの接続」を参照してください。

  6. [Review] (確認) で、[Finish] (完了) を選択します。開発エンドポイントが作成されたら、プロビジョニングのステータスが [READY] (準備完了) になるのを待ちます。

出力に使用する Amazon S3 の場所の作成

バケットがない場合は、[Create a Bucket] (バケットの作成) の手順に従って、Amazon S3 にサンプル ETL スクリプトの出力を保存するバケットをセットアップできます。

VPC での開発エンドポイントの作成

このチュートリアルでは必要ありませんが、Amazon S3 データストアと JDBC データストアの両方に ETL ステートメントからアクセスする場合は、VPC 開発エンドポイントが必要です。この場合、開発エンドポイントの作成時に JDBC データストアを含む Amazon Virtual Private Cloud (Amazon VPC) のネットワークプロパティを指定します。始める前に、開発エンドポイント用の環境の設定 で説明されているように、環境をセットアップします。

  1. AWS Glue コンソールのナビゲーションペインで、[Dev endpoints (開発エンドポイント)] を選択します。次に、[Add endpoint] (エンドポイントの追加) を選択します。

  2. vpc-demo-endpoint などのエンドポイント名を指定します。

  3. ETL ジョブ実行に使用する [IAM roleAWS Glue] (IAM ロール) と同様の権限を持つ IAM ロールを選択します。詳細については、「ステップ 2: AWS Glue 用にIAM ロールを作成する」を参照してください。[Next (次へ)] を選択します。

  4. [Networking] (ネットワーキング) で、Amazon VPC、サブネット、およびセキュリティグループを指定します。この情報は、データリソースに安全に接続できる開発エンドポイントを作成するために使用されます。エンドポイントのプロパティを入力する際には、以下の提案を考慮します。

    • データストアへの接続をすでに設定している場合は、既存の接続から接続の詳細を取得し、エンドポイントの Amazon VPC、サブネット、およびセキュリティグループのパラメータを設定するために使用できます。それ以外の場合は、個別にこれらのパラメータを指定します。

    • Amazon VPC の [Edit DNS hostnames] (DNS ホスト名を編集) が [yes] (はい) に設定されていることを確認します。このパラメータは、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) で設定できます。詳細については、「VPC での DNS のセットアップ」を参照してください。

    • このチュートリアルでは、選択した Amazon VPC に Amazon S3 VPC エンドポイントがあることを確認してください。Amazon S3 VPC エンドポイントを作成する方法については、「Amazon S3 用の VPC エンドポイント」を参照してください。

    • 開発エンドポイントのパブリックサブネットを選択します。インターネットゲートウェイにルートを追加することにより、サブネットをパブリックサブネットにすることができます。IPv4 トラフィックの場合は、[Destination] (送信先) 0.0.0.0/0 ルートを作成し、インターネットゲートウェイ ID を [Target] (ターゲット) にします。サブネットのルートテーブルは、NAT ゲートウェイではなくインターネットゲートウェイに関連付けられている必要があります。この情報は、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) で設定できます。例:

      インターネットゲートウェイを使用したルートテーブルの例。

      詳細については、「インターネットゲートウェイのルートテーブル」を参照してください。インターネットゲートウェイを作成する方法については、「インターネットゲートウェイ」を参照してください。

    • インバウンドの自己参照ルールがあるセキュリティグループを選択したことを確認します。この情報は、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) で設定できます。例:

      自己参照のインバウンドルールの例。

      サブネットを設定する方法の詳細については、「開発エンドポイント用の環境の設定」を参照してください。

    [Next (次へ)] を選択します。

  5. [SSH Public Key] (SSH パブリックキー) に、SSH キー生成プログラムによって生成されたパブリックキーを入力します (Amazon EC2 キーペアは使用しないでください)。対応するプライベートキーを保存し、後で SSH を使用して開発用エンドポイントに接続します。[Next (次へ)] を選択します。

    注記

    Microsoft Windows でキーを生成する場合は、最新バージョンの PuTTYgen を使用して、PuTTYgen ウィンドウから AWS Glue コンソール内にパブリックキーを貼り付けます。RSA キーを生成します。パブリックキーを使用してファイルをアップロードしないでください。代わりに、[Public key for pasting into OpenSSH authorized_keys file] (OpenSSH authorized_keys ファイル内に貼り付けるパブリックキー) フィールドで生成したキーを使用します。PuTTY で対応するプライベートキー (.ppk) を使用して開発エンドポイントに接続します。Windows で SSH を使用して開発エンドポイントに接続するには、PuTTYgen の [Conversion] (変換) メニューを使用してプライベートキーを .ppk 形式から OpenSSH の .pem 形式に変換します。詳細については、「PuTTY を使用した Windows から Linux インスタンスへの接続」を参照してください。

  6. [Review] (確認) で、[Finish] (完了) を選択します。開発エンドポイントが作成されたら、プロビジョニングのステータスが [READY] (準備完了) になるのを待ちます。

これで、このセクションのチュートリアルを試す準備ができました。