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

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

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

Ambarish Satarkar、Amazon Web Services

概要

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

logarchmeth1 および logarchmeth2 ログアーカイブメソッド設定パラメータに DB2REMOTE Amazon S3 ストレージを指定できます。 https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth2-secondary-log-archive-methodlogarchmeth1 パラメータを使用して、現在のログパスからアーカイブされるログのプライマリ送信先を指定できます。この機能を使用すると、ステージングエリアを使用せずに、Amazon S3 との間でトランザクションログを直接アーカイブおよび取得できます。

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

前提条件と制限

前提条件

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

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

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

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

機能制限

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

  • 一部の AWS のサービス は では使用できません AWS リージョン。リージョンの可用性については、AWS 「リージョン別のサービス」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」を参照して、サービスのリンクを選択します。

  • すべての設定で、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 クラウド する の論理的に隔離されたセクション。

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

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

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

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

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

  • Amazon Elastic File System (Amazon EFS) – Db2 がデータベースのバックアップとステージングに使用できる共有フルマネージドファイルシステムを提供します。Db2 は、ログファイルが Amazon S3 にアーカイブされる前のマウントポイントとして 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 Identity Center を使用すると、すべての 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 バケットdb2bucket.jsonの新しい IAM ポリシーファイルを生成するには、次のコマンドを使用します。

    { "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 出力には、ポリシー の Amazon リソースネーム (ARN) が表示されます"Arn": "arn:aws:iam::111122223333:policy/db2s3policy"

    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 コマンド」を参照してください。

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

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>'

ログを他のファイルから分離するには、SAmazon S3S3 バケットプレフィックス) を指定します。 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 リソース