Amazon Web Services ブログ

AWS CloudShell を使用して Amazon RDS for Db2 に接続する

本記事は 2025年6月10日 に公開された「Connect to Amazon RDS for Db2 using AWS CloudShell | AWS Database Blog」を翻訳したものです。

Amazon Relational Database Service (Amazon RDS) for Db2 インスタンスへの接続は、従来 Amazon Elastic Compute Cloud (Amazon EC2) の踏み台ホストを起動するか、ローカルで Db2 クライアントを実行する必要がありました。新しい AWS CloudShell の Virtual Private Cloud (VPC) 統合環境により、Amazon EC2 不要、ローカルインストール不要、通常の Amazon RDS と AWS ネットワーキング以外のコスト不要で、安全に接続できるようになりました。

この記事では、CloudShell を使用して Amazon RDS for Db2 に接続する方法を紹介します。

ソリューション概要

CloudShell には以下のメリットがあります:

  • ゼロコストクライアント – CloudShell は無料で、標準的なネットワークと Amazon RDS の料金のみ発生します
  • 同一サブネット – CloudShell セッションは VPC 内の RDS データベースと同じ場所に配置されるため、レイテンシーが最小限に抑えられます
  • Amazon EC2 不要 – 踏み台ホストのプロビジョニング、パッチ適用、管理が不要です
  • AWS CLI プリインストールAWS コマンドラインインターフェイス (AWS CLI) は CloudShell にデフォルトで設定されており、CloudShell はカスタム VPC ネットワーキングを完全にサポートしています

このソリューションは以下のステップで構成されています:

  1. VPC 内で CloudShell を起動する
  2. IBM Data Server Driver シンクライアントをダウンロードしてインストールする
  3. プレーンテキスト (TCP/IP) と SSL 接続の両方を設定する
  4. IBM の Command line processor plus (CLPPlus) で接続をテストする

前提条件

以下の前提条件が必要です:

  • VPC 内で到達可能な既存の RDS for Db2 インスタンス
  • Db2 ポート (デフォルト TCP 50000+ または SSL 50xxx) へのインバウンドアクセスを許可する VPC サブネットとセキュリティグループ
  • Amazon CloudShell へのアクセス

VPC 内で CloudShell を起動する

以下の手順で VPC 内で CloudShell を起動します:

  1. AWS マネジメントコンソールにサインインし、メニューバーで CloudShell を選択します。
  2. CloudShell ウィンドウで、Actions を選択し、Create VPC Environment を選択します。
  3. Name に名前を入力します (例: PRIVATE)。
  4. VPC で、RDS for Db2 データベースをホストしている VPC を選択します。
  5. Subnet で、Amazon RDS for Db2 インスタンスのアベイラビリティーゾーンのサブネット ID を選択します。
  6. Security group(s) で、TCP および SSL ポートのルールを含む最大 5 つを選択します。
  7. Create を選択します。

CloudShell がプライベートサブネット内で再起動します。

CloudShell セッションは 30 分間非アクティブ状態が続くとタイムアウトします。Db2 クライアントは単一のスクリプトインストールなので、再作成できます。(訳注:この Blog で紹介するスクリプトによる Db2 クライアントは非永続化領域に導入されるため、スクリプトの再実行が必要となります。)

Amazon RDS for Db2 用に AWS CloudShell で Db2 クライアントをインストールする方法

直接実行

curl -sL https://bit.ly/getdb2driver | bash

ダウンロードして実行

curl -sL https://bit.ly/getdb2driver -o db2-driver.sh
chmod +x db2-driver.sh
./db2-driver.sh
注: 上記の短縮 URL は https://aws-blogs-artifacts-public.s3.us-east-1.amazonaws.com/artifacts/DBBLOG-4900/db2-driver.sh を指しています。

上記のスクリプトは、AWS CloudShell を Amazon RDS for Db2 に接続するための準備を行います。

ツールの出力に表示される 2 つのコマンドを実行する必要があります。

DB2 インスタンスに接続するための DSN 作成プロセスを完了します:

  1. db2inst1 ユーザーに切り替えます: sudo su - db2inst1
  2. スクリプトを実行します: source db2-driver.sh

スクリプトは db2inst1 ユーザーで実行すると以下を行います:

  • Amazon RDS for Db2 インスタンスを一覧表示し、接続したいインスタンスを選択します
  • RDS for Db2 インスタンス内で検出されたデータベースを db2dsdriver.cfg ファイルにカタログ登録します
  • SSL が有効な場合、スクリプトは各データベースの SSL 接続も db2dsdriver.cfg ファイルに登録します

これで、db2 コマンドラインプロセッサを使用して RDSADMIN データベースに接続して管理タスクを実行したり、ユーザー定義データベースに接続して通常の Db2 アクティビティを実行したりできます。

Amazon EC2 インスタンスで同じスクリプトを実行して、Amazon RDS for Db2 インスタンスに接続するための Db2 クライアントをインストールすることもできます。Amazon EC2 を使用する利点は、AWS CloudShell とは異なり、クライアントが永続化されることです。(訳注:AWS CloudShell では、/home/cloudshell-user ディレクトリ以下は永続化されます。この Blog で紹介するスクリプトは、Db2 クライアントを /home/db2inst1 ディレクトリに導入するため、セッション切断後に削除されます。)

トラブルシューティング

curl コマンドを実行してスクリプトを直接実行し、スクリプトが何も出力しない場合は、VPC がインターネットアクセス用に適切に設定されていないことを示しています。スクリプトを正常に実行するには、インターネットアクセスが利用可能で、適切な IAM 権限があり、適切なサブネット ID を使用し、Db2 のインバウンドトラフィックが有効になっている適切なセキュリティグループが必要です。

スクリプトを実行するユーザーに適切な IAM 権限がない場合、スクリプトが失敗する可能性があります。以下のコマンドを使用して、スクリプトの実行に必要な権限を確認してください:

curl -sL https://bit.ly/getdb2driver | bash -s -- --check-permissions

または

./db2-driver.sh --check-permissions

Amazon Secrets Manager でマスターユーザーパスワードを使用している場合は、functions.sh で利用可能な get_master_user_password などのヘルパー関数を使用して、MASTER_USER_PASSWORD 環境変数を設定できます。スクリプト functions.sh は db2inst1 ユーザー用にインストールされ、利用可能になっています。

Amazon RDS for Db2 データベースへの接続に使用する名前がわからない場合は、CONN_HELP_README.txt ファイルを参照してください。このファイルには、Amazon RDS for Db2 に接続するための db2 コマンド構文が記載されています。

CloudShell は Amazon RDS for Db2 への迅速な接続を提供します。ただし、フルまたは軽量の Db2 クライアントインストールを使用するアプリケーションサーバーや Amazon EC2 インスタンスに必要な標準 Db2 クライアントの代わりにはなりません。

30 分間の非アクティブタイムアウトが発生した場合は、スクリプトを再度実行して RDS for Db2 データベースをインストールおよび登録し、再接続できます。

ツールの機能強化

このツールのソースコードは GitHub リポジトリで公開されています。機能強化のリクエストはイシューを作成するか、変更案をプルリクエストで送信してください。

まとめ

この記事では、わずか数コマンドで CloudShell 内で完全に Db2 コマンドラインプロセッサを Amazon RDS for Db2 に対して実行できることを紹介しました。EC2 インスタンスやローカルインストールは不要で、クリーンなサーバーレススタイルのワークフローを実現できます。ぜひご自身のユースケースでこのソリューションをお試しいただき、コメントでご意見をお聞かせください。また、Amazon EC2 インスタンスで同じスクリプトを複製して、Amazon RDS for Db2 インスタンスに接続するための Db2 クライアントをインストールすることもできます。

著者について

Vikram S KhatriVikram S Khatri は Amazon RDS for Db2 のシニア DBE です。Vikram は Db2 で 20 年以上の経験があります。ゼロから新製品を開発することを楽しんでいます。余暇には瞑想を実践し、ポッドキャストを聴くことを楽しんでいます。

Sumit KumarSumit Kumar は AWS のシニアソリューションアーキテクトで、複雑な問題を解決することを楽しんでいます。さまざまな業界のお客様が AWS クラウド上でワークロードを構築・設計するのを支援してきました。料理、チェス、家族との時間を楽しんでいます。

Rajib SarkarRajib Sarkar は Amazon RDS for Db2 のシニアデータベースエンジニアです。Rajib は Db2 で 20 年以上の経験があります。

Ashish SaraswatAshish Saraswat は Amazon RDS for Db2 のシニアソフトウェア開発エンジニアです。Ashish は 10 年以上のソフトウェア開発経験があります。


この記事は ソリューションアーキテクト の Hidehiko Yamane が翻訳しました。