JMDC TECH BLOG

JMDCのエンジニアブログです

AWSのVPCエンドポイント環境でDBeaverを活用!ドライバーの手動追加手順

はじめに

DBeaverは様々なデータベースに対応した汎用的なデータベース管理ツールです。
Amazon Athena(以降Athena)もDBeaverから接続し、クエリを実行することができます。

この記事では、通常の接続方法とは異なる、下記の特定条件での接続手順をまとめたものです。

  • インターネット接続が行えないセキュアな環境からDBeaverAthenaに接続したい
  • AWS Athena JDBC3.x系のドライバの機能を活用したい

※インターネット接続可能な環境の場合は、DBeaverデフォルトのAthenaドライバを利用して接続可能です。
 その場合は公式サイトの手順をご参照ください。

ぜひ読んでほしい方

  • Athena S3 STSのAWSサービスにVPCエンドポイントを指定して接続したいがうまくいかない。
  • DBeaverのデフォルト以外のドライバを追加して接続を行いたいが設定値がよくわからない。

アジェンダ

記事執筆のきっかけ

他チームから「インターネット接続不可な環境で、DBeaverからAthenaに接続を試みたが、VPCエンドポイントが指定できずうまくいかない。」という相談を受けたことがきっかけです。
最終的には、AWS公開のAthena JDBC 3.x系のドライバーを利用すれば接続できたのですが、DBeaverとAWS公式サイトのそれぞれの記事が断片的な情報だったため、包括した手順をまとめたら便利かと思い、この記事を書くことにしました。

この記事で実現する接続イメージ

DBeaverからvpc endpoint経由のAthen接続

動作環境

手順作成時の動作環境は以下の通りです。

  • DBeaver: 25.1.4
  • Java: openjdk version "21.0.5" 2024-10-15 LTS
  • Athena JDBCドライバー: 3.5.1 uber jar ※執筆時点(2025/10)では3.6.0 uber jarが最新

手順:DBeaverへのAthena JDBC 3.x ドライバーの手動追加

  1. 事前にAWS公式サイトから該当のドライバーをダウンロードして任意の場所に保存します。
     例. C:\Users\username\AppData\Roaming\DBeaverData\drivers\remote\athena-downloads\drivers\JDBC

  2. DBeaverのメニューバーから「データベース」>「ドライバーマネージャー」を選択します。

  3. 「ドライバーマネージャー」ウィンドウで「新規」ボタンを押下します。

  4. 「新しいドライバを作成する」ウィンドウの「設定」タブに、以下の重要な項目を入力します。

    • ドライバ名: (任意) Amazon Athena JDBC 3.x など分かりやすい名前
    • クラス名: com.amazon.athena.jdbc.AthenaDriver
    • URLテンプレート: jdbc:awsathena://
  5. 次に「ライブラリ」タブに切り替えます。

    • 「ファイルを追加」ボタンから、事前にダウンロードしておいたAthena JDBC 3.x系のjarファイルを指定します。
      • 例. athena-jdbc-3.5.1-with-dependencies.jar
    • jarファイルが追加されたら、「クラスを見つける」ボタンを押します。
    • リストに表示されたドライバクラス(com.amazon.athena.jdbc.AthenaDriver)を選択します。
    • 「OK」を押してドライバーの追加を完了します。
  6. 通常の「新しい接続」作成画面から、ここで作成したドライバ(例: Amazon Athena JDBC 3.x)を選択すると、ドライバのプロパティに指定できる項目が増えているので、VPCエンドポイントなどを考慮した接続設定を行ってください。

    設定例

    • AthenaEndpoint: Athena用VPCエンドポイントを指定
      • 例. vpce-999xxx-999xxx.athena.ap-xxxxx-9.vpce.amazonaws.com
    • CredentialsProvider: ProfileCredentialsconfigcredentialsを設定すれば接続可能(詳細は割愛)
    • ProfileName: default
    • S3Endpoint(任意): S3用VPCエンドポイントを指定
    • StsEndpoint(任意): STS用VPCエンドポイントを指定

    ※ AWS公式サイト 詳細接続パラメータ を参考に各自の環境に合わせて設定してください。

苦戦した部分とキーポイント

今回の設定にあたり、以下の点で苦戦しました。

  • 最初はクラス名の指定がよくわからず、2.x系のクラス名com.simba.athena.jdbc.Driverを指定していた。
  • すべてVPCエンドポイントを指定したつもりでも、認証方法の指定によって利用されないケースがあった。
  • 特定のマシンのみSSL関連のエラーが発生して接続できなかった。

キーポイント:クラス名の確認方法

クラス名についてはAWSの公式ドキュメントに記載があります。

また、ダウンロードした jar ファイルからクラス名を自力で探す場合、例えばPowerShellで以下のようなコマンドを実行して見つけることもできます。

# (コマンド例) jarファイル内のDriver.classファイルを探す
Add-Type -AssemblyName System.IO.Compression.FileSystem; $j=[System.IO.Compression.ZipFile]::OpenRead("C:\Users\username\Downloads\athena-jdbc-3.5.1-with-dependencies.jar"); $j.Entries|?{$_.Name-like"*Driver.class"}|%{$_.FullName.Replace("/",".").Replace(".class","")}; $j.Dispose()

おまけ:特定マシンのみエラーが発生する場合

他にもDBeaverのインストールに失敗したためか、特定のマシンのみSSL部分の認証に失敗して接続エラーとなる問題が発生しました。 この問題は、DBeaverインストールフォルダにある DBeaver.ini ファイルに、証明書ストアの場所を明記することで解決しました。

※ 下記手順はデフォルトのインストール場所のパスを明示的に指定しているだけなので通常は不要です。

DBeaverインストールフォルダ配下のcacertsにamazonに関する証明書が存在することを確認するコマンド例

 & "C:\Program Files\DBeaver\jre\bin\keytool" -list -cacerts -storepass changeit | Select-String -Pattern "amazon" -CaseSensitive

-vmargsより下に以下を明記

-Djavax.net.ssl.trustStore="C:\Program Files\DBeaver\jre\lib\security\cacerts"
-Djavax.net.ssl.trustStorePassword=changeit

※ 記載の値は一般的な例であるため各自環境に合わせて適宜置き換えてください。

まとめ(学び)

今回の調査と手順作成を通じて、以下のことを学びました。

  • DBeaverのドライバ手動追加を活用できれば不可能が可能になる。
  • DBeaverJavaで開発されているため、Javaの知識があるとトラブルシューティングに強い。
    • 筆者のようにJava知識に疎くても、今は生成AIを活用すればトラブルシューティングが可能である。
  • 急がば回れで答えは公式サイトに書いてある。

(参考) DBeaverでAthenaに接続するメリット

最後にDBeaverAthenaに接続するメリットとして、個人的に便利と思っている内容を紹介します。

  • GUIによる直感的な操作
    • GUIでSQL操作が行え、視覚的にデータベース構造を探索したり、テーブル定義を確認したりできます。
  • 生産性を高める支援機能
    • SQLエディタの補完機能やシンタックスハイライト、複数SQLの一括実行 などがあり、開発効率が向上します。
  • 柔軟なデータ操作
    • クエリ結果をDBeaver内で整形して確認できる だけでなく、SELECT結果をExcelなどにコピー&ペーストしやすく、CSV, JSON, XMLなど多様な形式で簡単にエクスポートできます。
  • 複数データベースの一元管理
    • Athenaだけでなく、RDS (PostgreSQL, MySQLなど)、RedshiftSnowflakeなど、他のデータベースもDBeaverで一元管理できます。
      弊社はAWS DBサービスを複数採用している環境であるため、ツールを一元化できるのは大きなメリットです。