Amazon Web Services ブログ
SSM と nZDT を使用した SAP HANA DB HA構成 パッチ適用自動化
はじめに
SAP HANA データベースを最新のパッチで常に最新の状態に保つことは、セキュリティ、パフォーマンス、信頼性を維持するために非常に重要です。しかし、従来のデータベースパッチ適用では、多くの場合、大幅なダウンタイムが必要となり、ビジネスオペレーションに影響を与えます。以前の AWS ガイダンスでは、さまざまな自動化(英語)アプローチを取り上げましたが、この投稿では、ネイティブ AWS サービスを使用して高可用性 SAP HANA データベースのほぼゼロダウンタイムを実現する新しいソリューションを紹介します。
AWS Systems Manager と AWS CloudFormation を使用して、Red Hat Enterprise Linux (RHEL) と SUSE Linux Enterprise Server (SLES) の両方の環境で SAP HANA データベースパッチ適用を自動化する方法を紹介します。
このアプローチの利点
この AWS ネイティブツールアプローチを使用することで、重要な運用機能とセキュリティ機能を統合ソリューションに組み込み、SAP HANA データベースのメンテナンスを改善します。AWS Systems Manager は中央コマンドセンターとして機能し、更新プロセス全体を通じてリアルタイムモニタリング、詳細なログ記録、自動化されたヘルスバリデーションを提供します。このソリューションは、運用保証のためのロールバック機能を維持しながら、プライマリノードとセカンダリノード間の更新をインテリジェントに調整します。サードパーティツールの必要性を排除することで、ライセンスコストを削減するだけでなく、暗号化された通信や包括的な監査証跡を含むネイティブ AWS サービス統合の恩恵を受けることができます。単一の AWS Systems Manager コンソールを通じて管理されるこの統合アプローチは、組み込みのセキュリティとコンプライアンス制御を備えたエンタープライズスケールのデータベースメンテナンスを提供します。
前提条件
HA 構成で HANA データベース (HDB) を更新するためにこのコードを使用する前に、以下の前提条件を満たす必要があります:
- Amazon EC2 インスタンス上で高可用性モードで実行されている、事前設定済みの SAP HANA 2.0+ データベース環境。このブログでは初期セットアップについては説明しませんが、AWS Launch Wizard を使用して SAP HANA などの SAP ワークロードのデプロイと設定を自動化することをお勧めします。また、設定に関するサポートが必要な場合は、SAP on AWS のドキュメントをご活用ください。
- SAP HANA データベース EC2 インスタンスが AWS Systems Manager によって管理されていることを確認してください。自動化ソリューションは Systems Manager の機能を活用してシームレスな管理と運用を実現するため、これは不可欠です。
- 自動化のために中央または共有サービスアカウントを活用している場合(AWS のベストプラクティスとして推奨)、続行する前に適切なクロスアカウント権限が設定されていることを確認してください。詳細については、このリンクを参照してください。
- AWS Systems Manager の自動化は、Amazon S3 メディアファイルを EC2 インスタンスの /tmp ディレクトリに同期します。自動化を実行する前に、この一時ディレクトリに十分なストレージスペースがあることを確認してください。必要なスペースの量は、実行する更新のファイルサイズによって異なります。
- SAP HANA データベース EC2 インスタンスに、キーと値のペア「Hostname: <hostname>」のタグを追加してください。後のステップでソリューションを実行する際に、このホスト名の値が必要になります。
アーキテクチャ図
アーキテクチャ図(図 1)は、AWS Systems Manager Automation Documents、SAP HANA パッチインストールメディアを含む Amazon S3 バケット、および AWS Secrets Manager に保存された重要なパラメータを使用したソリューションを示しています。SAP HANA ワークロードは、AWS アカウント内の Amazon EC2 インスタンス上で実行されます。

図 1 – HANA DB HA クラスター
実行の準備
- SAP HANA SYSTEMDB に、データベース更新を実行するための十分な権限を持つユーザーアカウントを設定します。このユーザーは自動化プロセスで参照されるため、アップグレードを進める前に、アカウントに必要なすべての認可があることを確認することが重要です。SAP HANA データベースユーザー権限を設定する際は、最小権限の原則に従うことを強くお勧めします。詳細については、更新用の低権限データベースユーザーの作成を参照してください。
- SAP HANA データベースインスタンスが、SAP HANA パッチインストールメディアを含む Amazon S3 バケットにアクセスするために必要な権限を持っていることを確認してください。EC2 インスタンスへの IAM ポリシーの作成とアタッチに関する詳細な手順については、AWS IAM ユーザーガイドの IAM ロールの操作を参照してください。スニペット 1 は、アカウント内の特定の IAM ロールに S3 バケットからファイルをダウンロードするために必要な権限を付与する方法を示すサンプルポリシーです。環境に応じて、バケット名とロール名(黄色でハイライト表示)を必ず変更してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{account_id}:role/service-role/{ec2_role}"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::{bucket_name}/*", "arn:aws:s3:::{bucket_name}"
]
}
]
}
スニペット 1 – S3 バケットポリシー
3. 自動化は、SAP HANA データベース認証情報を取得するために AWS Secrets Manager に依存しています。AWS Secrets Manager を使用すると、同じ AWS アカウントまたは異なる AWS アカウント間でシークレットを共有できます。この機能により、シークレット管理を単一の場所に集中化できます。詳細については、AWS アカウント間で AWS Secrets Manager のシークレットを共有する方法を参照してください。AWS Secrets Manager で必要なシークレット(sapadm ユーザーパスワードと SYSTEM ユーザーパスワード)を作成し、ターゲット AWS アカウントがこれらのシークレットにアクセスするための適切な権限を設定していることを確認してください。
4. 機密情報への安全なクロスアカウントアクセスを可能にするために、このソリューションは AWS KMS 暗号化を使用した AWS Secrets Manager を使用します。暗号化されたシークレットは、すべての参加 AWS アカウントからアクセス可能な KMS キーによって保護されている必要があります。クロスアカウントシークレットアクセスの設定に関する詳細なガイダンスについては、ドキュメントを参照してください。
コードの実行方法
以下の手順に従って、この GitHub リポジトリに含まれるコードを使用して、HANA データベースを更新してください。
- HANA データベースがある同じアカウントの AWS Secrets Manager に必要なシークレットを作成します。参考として、図 2 に設定方法のサンプルシークレットを示しています。この例は、自動化が正しく機能するために必要な形式とキーと値のペアを示しています。実際の認証情報を使用しながら、シークレットが同様の構造に従っていることを確認してください。

図 2 – DB 認証情報のシークレット例
2. 更新ファイルの保存場所として機能する S3 バケットを確立します。
3. CloudFormation スタック作成ガイドを使用してソリューションをデプロイします。リポジトリの cloudformation フォルダー内にある以下の 2 つのファイルを参照してください:
- hana_db_patch_ha_rhel – RHEL システムで HA 用に設定されたデータベースに使用します。これにより、はじめにで説明した nZDT コンセプトが実現されます。
- hana_db_patch_ha_suse – SUSE システムで HA 用に設定されたデータベースに使用します。これにより、はじめにで説明した nZDT コンセプトが実現されます。
4. Systems Manager > Documents > 「Owned by me」タブを選択 > 「patch」を検索して、該当するドキュメントを開きます:
5. 右上隅の「Execute automation」を選択します:
6. 必要な入力パラメータを入力します:
7. 下にスクロールして「Execute」を選択します。
8. 正常に完了すると、図 6 のような完了メッセージが表示されます。
実行フロー
以下に、この自動化によって実行されるすべてのステップとその詳細を示すフローチャートを示します。
「フローチャート 1」に示されているステップは順次実行されます。いずれかのステップが失敗すると、プロセス全体が直ちに停止します。
エラーが発生した場合は、このブログのトラブルシューティングセクションを参照して、続行する前に問題を診断して解決してください。
トラブルシューティング
自動化の問題を監視および診断するために、AWS Systems Manager は EC2 インスタンスと CloudWatch Logs の両方に詳細な実行ログを保持します。これらのログは、自動化の段階的な進行状況をキャプチャします。
自動化ステータスの監視: Systems Manager の自動化のステータスを確認するには:
- AWS Systems Manager コンソールを開きます。
- 左側のナビゲーションペインで、Automation を選択します
- Configure preferences > Executions を選択します
- Automation executions セクションで自動化ステータスを表示します
実行の詳細の確認: AWS マネジメントコンソールでは、各自動化実行を詳細に調べることができます。以下のことが可能です:
- 個々の自動化ステップをナビゲートする
- 各ステップの結果を確認する
- 自動化プロセス中に発生した障害を特定する
ログを使用したトラブルシューティング: 自動化ログにアクセスする方法は 2 つあります:
- EC2 インスタンスログ
- パス: /var/lib/amazon/ssm/{instance-id}/document/orchestration/{automation_step_execution_id}/awsrunShellScript/0.awsrunShellScript – EC2 インスタンスからの詳細な実行ログが含まれます
- パス: /tmp/hana/patch – パッチ手順に使用されるファイルが含まれます
- パス: /tmp/update – 更新コマンドを実行するための認証情報が含まれます
- CloudWatch Logs 統合
- Systems Manager を設定して、自動化出力を Amazon CloudWatch Logs に送信できます
- セットアップ手順については、[Run Command 用の Amazon CloudWatch Logs の設定] を参照してください
コストに関する考慮事項
この HANA DB パッチ適用ソリューションで使用される AWS Systems Manager Automation は、従量課金制モデルに従います。実行された自動化ステップの数と期間に基づいて課金され、以下を含む寛大な無料利用枠があります:
- 月あたり 100,000 の自動化ステップ、
- 月あたり 5,000 秒の自動化実行時間
AWS Organizations を使用している場合、この無料利用枠の使用量は、一括請求ファミリー内のすべてのアカウント間で共有されます。無料利用枠全体を既に使用している他のワークロードを同じアカウントで実行している場合、このツールの実行に関連するコストは 10 米ドル未満に抑えられます。
コスト計算の詳細については、AWS Systems Manager 料金を参照してください。
まとめ
このブログ投稿で示したように、HANA DB のパッチ更新の自動化は、AWS ネイティブツールを使用して簡単に実現できます。お客様の環境でこれを実装する際は、一部のマイナー OS バージョンによってソリューションが環境ごとに異なる動作をする可能性があるため、実際のビジネス環境に移行する前に、まず非本番アカウントで実行してください。
このソリューションを使用することで、さまざまな SAP ランドスケープと環境全体で更新プロセスがどのように行われるかを標準化し、プロセスの単一の信頼できる情報源を持つことができます。
詳細を知りたい、またはこのソリューションをプロジェクトに拡張する方法についてより深く理解したいとお考えですか?
詳細については、sap-on-aws@amazon.com までお問い合わせください。
本ブログはAmazon Q Developer CLIによる機械翻訳を行い、パートナーSA松本がレビューしました。原文はこちらです。





