Amazon MSK クラスターで、クロスアカウント AWS Glue ジョブをトラブルシューティングする方法を教えてください。

所要時間2分
0

複数の AWS アカウントにわたり、Amazon Managed Streaming for Apache Kafka (MSK) クラスターに接続する AWS Glue ジョブのエラーをトラブルシューティングしたいです。

解決策

AWS Glue ジョブが Amazon MSK クラスターに接続できることを確認してから、AWS Glue ジョブの認証方法をトラブルシューティングします。

クロスアカウントでの AWS Glue ジョブの接続を確認する

AWS Glue ジョブが Amazon MSK クラスターに接続できることを確認するには、次の手順を実行します。

  1. AWS Glue 接続のネットワークアクセスコントロールリスト (ネットワーク ACL) が、クロスアカウントの Amazon Virtual Private Cloud (Amazon VPC) にある Amazon MSK クラスターへのトラフィックを許可していることを確認します。
  2. Amazon MSK クラスターのセキュリティグループが Amazon MSK クラスターのブートストラップサーバーポートで AWS Glue 接続のサブネット CIDR を許可していることを確認します。
    **注:**AWS Glue 接続のセキュリティグループには、必要な TCP ポートに対する自己参照インバウンドルールが含まれている必要があります。
  3. Amazon MSK クラスターと、AWS Glue 接続の VPC またはサブネットの間の VPC ピア接続が正しく設定されていることを確認します。
  4. Reachability Analyzer を使用してコンポーネントが VPC 間の接続に干渉しているかどうかを確認します。
  5. AWS Glue 接続が使用するものと同じサブネットとセキュリティグループで Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動します。

AWS Systems Manager の機能である Session Manager、あるいは SSH クライアントを使用して EC2 インスタンスにログインします。次に、以下のクエリを実行します。

telnet example-bootstrap-server-hostname example-bootstrap-server-port  
nc -zv example-bootstrap-server-hostname example-bootstrap-server-port   
dig example-bootstrap-server-hostname

注: 上記のコマンドでは、例の値をお使いの値で置き換えてください。telnet がインストールされていない場合は、sudo yum install telnet -y を実行してインストールします。

出力に connected または connections established が含まれている場合、AWS Glue ジョブの接続は検証されています。

認証に関する問題のトラブルシューティング

AWS Glue 接続におけるブートストラップサーバーの URL を確認するには、次の手順を実行します。

  1. Amazon MSK からブートストラップブローカーを入手します
  2. AWS Glue コンソールを開きます。
  3. ナビゲーションペインの [データカタログ][接続] を選択します。または、ナビゲーションペインで [データ接続] を選択します。
  4. [接続] で該当する接続を選択し、[アクション] を選択します。
  5. ドロップダウンリストで [編集] を選択します。
  6. [接続アクセス] で、Kafka ブートストラップサーバーの URL が Amazon MSK コンソールの URL と一致することを確認します。
  7. URL が一致しない場合は、Amazon MSK クラスターが使用する認証方法に従って更新します。ブローカーの設定と一致するポート番号を使用します。
    TLS/SSL では、AWS 内でのアクセスにはポート 9094 を使用し、パブリックアクセスにはポート 9194 を使用します。
    SASL/SCRAM では、AWS 内でのアクセスにはポート 9096 を使用し、パブリックアクセスにはポート 9196 を使用します。
  8. [変更を保存] を選択します。

次に、Amazon MSK クラスターの認証方法に応じて次の手順を実行します。

SASL/SCRAM-SHA-512

AWS Secrets Manager を使用してユーザー名とパスワードを確認します。Secrets Manager を使用して認証情報を保存する場合は、AWS Glue 接続のサブネットが Secrets Manager のエンドポイントに到達できることを確認してください。

TLS/SSL クライアント認証

Kafka クライアントのキーストア証明書とキーストアのパスワードまたはキーパスワードを検証するには、次のコマンドを実行します。

keytool -list -v -keystore /pathtocert/kafka.client.keystore.jks -storepass 123456

出力に Amazon MSK クラスターが使用する AWS プライベート認証機関 (AWS プライベート CA) の証明書が含まれていることを確認します。

出力に証明書が含まれていない場合は、「クライアントを設定し、証明書を使用する」のステップ 5 ~ 11 を実行し、新しいキーストアを作成します。

重要: すべてのクライアントに対し、Amazon MSK クラスターが使用するものと同じプライベート証明書を使用して新しいキーストアを作成します。

証明書 kafka.client.keystore.jks を Amazon Simple Storage Service (Amazon S3) にアップロードします。次に、証明書の S3 パスを使用して AWS Glue Kafka 接続を設定します。

IAM 認証

AWS Glue ジョブの AWS Identity and Access Management (IAM) ロールに Amazon MSK クラスター用の正しい認証ポリシーがあることを確認します。

関連情報

Kafka 接続を作成する

AWS Glue で ETL ジョブをストリーミングする

AWS公式
AWS公式更新しました 1ヶ月前