AWSGlueでMySQLからデータを抽出し、S3にCSVを出力したい

実現したいこと

AWSGlueでMySQLからデータを抽出し、S3にCSVを出力したい

発生している問題・分からないこと

ジョブを実行するとエラーが発生して、ジョブが失敗する

エラーメッセージ

error

1Error Category: CONNECTION_ERROR; An error occurred while calling o104.getDynamicFrame. Communications link failure

該当のソースコード

Python3

1import sys 2from awsglue.transforms import * 3from awsglue.utils import getResolvedOptions 4from pyspark.context import SparkContext 5from awsglue.context import GlueContext 6from awsglue.job import Job 7 8args = getResolvedOptions(sys.argv, ["JOB_NAME"]) 9sc = SparkContext() 10glueContext = GlueContext(sc) 11spark = glueContext.spark_session 12job = Job(glueContext) 13job.init(args["JOB_NAME"], args) 14 15# Script generated for node MySQL 16MySQL_node1708173202540 = glueContext.create_dynamic_frame.from_options( 17 connection_type="mysql", 18 connection_options={ 19 "useConnectionProperties": "true", 20 "dbtable": "dev.testdata", 21 "connectionName": "コネクション名", 22 }, 23 transformation_ctx="MySQL_node1708173202540", 24) 25 26# Script generated for node Amazon S3 27AmazonS3_node1708173378512 = glueContext.write_dynamic_frame.from_options( 28 frame=MySQL_node1708173202540, 29 connection_type="s3", 30 format="csv", 31 connection_options={"path": "s3://バケット名", "partitionKeys": []}, 32 transformation_ctx="AmazonS3_node1708173378512", 33) 34 35job.commit() 36

試したこと・調べたこと

上記の詳細・結果

色々調べて、以下の内容は確認しました。
①IAMロール
アタッチしているポリシーは以下のとおりです。
AmazonRDSFullAccess
AmazonS3FullAccess
AWSGlueConsoleFullAccess
AWSGlueServiceRole
※中身は変えていません。
②セキュリティグループ
インバウンドルール
すべてのトラフィック:自己参照(自身のセキュリティグループ ID)
すべての TCP:自己参照(自身のセキュリティグループ ID)
MYSQL/Aurora:ポート3306:自己参照(自身のセキュリティグループ ID)
アウトバウンドルール
すべてのトラフィック:0.0.0.0/0
※GlueとRDSは同じセキュリティグループにしてあります。
③Glueのコネクション設定
MariaDBのJDBCを選択
JDBCのURLを変更
変更前:jdbc:mariadb://RDSのエンドポイント:3306/dev
変更後:jdbc:mysql://RDSのエンドポイント:3306/dev?enabledTLSProtocols=TLSv1.2
テスト接続OK
④ジョブ
データソースにクローリングしたデータカタログ(dev.testdataテーブル)を指定
ターゲットにS3のバケットを指定(出力フォーマットはCSV)
※データソースの指定方法にJDBCとデータカタログがあったので、JDBCの方も試しましたが、同じエラーでした。
※逆にS3に置いたCSVファイルをMySQLに取り込むジョブも作成しましたが同じエラーでした。
⑤VPCのエンドポイント
S3のエンドポイントとRDSのエンドポイントは作成しています。

補足

特になし

コメントを投稿

0 コメント