IBM Db2 データベースで Amazon S3 への DB2 ログアーカイブを直接有効にする - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IBM Db2 データベースで Amazon S3 への DB2 ログアーカイブを直接有効にする

Amazon Web Services、Ambarish Satarkar

概要

このパターンでは、ステージングエリアを使用せずに、Amazon Simple Storage Service (Amazon S3) を IBM Db2 によって生成されたアーカイブログのカタログストレージとして使用する方法について説明します。

DB2REMOTE Amazon S3 ストレージを logarchmeth1 および logarchmeth2 ログアーカイブメソッド設定パラメータ用に指定できます。logarchmeth1 パラメータを使用して、現在のログパスからアーカイブされるログのプライマリ送信先を指定できます。この機能を使用すると、ステージングエリアを使用せずに、トランザクションログを Amazon S3 との間で直接アーカイブおよび取得できます。

Amazon S3 は、アップロードされたデータを単一の AWS リージョンにある少なくとも 3 つのデバイスに保存します。高可用性、柔軟なストレージオプション、ライフサイクルポリシー、セキュリティを備えているため、あらゆる規模や業界の何百万ものお客様が Amazon S3 を使用してエンタープライズバックアップを保存しています。

前提条件と制限事項

前提条件

  • アクティブ AWS アカウント。

  • IBM Db2 データベースが、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス上で実行されていること。

  • AWS Command Line Interface (AWS CLI) がインストールされている

  • libcurllibxml2 が Db2 EC2 インスタンスにインストールされていること。

制限事項

  • Db2 11.5.7 以降でのみ Amazon S3 ストレージへのログの直接アーカイブが可能です。

  • 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。利用可能なリージョンについては、「AWS サービス (リージョン別)」を参照してください。特定のエンドポイントについて確認するには、「Service endpoints and quotas」を参照し、サービスのリンクを選択してください。

  • すべての設定で、Amazon S3 には次の制限があります。

    • AWS Key Management Service (AWS KMS) はサポートされていません。

    • AWS ロールベースの認証情報 (AWS Identity and Access Management (IAM)) またはトークンベースの認証情報 (AWS Security Token Service (AWS STS)) はサポートされていません。

製品バージョン

  • AWS CLI バージョン 2 以降

  • IBM Db2 11.5.7 以降

  • Linux SUSE Linux Enterprise Server (SLES) 11 以降

  • Red Hat Enterprise Linux (RHEL) 6 以降

  • Windows Server 2008 R2、2012 (R2)、2016、または 2019

アーキテクチャ

次の図は、このパターンのコンポーネントとワークフローを示しています。

Db2 によって生成されたアーカイブログのカタログストレージに Amazon S3 を使用するワークフロー。

のアーキテクチャには、次のもの AWS クラウド が含まれます。

  • Virtual Private Cloud (VPC) – リソースを起動 AWS クラウド する の論理的に隔離されたセクション。

  • アベイラビリティーゾーン – AWS リージョン内の分離されたデータセンターで Db2 LUW (Linux、Unix、Windows) ワークロードを実行することにより、高可用性を実現します。

  • パブリックサブネット – 管理者用の RDP (リモートデスクトッププロトコル) アクセスと、NAT ゲートウェイを介したインターネット接続を提供します。

  • プライベートサブネット – Db2 LUW データベースをホストします。Db2 LUW インスタンスは LOGARCHMETH1 パラメータで設定されます。パラメータは、ゲートウェイエンドポイントを経由して Amazon S3 パスにデータベースログファイルを直接書き込みます。

以下がサポート AWS のサービス を提供します。

  • Amazon S3 – Db2 ログアーカイブファイル用の、耐久性の高いスケーラブルなストレージの場所として機能します。

  • Amazon Elastic File System (Amazon EFS) – Db2 がデータベースのバックアップとステージングに使用できる共有のフルマネージドファイルシステムを提供します。Db2 は Amazon EFS を、ログファイルが Amazon S3 にアーカイブされる前のマウントポイントとして使用することもできます。

  • Amazon CloudWatch – Db2 および基盤となる EC2 インスタンスからメトリクス、ログ、イベントを収集してモニタリングします。CloudWatch を使用して、パフォーマンスや可用性の問題に対するアラーム、ダッシュボード、自動応答を作成できます。

自動化とスケール

  • このパターンは、Db2 ログアーカイブのバックアップを保存するための完全に自動化されたソリューションを提供します。

  • 同じ Amazon S3 バケットを使用して、複数の Db2 データベースのログアーカイブを有効にすることができます。

ツール

AWS のサービス

  • Amazon CloudWatch は、 AWS リソースと で実行しているアプリケーションのメトリクスを AWS リアルタイムでモニタリングするのに役立ちます。

  • AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンド AWS のサービス を使用して を操作するのに役立つオープンソースツールです。

  • Amazon Elastic Compute Cloud (Amazon EC2) は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。仮想サーバーを必要な数だけ起動して、迅速にスケールアップまたはスケールダウンができます。

  • Amazon Elastic File System (Amazon EFS) は、 AWS クラウドでの共有ファイルシステムの作成と設定に役立ちます。

  • AWS IAM アイデンティティセンター を使用すると、すべての AWS アカウント およびクラウドアプリケーションへのシングルサインオン (SSO) アクセスを一元管理できます。

  • Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークに AWS リソースを起動するのに役立ちます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、 AWSのスケーラブルなインフラストラクチャを使用できるという利点があります。

その他のツール

  • libcurl は、クライアント側の無料の URL 転送ライブラリです。

  • libxml2 は無料の XML C パーサーおよびツールキットです。

ベストプラクティス

エピック

タスク説明必要なスキル

をセットアップします AWS CLI。

をダウンロードしてインストール AWS CLIするには、次のコマンドを使用します。

i) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ii) unzip awscliv2.zip iii) sudo ./aws/install
AWS システム管理者、AWS システム管理者

AWS CLIを設定します。

を設定するには AWS CLI、次のコマンドを使用します。

$ aws configure AWS Access Key ID [None]:******************************* AWS Secret Access Key [None]: *************************** Default region name [None]: < aws region > Default output format [None]: text
AWS システム管理者、AWS システム管理者

IAM ユーザーを作成する。

後で Amazon S3 との Db2 データベース接続に使用する IAM ユーザーを作成するには、次のコマンドを実行します。

aws iam create-user --user-name <unique username>

このコマンドの例を次に示します。

aws iam create-user --user-name db_backup_user

警告

このシナリオでは、プログラムによるアクセスと長期的な認証情報を持つ IAM ユーザーが必要です。これはセキュリティ上のリスクをもたらします。このリスクを軽減するために、これらのユーザーにはタスクの実行に必要な権限のみを付与し、不要になったユーザーを削除することをお勧めします。アクセスキーは、必要に応じて更新できます。詳細については、IAM ドキュメントの「AWS セキュリティ認証情報」および「IAM ユーザーのアクセスキーを管理します。」を参照してください。

AWS システム管理者

Amazon S3 バケットを作成する。

データベースバックアップを保存するための Amazon S3 バケットを作成するには、次のコマンドを実行します。

aws s3api create-bucket --bucket <unique bucket name> --region <aws region>

コマンドの例を次に示します。

aws s3api create-bucket --bucket myfirstbucket --region af-south-1

AWS システム管理者

IAM ユーザーを承認する。

新しく作成した IAM ユーザーに Amazon S3 アクセス権限を付与するには、次の手順を実行します。

  1. Amazon S3 バケット用の新しい IAM ポリシーファイル db2bucket.json を生成するには、次のコマンドを実行します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::myfirstbucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::myfirstbucket/*" ] } ] }
  2. db2bucket.json ファイルに基づいて IAM ポリシーを作成します。JSON 出力には、ポリシー ("Arn": "arn:aws:iam::111122223333:policy/db2s3policy") の Amazon リソースネーム (ARN) が表示されます。

    aws iam create-policy \ --policy-name db2s3policy \ --policy-document file://db2bucket.json
  3. ポリシー ARN を使用して、IAM ポリシーを IAM ユーザーにアタッチします。

    aws iam attach-user-policy --user-name db_backup_user --policy-arn "arn:aws:iam::111122223333:policy/db2s3policy"
AWS システム管理者、AWS システム管理者

アクセスキーを作成する。

DB2 インスタンスから Amazon S3 にプログラムでアクセスするためのアクセスキーを生成するには、次のコマンドを実行します。

aws iam create-access-key --user-name <username>

このコマンドの例を次に示します。

aws iam create-access-key --user-name db_backup_user

警告

このシナリオでは、プログラムによるアクセスと長期的な認証情報を持つ IAM ユーザーが必要です。これはセキュリティ上のリスクをもたらします。このリスクを軽減するために、これらのユーザーにはタスクの実行に必要な権限のみを付与し、不要になったユーザーを削除することをお勧めします。アクセスキーは、必要に応じて更新できます。詳細については、IAM ドキュメントの「AWS セキュリティ認証情報」および「IAM ユーザーのアクセスキーを管理します。」を参照してください。

AWS システム管理者

PKCS キーストアを作成する。

キーを保存するための PKCS キーストアを作成し、データを Amazon S3 に転送するためのシークレットアクセスキーを作成するには、次のコマンドを実行します。

gsk8capicmd_64 -keydb -create -db "/db2/db2<sid>/.keystore/db6-s3.p12" -pw "<password>" -type pkcs12 -stash
AWS システム管理者

キーストアを使用するように DB2 を設定する。

keystore_location および keystore_type パラメータでキーストアを使用するように DB2 を設定するには、次のコマンドを実行します。

db2 "update dbm cfg using keystore_location /db2/db2<sid>/.keystore/db6-s3.p12 keystore_type pkcs12"
AWS システム管理者

DB2 ストレージアクセスエイリアスを作成する。

ストレージアクセスエイリアスには、使用する Amazon S3 バケットが指定されます。また、暗号化された形式でローカルキーストアに保存されているユーザー名とパスワードなどの接続の詳細情報も指定されます。詳細については、IBM Db2 ドキュメントの「CATALOG STORAGE ACCESS command」を参照してください。

ストレージアクセスエイリアスを作成するには、以下の構文を使用します。

db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> user '<access_key>' password '<secret_access_key>' container '<bucket_name>'"

以下はその例です。

db2 "catalog storage access alias DB2BKPS3 vendor S3 server s3.us-west-2.amazonaws.com user '*******************' password '*********************' container 'myfirstbucket'"
AWS システム管理者
タスク説明必要なスキル

LOGARCHMETH1 の場所を更新する。

前に定義したストレージアクセスエイリアスを使用するには、LOGARCHMETH1 データベースパラメータを更新し、次のコマンドを実行します。

db2 update db cfg for <DBNAME> using LOGARCHMETH1 'DB2REMOTE://<storage_alias_name>//<sub folder>'

ログを他のファイルから分離するには、S3 バケット内のログを保存するためのサブディレクトリ (Amazon S3 バケットのプレフィックス) TESTDB_LOGS を指定します。

以下はその例です。

db2 update db cfg for ABC using LOGARCHMETH1 'DB2REMOTE://DB2BKPS3//TESTDB_LOGS/'

次のメッセージが表示されます。DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

AWS システム管理者

DB2 を再起動する。

ログアーカイブ用に DB2 インスタンスを再設定した後、DB2 インスタンスを再起動します。

ただし、LOGARCHMETH1 が以前にファイルシステムの場所に設定されている場合は、再起動の必要はありません。

AWS 管理者、AWS システム管理者
タスク説明必要なスキル

Amazon S3 のアーカイブログを確認する。

この時点で、データベースはトランザクションログを Amazon S3 ストレージに直接アーカイブするように完全に設定されています。設定を確認するには、データベースでトランザクションアクティビティの実行を開始し、ログスペースの利用 (およびアーカイブ) を開始します。次に、Amazon S3 のアーカイブログを確認します。

AWS 管理者、AWS システム管理者

db2diag.log のアーカイブログ設定を確認する。

Amazon S3 のアーカイブログを確認したら、DB2 診断ログ db2diag.log で次のメッセージを探します。

MESSAGE : ADM1846I  Completed archive for log file "S0000079.LOG" to Completed archive for log file S0000080.LOG to DB2REMOTE://<AWS S3 Bucket Name>/<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/. MESSAGE : ADM1846I  Completed archive for log file "S0000080.LOG" to Completed archive for log file S0000081.LOG to DB2REMOTE://<AWS S3 Bucket Name> /<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/.

このメッセージは、閉じた DB2 トランザクションログファイルが (リモート) Amazon S3 ストレージにアーカイブされていることを確認するものです。

AWS システム管理者

関連リソース

AWS サービスドキュメント

IBM リソース