Amazon Web Services ブログ

AWS Launch Wizard for SAP の API による SAP 環境構築の自動化

AWS Launch Wizard for SAP API による SAP 環境構築の自動化

AWS Launch Wizard は、オンプレミスで数週間から数カ月かかる HANA ベースの SAP アプリケーションの環境構築を、わずか数時間で、安全で高性能、復元力があり、効率的に、AWS に構築するための完全に自動化されたプロセスをお客様に提供します。AWS Launch Wizard for SAP サービスは、AWS、SAP、および使う OS のベストプラクティスに従って、SAP アプリケーションと SAP HANA データベースのインストールと設定に必要なすべての AWS リソースをプロビジョニングします。NvidiaUNOXStorengy などのお客様は、AWS Launch Wizard を利用して SAP 環境の移行を加速させています。

2020 年 4 月のサービス一般提供開始以来、AWS for SAP チームはお客様やパートナー様からのフィードバックに耳を傾け、AWS Launch Wizard サービスを継続的に改善してきました。そのフィードバックに基づいて、SAP アプリケーションソフトウェアの自動構築、構築前/構築後のスクリプトによるカスタマイズされたデプロイ、AWS サービスカタログとの統合など、いくつかの重要な改善を行いました。さらに、Launch Wizard チームは、AWS、SAP、およびオペレーティングシステムの最新機能を活用した新機能を継続的に提供しています。これにより、SAP アプリケーションのあらゆる階層で最新のイノベーションを活用することができ、お客様の投資が将来にわたって保護されます。

お客様から最も要望の多かった機能の 1 つは、AWS Launch Wizard を既存の導入ツールやスクリプトと統合できることです。お客様がアプリケーション・プログラミング・インターフェース・コール(API)を使用して、AWS管理コンソールにログインすることなく、プログラマティックでSAPシステムをデプロイできるようになったことを11月初旬に発表しました。

このブログでは、SAP S/4HANA システムをプログラマティックでデプロイが可能にする新しい AWS Launch Wizard API について詳しく説明します。

AWS Launch Wizard API 概要

AWS Launch Wizard API を使用すると、以下のアクションが実行可能となります。

  • CreateDeployment: 指定された設定でワークロードをデプロイします。
  • ListDeployments: 作成されたデプロイメントを一覧表示します。
  • GetDeployment: 特定のデプロイメントに関する詳細情報を取得します。
  • DeleteDeployment:特定のデプロイメントを削除します。
  • ListDeploymentEvents:デプロイ中に実行されているすべてのアクションを一覧表示します。
  • ListWorkloads: AWS Launch Wizard がサポートしている利用可能なすべてのワークロードを一覧表示します。
  • ListWorkloadDeploymentPatterns: 特定のワークロードのすべてのデプロイパターンを一覧表示します。
  • GetWorkload: 特定のワークロードに関する詳細情報を取得します。

デプロイメントの仕様

デプロイ仕様は、ニーズに応じてアプリケーションをデプロイするための情報提供に使用します。デプロイ仕様で、Amazon Virtual Private Cloud、サブネット、セキュリティグループなどのインフラストラクチャ関連の仕様や、構築予定の SAP システムの SID、SAP ソフトウェアおよびバージョンなどのアプリケーション仕様を提供します。こちらのURL に記載されているように、サポートされているデプロイパターン毎に、異なる仕様が必要となります。AWS Launch Wizard API は、SAP HANA データベースと NetWeaver ベースのアプリケーションの以下のデプロイパターンをサポートします。

SAP HANA

SAP HANA データベース、は以下のデプロイパターンがサポートされています。

  • SAP HANA 高可用性構成
  • SAP HANA マルチノード
  • SAP HANA シングルノード

SAP アプリケーション

SAP S/4HANA、SAP S/4 Foundations、SAP Solution Manager、SAP BW/4HANA、NetWeaver ABAP や Java などの SAP NetWeaver ベースのアプリケーションでは、以下のデプロイパターンがサポートされています。

  • 高可用性構成
  • マルチノード/分散構成
  • シングルノード/セントラル構成

ユースケース

AWS Launch Wizard API の発表により、Launch Wizard サービスが、単なるコンソールベースのサービスから強化されます。これらの API によって、SAP アプリケーションをデプロイするために、オペレータや管理者がコンソールを操作する必要がなくなります。最初のテスト/検証作業を行えば、その後人の操作を全く介在せずにデプロイを実現できます。Launch Wizard API を活用できるユースケースをいくつかご紹介します。

SAP のデプロイをさらにスピードアップ: SAPアプリケーションを迅速にプロビジョニングするために、SID、インスタンス番号、サイジングなどのパラメータを微調整できる自動化ルーチンを構築します。

障害復旧プロセスの最適化: 災害復旧のテスト/イベント中に、ベースラインシステムのプロビジョニングに使用できるテンプレートを構築することで、Launch Wizard API を災害復旧計画の一部として活用できます。これらのテンプレートは DR プロセスに一貫性と再現性をもたらし、コンソールを使用して手動でシステムを導入する際に発生する可能なミスを削減します。

一時的または N+1 ランドスケープ設定: AWS Launch Wizard for SAP API を活用して、一時的なプロジェクト環境または永続的な N+1 環境を立ち上げながら、SAP システムのデプロイプロセスを加速できます。

例:AWS Launch Wizard for SAP API を使用した SAP S/4HANA デプロイ

この例では、AWS Command Line Interface (AWS CLI) を使用して AWS Launch Wizard for SAP API を呼出し、ABAP SAP セントラルサービス (ASCS)、プライマリアプリケーションサーバー (PAS)、SAP HANA データベースを含む SAP S/4HANA システムを、単一の EC2 インスタンスに構築します。

前提条件:

  1. AWS アカウント
  2. AWS CLI をインストールして設定 (このドキュメントを参照)。最低限必要なバージョンは AWS CLI バージョン2 です。
  3. AWS Launch Wizard for SAP の一般的な条件と IAM 前提条件を設定完了 (このドキュメントを参照)
  4. SAP アプリケーションとデータベースのインストールメディアをダウンロードして準備 (このドキュメントを参照)

ステップ 1: デプロイメント仕様ファイルの準備

AWS Launch Wizard for SAP API は、JSON 形式のファイルを使用して、通常は AWS コンソールから入力されるデプロイに関する設定値を定義します。デプロイパターンに基づいて、SAP アプリケーションを構成するために必要なパラメータリストについては、SAP デプロイ仕様を参照してください。

{
  "KeyPairName": "ExampleKeyPair",
  "VpcId": "vpc-a1b2c3d4",
  "AvailabilityZone1PrivateSubnet1Id": "subnet-11111111aaaaaaaaa",
  "Timezone" :"PST",
  "EnableEbsVolumeEncryption" :"Yes",
  "EbsKmsKeyArn" : "arn:aws:kms:us-east-1:111122223333:alias/aws/ebs",
  "CreateSecurityGroup" :"No",
  "DatabaseSecurityGroupId" :"sg-1234567890abcdef0",
  "ApplicationSecurityGroupId" :"sg-021345abcdef6789",
  "SidAdmUserId" :"7002",
  "SapSysGroupId" :"5001",
  "DatabaseSystemId" :"HYD",
  "SapSid" :"S4K",
  "ApplicationDataVolumeType" :"gp2",
  "DatabaseInstanceNumber" :"30",
  "InstallAwsBackintAgent" :"Yes",
  "BackintSpecifications": "{\"backintBucketName\":\"launchwizardsoftware\",\"backintBucketFolder\":\"HANABackintBucketFolder\",\"backintBucketRegion\":\"us-east-1\",\"backintKmsKeyArn\":\"arn:aws:kms:us-east-1:111122223333:alias/aws/s3\",\"backintAgentVersion\":\"2.0.2.732\",\"backintContinueOnFailure\":\"No\",\"backintCreateEbsVolume\":\"No\"}",
  "CentralSystemOperatingSystem" :"SuSE-Linux-15-SP2-For-SAP-HVM",
  "CentralSystemAmiId" :"ami-1234567890abcdef0",
  "CentralSystemInstanceType" :"r5.8xlarge",
  "CentralSystemHostname" :"apis4sin",
  "SapPassword" :"EXAMPLE-PASSWORD",
  "DatabaseLogVolumeType" :"io2",
  "SetupTransportDomainController" :"Yes",
  "InstallSap" :"Yes",
  "SapInstallationSpecifications": "{\"parameters\":{\"PRODUCT_ID\":\"saps4hana-2021\",\"HDB_SCHEMA_NAME\":\"SAPABAP1\",\"CI_INSTANCE_NR\":\"22\",\"ASCS_INSTANCE_NR\":\"20\",\"SAPINST_CD_SAPCAR\":\"s3:\/\/launchwizardsoftware\/sapmedia\/sapcar\",\"SAPINST_CD_SWPM\":\"s3:\/\/launchwizardsoftware\/sapmedia\/swpm\/20-sp10\",\"SAPINST_CD_KERNEL\":\"s3:\/\/launchwizardsoftware\/sapmedia\/kernel\/785\",\"SAPINST_CD_LOAD\":\"s3:\/\/launchwizardsoftware\/sapmedia\/exports\/s4h-2021\",\"SAPINST_CD_RDBMS\":\"s3:\/\/launchwizardsoftware\/sapmedia\/database\/hana-20-sp06-rev60\",\"SAPINST_CD_RDBMS_CLIENT\":\"s3:\/\/launchwizardsoftware\/sapmedia\/hana-client\/20-11\"}, \"onFailureBehaviour\": \"CONTINUE\"}",
  "SnsTopicArn" :"arn:aws:sns:us-east-1:111122223333:InstallStatus",
  "SaveDeploymentArtifacts" :"Yes",
  "DeploymentArtifactsS3Uri" :"s3://launchwizardsoftware",
  "DisableDeploymentRollback" :"Yes",
  "CentralSystemAutomaticRecovery": "Yes",
  "DatabaseDataVolumeType": "gp3"
}

ステップ 2: デプロイメント仕様の検証

デプロイを実行する前に、create deploymentアクションのオプションの dry-run フラグを使用して仕様を検証し、アクションに必要な権限があるかどうかを確認できます。

// Example command values
aws launchwizard create-deployment \
--workload-name SAP \
--deployment-pattern-name SapNWOnHanaSingle
--name S4HanaSingleTest \
--dry-run \
--region us-east-1 \
--specifications file://s4hana-single.json

デプロイに問題がない場合は、次のメッセージが表示されるはずです。

// Example JSON response
{
"deploymentId": "Dry run is successful"
}

ステップ 3: デプロイを実行開始

dry-run フラグでデプロイ仕様を検証した後、—no-dry-run フラグを使用して実際のデプロイメントを開始します。

// Example command with sample values
aws launchwizard create-deployment \
--workload-name SAP \
--deployment-pattern-name SapNWOnHanaSingle
--name S4HanaSingleTest \
--no-dry-run \
--region us-east-1 \
--specifications file://s4hana-single.json

以下に示すようにデプロイメント ID を取得し、後でこの ID をを使用してデプロイメントの進行状況を確認することができます。

// Example JSON response
{
"deploymentId": "72c26320-6d17-4e55-992c-b3ad8d47331d"

}

ステップ 4 — デプロイメントのステータスを確認

list-deployment-events アクションを使用してイベントを一覧表示し、デプロイメントのステータスを確認できます。

// Example command values
aws launchwizard list-deployment-events \
--deployment-id 72c26320-6d17-4e55-992c-b3ad8d47331d \
--region us-east-1

以下のスクリーンショットは、list-deployments-events API コマンドの JSON レスポンスのサンプルです。

// Example JSON response
{
    "deploymentEvents": [
            {
            "name": "Validate Resource Limits (CFN, VPC, EIP, IGW)",
            "description": "Validate Resource Limits (CFN, VPC, EIP, IGW)",
            "status": "Completed",
            "statusReason": "Resource limit validation completed successfully",
            "timestamp": "2023-10-26T12:18:34.721000-04:00“
            },
            {
            "name": "Create resource group",
            "description": "Creates a resource group with all the application resources",
            "status": "COMPLETED",
            "statusReason": "",
            "timestamp": "2023-10-26T12:18:32.937000-04:00"
            },
            {
            "name": "Create secret",
            "description": "Creates a new secret",
            "status": "COMPLETED",
            "statusReason": "",
            "timestamp": "2023-10-26T12:18:33.392000-04:00"
            },
            {
            "name": "Creates the infrastructure for the application deployment",
            "description": "Creates the infrastructure for the application deployment",
            "status": "IN_PROGRESS",
            "statusReason": "",
            "timestamp": "2023-10-26T12:19:52.694000-04:00"
            }
    ]
}

デプロイメントが正常に完了すると、API コマンド list-deployments を使用してデプロイメントのステータスを取得できます。

// Example command values
aws launchwizard list-deployments \
--region us-east-1

以下のスクリーンショットは、list-deployments API コマンドの JSON レスポンスのサンプルです。

// Example JSON response
{
    "deployments": [
        {
            "name": "S4HanaSingleTest",
            "id": "a572f36c-5b06-4fb5-932c-61e684ca3159",
            "workloadName": "SAP",
            "patternName": "SapNWOnHanaSingle",
            "workloadVersionName": "2023-10-26-00-00-00",
            "status": "COMPLETED",
            "createdAt": "2023-10-26T22:02:39.413000-05:00"
        }
      ]
 }     

トラブルシューティング

AWS Launch Wizard for SAP のトラブルシューティングについては、AWS Launch Wizard トラブルシューティングガイドを参照してください。

まとめ

このブログでは、AWS Launch Wizard for SAP API を使用して、プログラムで SAP システムを AWS にデプロイする方法について学びました。この新機能を使用することにより、AWS Launch Wizard for SAP コンソールにアクセスしたり、デプロイのステップを手動で画面設定したりする必要がなくなります。詳細については、AWS Launch Wizard の詳細ページドキュメントをご覧ください。

AWS re: Invent 2023 に参加される方は、ENT312 — Deploy and optimize SAP on AWS with DevOps で、 AWS Launch Wizard APIを使用して、SAP S/4HANA システムの高可用性構成をいかに簡単に構築、スケーリングできるかをご覧ください。このセッションで、AWS for SAP のエキスパートがプロセスのステップを説明し、AWS での SAP システムの稼働に関する質問にお答えします。

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