DEA / ドメイン1 データの取り込みと変換

データソースへの接続 (JDBC/ODBC と許可リスト)

データパイプラインは、、のデータベース、他社のデータベース、 など、さまざまな場所からデータを読みます。データベースへの接続では、ドライバーの規格 (/ODBC) と、ネットワークの到達経路、接続元の許可 (やファイアウォールの許可リスト) の3つがそろって初めてつながります。DEA では、接続できない原因の切り分けと、許可リストに登録する アドレスの作り方が問われます。

Point
  • JDBC = Java Database Connectivity は、Java (と Spark など JVM 上の処理) からデータベースへ接続する標準の API です。
  • ODBC = Open Database Connectivity は、言語に依存しない接続の標準で、BI ツールや Excel などで使います。
  • 許可リスト (allowlist) は、接続を許す送信元の IP アドレスなどの一覧です。以前はホワイトリストと呼ばれていました。
  • 和訳

概要

概要の図 JDBC 送信元は Elastic IP VPN・Direct Connect Glue ジョブプライベートサブネット RDS同じ VPC NAT ゲートウェイElastic IP 社外のデータベース許可リストに EIP を登録 オンプレミスの DB S3 ゲートウェイエンドポイント S3
必要なもの内容
ドライバーと接続文字列 の URL (jdbc:mysql://ホスト:3306/db など)、ODBC のデータソース
認証情報ユーザー名とパスワード ( で保管)、 認証
ネットワークの経路同じ 、、、、、 経由のインターネット
接続元の許可送信先の、ネットワーク 、社外のファイアウォールの許可リスト

主要技術

①JDBC と ODBC

規格主な利用者AWS での例
Java、Scala、 (、)Glue の JDBC 接続で ・・の DB を読む。Redshift や の JDBC ドライバー
ODBC ツール、Excel、Python (pyodbc) などAthena や Redshift の ODBC ドライバーで BI ツールから問い合わせる

Glue ジョブや EMR は JDBC でデータベースを読み書きします。BI ツールから Athena や Redshift へ問い合わせるときは、それぞれのサービスが提供する JDBC/ODBC ドライバーを使います。JDBC で接続できないデータソースには、Glue のカスタムコネクタや のコネクタを使います。


②AWS Glue の接続 ⚠️ 頻出

の接続 (Connection) は、データストアへの接続情報 ( の URL、認証情報、・・) をまとめたものです。ジョブやに接続を付けると、Glue は指定したサブネットに (ネットワークインターフェイス) を作り、そこからデータストアへ接続します。

要件内容
自己参照のインバウンドルールGlue のコンポーネント同士が通信するため、接続に付けるセキュリティグループに、同じセキュリティグループを送信元とする全 のインバウンドルールが必要
データベース側の許可DB のセキュリティグループで、Glue のセキュリティグループからの DB のポートを許可
への経路ENI はプライベート だけを持つため、S3 へは S3 のゲートウェイ VPC か ゲートウェイが必要
サブネットの IP アドレスワーカーの数だけ IP アドレスを使う。サブネットの空きが足りないとジョブが失敗する
認証情報 のシークレットを参照できる

⚠️ 頻出: 「Glue ジョブに VPC 内の への接続を追加したら、S3 の読み書きができなくなった」は、S3 のゲートウェイエンドポイント (または NAT ゲートウェイ) がないことが原因です。「接続のテストが失敗する」は、自己参照のルールや DB 側のセキュリティグループを確かめます。


③許可リストのための固定の送信元 IP ⚠️ 頻出

社外のデータベースや が「接続元の アドレスを許可リストに登録してほしい」と求める場合、AWS 側の送信元 IP を固定する必要があります。

構成送信元 IP許可リストに登録するもの
の / → ゲートウェイ → インターネットNAT ゲートウェイの その Elastic IP
に接続しない LambdaAWS が管理する変動する IP固定できないため、VPC に接続して NAT ゲートウェイを通す
の DB へ ・VPC のプライベート IPジョブを動かすの

Glue ジョブや VPC 内の Lambda はパブリック IP を持たないため、インターネット上のデータベースへ出るには NAT ゲートウェイを通ります。NAT ゲートウェイに割り当てた Elastic IP は変わらないので、相手の許可リストに登録できます。

③許可リストのための固定の送信元 IP ⚠️ 頻出の図 Lambda・Glueプライベートサブネット NAT ゲートウェイパブリックサブネットElastic IP: 固定 インターネットゲートウェイ 社外の DB許可リスト: Elastic IP

④AWS サービスからの接続を許可する

場面許可の方法
→ パブリックアクセス可能な Redshift ので、そのの Firehose の アドレス範囲を許可
→ 内の /RedshiftQuick Sight の VPC 接続を作り、セキュリティグループで許可
→ ソース DBインスタンスの IP やセキュリティグループを許可
→ VPC 内の RDSLambda のセキュリティグループを送信元として、DB のセキュリティグループで許可

同じ VPC の中では、IP アドレスではなく、送信元のセキュリティグループを指定して許可するのが基本です。IP は変わりますが、セキュリティグループの参照は変わりません。


⑤他の VPC やオンプレミスへの到達経路

接続先経路
同じアカウントの別の 、 (とも設定)
他アカウントのサービス (サービス)
のデータセンター、
AWS サービスの (、)ゲートウェイ VPC エンドポイント
その他の AWS サービスの API (、、 など)インターフェイス VPC エンドポイント

Glue の接続でオンプレミスの DB を読むには、ジョブのからオンプレミスへのルートと、オンプレミス側のファイアウォールでサブネットの を許可することが必要です。 名で接続するなら、名前解決 ( Resolver のエンドポイントなど) も必要です。


⑥接続できないときの切り分け

症状確かめること
タイムアウトルート (、ピアリング、)、、ネットワーク 、相手のファイアウォールの許可リスト
接続拒否ポート番号、DB が起動しているか、DB 側の
認証エラーユーザー名とパスワード、シークレットの値、 認証の設定
名前解決できない の の設定、の DNS との連携
だけ失敗するS3 のゲートウェイまたは NAT ゲートウェイ

試験対策

①判断マトリクス

問題文のキーワード選ぶ対処
社外の DB が接続元 の登録を求める ゲートウェイの を許可リストに登録
外の から固定 IP で出たいLambda を VPC に接続し NAT ゲートウェイ経由に
ジョブが VPC 内の を読めない自己参照のインバウンドルール、DB ので許可
Glue ジョブが接続を付けたら に届かないS3 のゲートウェイ VPC
Glue ジョブがの IP 不足で失敗大きなサブネット、ワーカー数の調整
ツールから / へ/ODBC ドライバー
JDBC で接続できないデータソースGlue のカスタムコネクタ、Marketplace のコネクタ
の DB を Glue で読む / + Glue の JDBC 接続
DB のパスワードをコードに書かない を Glue の接続から参照

②よくある誤答

  • 内のリソースの許可に、変わり得るプライベート を直接書くこと。を参照します。
  • VPC に接続しない の送信元 IP を許可リストに登録しようとすること。固定されません。
  • だけでから外へ出られると考えること。 ゲートウェイが必要です。
  • 接続の問題を の権限だけで解決しようとすること。ネットワークの経路と許可も必要です。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください