Amazon Web Services ブログ

AWS BackupとAWS Backint Agentを用いたSAPアプリケーションのパッシブ災害対策

はじめに

災害対策(DR)ソリューションは、SAPシステム設計時の重要な側面です。AWS上でSAPワークロードを稼働しているお客様にとって、DRソリューションの設計で考慮すべき点は、シングルまた複数のAWSリージョンまたはアベイラビリティゾーン、目標復旧ポイント(RPO)や目標復旧時間(RTO)などのサービスレベルアグリーメント、そしてコストです。これらの検討を簡単にするために、SAPスペシャリストソリューションアーキテクトはSAP on AWSの可用性と信頼性のアーキテクチャガイダンスを作成しました。このガイドは、AWS上で高可用かつ信頼性の高いSAP NetWeaverベースのシステム構成をデプロイするという要件があるSAPのお客様やパートナー様のために、一連のアーキテクチャのガイドライン、戦略、決定事項を提供します。

ドキュメントHigh Availability and Disaster Recovery Options for SAP HANA on AWSでは、AWS上のSAP HANAデータベースのDR設定に関するすべてのオプションについて説明しています。例としては、データプリロードをオンまたはオフにしたHANA System Replication(HSR)や、Amazon Simple Storage Service(S3)のクロスリージョンレプリケーション(CRR)によるバックアップとリストア等があります。

また、AWSが提供するブロックレベルのレプリケーションツールであるCloudEndure Disaster Recoveryを使用し、DR設定することも可能です。

お客様にとって、AWSではAmazon Elastic Compute Cloud (EC2)がオンデマンドで提供できることにより、従来のオンプレミスでの実装と比較して、DRソリューションの選択肢が広がります。

このブログでは、SAP HANAベースのアプリケーション向けに、低コストのDRソリューションをパッシブDRアプローチを使用して構築する方法を紹介します。このソリューションは、DRソリューションのコストを削減したい、且つデータレプリケーションベースのソリューションと比べて長いRTOおよびRPO SLAを許容できるお客様に適しています。

ソリューション概要: AWS上のSAPアプリケーション向けのパッシブDR

このソリューションでは、災害対策の設定として、プライマリSAPシステムのバックアップデータを使用してDR環境を構築します。設定作業は、AWS BackupAWS CloudFormationAmazon S3 CRR等のAWSサービスと機能を使用して簡素化されています。

このオプションでは、通常の運用時にDRのAWSリージョンにAmazon Elastic Compute Cloud(EC2)インスタンスやAmazon Elastic Block Store(EBS)ボリュームがプロビジョニングされません。データはデータベースから直接レプリケートされません。以下のアプローチで、本番システムをDR用に選択したAWSリージョンにバックアップ・コピーします。

  • AWS Backint Agent for SAP HANAまたは他のデータベースネイティブツールを使用して、DBのバックアップを取得し、Amazon S3に保存
  • 本番システムのバックアップ(データとログ)は、Amazon S3 CRRを使用してDRリージョンへレプリケート
  • AWS Backupを使用して、アプリケーションサーバーとデータベースのAMI(Amazon Machine Image)を作成し、DRのAWSリージョンにレプリケート
  • ファイルシステム(移送ディレクトリやsapmntディレクトリ等)のデータは、AWS Backupを使って作成し、レプリケート

DRリージョンでは、テストまたは実際のDRイベントの際に、プライマリリージョンからコピーしたAMIを使って、オンデマンドでSAPシステムを構築することができます。データベースに最新のデータを取り込むために、バックアップからpoint-in-timeリカバリーで復元することが可能です。AWS上のSAP HANAデータベースのデータとログのバックアップは、データベースネイティブツールとAWS Backint Agent、またはサードパーティのツールを使って行えます。このブログでは、AWS Backint Agentを使ったシナリオを説明します。このソリューションにおけるRPOは、ソースシステムのログバックアップ頻度、変更率、バックアップオブジェクトをDRリージョンにコピーする時にかかる時間に依存します。RTOは、データベースのサイズと変更率に依存します。RTO/RPOは、HANA System ReplicationまたはCloudEndureのようなデータベースから直接データを複製する他のDRオプションよりも長くなります。

以下の図は、バックアップ/リストアに基づくDRソリューションのアーキテクチャ例です。

Example architecture for the DR solution based on backup/restore

AWS CloudFormation等の自動化サービスを利用すれば、プライマリリージョンからコピーされたバックアップを利用して、最小限の手作業で迅速にDRシステムを構築することが可能になります。

SAPシステムのDRソリューションは、Active DirectoryやDNSなどの他のサポートサービスも考慮する必要がありますが、今回のブログではカバーしていません。

災害対策の設定手順

このブログでは、SAP HANAデータベースを使っているSAP NetWeaverシステムの災害対策をバックアップ/リストアを使った構成を紹介します。このワークロードは合計4つのAmazon EC2インスタンスに分散されます。それは、SAP HANAデータベース用の1つのインスタンス、ABAP SAP Central Services(ASCS)及びPrimary Application Server(PAS)用の1つのインスタンス、及び追加アプリケーションサーバー用の2つのインスタンスが含まれます。

Instance lists from AWS Console

これらのインスタンスは、SAPアプリケーションとデータベースサーバーがインストール済みの前提になります。もし、お客様がプライマリシステムのインストールも行いたい場合は、AWS Launch Wizard for SAPをご活用頂けます。

今回のブログでは、同じAWSアカウント内でのクロスリージョンDR設定を想定しています。しかし、厳格なデータ保管要件によりプライマリリージョンからデータを出すことができないお客様、またはエンドユーザーがDRリージョンにアクセスする際のネットワークパフォーマンスが気になるお客様に対しては、複数のリージョンではなく、同じリージョン内の複数のアベイラビリティゾーン(AZ)に跨って同様のソリューションを使用することも可能です。

以下の手順は、リージョンを跨いだ構成を想定していますが、アベイラビリティゾーンを跨いだ構成を採用する場合は、それに合わせて変更する必要があります。 その変更点は、バックアップとAMIのコピー作成作業が不要になる等が含まれます。もしDRが別のAWSアカウントでホストする場合、DRアカウントからデータベースバックアップとAMIへのアクセスを可能にするために、権限を適切に割り当て、暗号化キーを共有する(必要な場合)等の追加手順が必要になります。

ステップ1:SAP EC2インスタンスのタグ作成

ソースのAmazon EC2インスタンスで、AWSアカウントの他のAWSサービスで一意に識別できるように、SAP EC2インスタンスに対して、タグを作成し割り当てます。

Create & Assign Tags

また、バックアップしDRリージョンへコピーしたいAmazon EFSファイルシステムにも同様のタグを作成します。このファイルシステムは、SAPシステムのsapmntディレクトリや移送ディレクトリに使用可能です。

ソースサーバーのSAPファイルシステムにAmazon EFSを使用している場合、/etc/fstabに「nofail」パラメータが設定されていることを確実に確認してください。詳細については、Amazon EFSファイルシステムを自動的にマウントするというドキュメントを参照してください。これは、DRインスタンスが問題なくAMIから起動できるようにするためです。DRリージョンでサーバーが利用可能になると、Amazon EFSファイルシステムが再マウントされます。

CreateAMIforDR - Tag

これらのタグは、AWS BackupでEC2インスタンスのAMI及びEFSファイルシステムのバックアップを作成するバックアッププランを設定するために使用されます。

ステップ2:AMIとEFSファイルシステムのバックアップを作成するためのAWS Backupの設定

AWS Backupサービスにて、AMIをDRリージョンにコピーするために、「Create Backup Plan」に進み、「Build a new plan」を選択します。

Create Backup Plan

Create Backup Plan

バックアップルールの設定では、一定の期間後にコールドストレージへの移行やバックアップの保存期間等のライフサイクル管理オプションを選択します。また、バックアップを保管するボールトに関しては、特定のボールトまたはデフォルトのボールトを選択することが可能です。

Backup rule configuration

次に、DRに別のリージョンを使用するため、バックアップやAMIをコピーする先のリージョンを選択します。コピー先として別のAWSアカウントに設定することも可能です。その場合、DR側のバックアップ用に別のバックアップボールトを指定します。頻度はメンテナンスウィンドウに合わせて調整したら、メンテナンス中にソースシステムにあった変更をAMIコピーでDRリージョンにもレプリケートされます。

For cross account copy

バックアッププランにリソースを割り当てるには、タグまたはリソースIDが使用可能です。このブログでは、ステップ1で作成したタグを使用しています。また、AWS Backupが復元ポイントを作成・管理できるように、十分な権限を持つIAMロールを選択します。

IAM Role assignment

IAM Role assignement

Resource assignment

バックアップにタグを割り当てます。これにより、リストア処理のためにDRリージョン内のバックアップを識別することができます。

Backup plan tags

Amazon EC2 AMIとAmazon EFSのバックアップに異なる頻度で取得したい場合、それぞれ別々のバックアッププランを作成して、各リソースに割り当てることができます。AWS Backupがどのようにバックアップを暗号化するかについては、AWSでのバックアップ暗号化ガイドラインを参照してください。これが要件を満たさない場合、Amazon Data Lifecycle Manager等の他のサービスを使用してAMIとスナップショットを作成したり、AWS CLIを使用してバックアップの取得を自動化することもできます。これら自動化ツールを使用して、バックアップデータをDRリージョンへのコピーを自動化することも可能です。

ステップ3:データベースのバックアップ設定

SAP HANAデータベースのバックアップを設定します。AWS Backint Agent for SAP HANAを使用してバックアップを設定することができます。デフォルトの設定では、15分ごとにログのバックアップがスケジュールされます。今回のDRソリューションのRPOは、この頻度によって変わるため、要件に応じて頻度を調整する必要があります。設定が完了しデータとログのバックアップスケジューリングが完了後に、バックアップデータがプライマリリージョンのAmazon S3バケットに保存されます。SAPは、SAP Note 2782059 – How to schedule Backups for HANA database (SAP S-User IDログイン必須)にて、データベースのバックアップスケジュールを設定する方法を記載しています。

  • hdbsql で BACKUP DATA SQL クエリにあわせて、シェルスクリプトと cron ジョブを使用
  • SAP HANA Cockpit のバックアップスケジュール機能(HANA Studio にはない)
  • DBA Cockpit を使用して DB13 でジョブスケジュール
  • XSEngine(Classic) Job Scheduler を使用

また、AWS Systems Manager Maintenance Windowsを使用して、AWSリソースタグに基づいてAWSでデータベースのバックアップを集中的にスケジュール設定することも可能です。

ステップ4:Amazon S3 CRR設定

データベースのバックアップが保存されているAmazon S3バケットに対して、プライマリリージョンからDRリージョンへのCRRを構成します。この設定の手順は、Amazon S3のレプリケーションドキュメントを参照してください。

S3 Cross Region Replication

この設定により、プライマリリージョンのAmazon S3バケットに格納されるバックアップファイルは、自動的にDRリージョンにレプリケートされます。このステップが完了すると、DRリージョンにSAPシステムを構築するために必要なデータが揃います。

ステップ5:DRリージョンでのSAP EC2インスタンス構築

AWS BackupによってEC2インスタンスのAMIが作成され、DRリージョンにコピーされていることが確認できます。AWSコンソールからDRリージョンにアクセスし、AMIセクションをクリックすると、AWS Backupによってコピーされたものも含めて、最新のAMIがすべて表示されます。バックアッププランで割り当てたタグに基づいてリソースをフィルタリングし、最新のAMIを選んでDRシステムを構築することが可能になっています。AWSコンソールからAMIを1つずつ選択してDRリージョンで起動するか、AWS CLI等のツールを使用してこれらのAMIを起動することもできます。また、AWS CloudFormationを使用して起動を自動化することにより、手作業を減らし、より迅速にAMIの起動ができるようになります。

AMI's to be used for launching the target

また、DRリージョンのAWSコンソールからAWS BackupでAmazon EFSファイルシステムがDRリージョンにコピーされていることを確認します。ターゲットリージョンでEFSのバックアップの保存に選択したバックアップボールトにアクセスし、リストアしたい最新のバックアップを確認します。リソースIDは、ソースファイルシステムのファイルシステムIDと同じです。

Backup vault for EFS

バックアップボールトから確実に復旧ポイントを確認し、新しいファイルシステムへのリストアプロセスを開始します。

Restore Backup

復旧ジョブが完了後に、新しいファイルシステムが作成されます。Amazon EC2インスタンスの/etc/fstabファイルでこの新しいファイルシステムIDを使用し、ファイルシステムをマウントします。ファイルシステムのサイズが大きくリストアに長い時間がかかる場合、別のツールで指定の頻度でデルタレプリケーションを実行するような構成も検討可能です。例えば、AWS Data Syncを活用し、Amazon EFSファイルシステムのレプリケーションを実現することができます。レプリケーションにAWS Data Syncを使用する場合、追加コストがかかります。コストの計算方法については、AWS DataSyncの価格を参照してください。

ステップ6:データベースのリカバリー実行

AWS Backint Agentの構成パラメータは、/<installation directory>/aws-backint-agent/ディレクトリ内のYAMLファイルで管理されます。この設定ファイルの名前はaws-backint-agent-config.yamlです。DRデータベースサーバーのバックアップ設定を変更するには、EC2インスタンスにOSレベルでログインする必要があります。次に、バックアップバケット名、AWSリージョン、アカウントID等の設定値をbackint設定ファイルのエントリを必要に応じて更新します。その後、このサーバーにインストールされたBackint Agentを介して、DRリージョンのSAP HANAデータベースからバックアップデータにアクセスできるようになります。最後、SAP HANA管理者ガイドの手順に従って、リストアと復旧作業を実行してください。

まとめ

AWSでSAPワークロードを実行することによって、AWSグローバルインフラストラクチャの高信頼性と柔軟性を活用し、DR環境の設計・デプロイ方法として複数の選択肢があります。お客様は、RTOやRPOのSLAを満たすために必要な場合を除き、必ずしもDR用にEC2インスタンスやEBSボリュームをプロビジョニングする必要はありません。ブログの説明通り、お客様はバックアップデータを複製するだけで、オンデマンドでSAP DRサーバーを構築することができ、DRの導入コストを削減し、その結果、SAP環境のTCOの削減に繋がります。 このモデルの導入と運用を簡素化するために、AWSはAWS BackupやAWS Backint Agent for SAP HANA等のサービスを提供しています。また、AWS CloudFormation等の自動化サービスも提供しており、DRのテストやフェールオーバーの自動化に使用可能です。

 

5000以上のSAPのお客様がAWSを選択した理由については、こちらをご覧ください。

翻訳はSpecialist SA トゥアンが担当しました。原文はこちらです。