執筆者: Tobias Niekamp (Principal Software Engineer, R&D Compute Dev)
このポストは、2018 年 11 月 7 日に投稿された Automating SAP deployments in Microsoft Azure using Terraform and Ansible の翻訳です。
複雑な構成の SAP 環境のパブリック クラウドへのデプロイは簡単な作業ではありません。オンプレミスでのインストールや構成に慣れている SAP BASIS チームであったとしても、クラウドへのデプロイを設計、構築、テストする際には別のスキルが必要となります。
単調でミスの発生しやすいパブリック クラウドへの SAP デプロイ作業を確実に行うためには、下記のような選択肢があります。
- SAP ソリューションのリポジトリ SAP Cloud Appliance Library (CAL) を使用して、パブリック クラウドに直接デプロイできます。しかしながら、この方法はコストが高い (英語) だけでなく、CAL では構成済みの仮想マシン (VM) イメージしか使用できず、構成の変更は非常に困難または不可能となります。
- 無償で利用できる選択肢として、多くのパブリック クラウド プロバイダーが提供する SAP クイックスタート テンプレートが使用できます。通常テンプレートはシェル スクリプトや独自言語で記述されており、SAP の既定の構成をある程度カスタマイズできます。たとえば、Azure の ARM テンプレート (英語) を使用すると、SAP HANA やその他のソリューションをワンクリックで Azure Portal から直接デプロイできます。
どちらも初心者には便利な方法ですが、実際に本番環境で使用する SAP 環境の構築に使用するために必要となる構成オプションや柔軟性が足りないケースが多いのが実情です。
実際に SAP 環境をクラウドに移行したお客様からのフィードバックによれば、既存のクイックスタート テンプレートは概念実証用の「実験」システムとしては利用できますが、実際のビジネス要件や技術要件に対応するには柔軟性が低すぎるとのことでした。
このような声にお応えして、SAP on Microsoft Azure エンジニアリング チームはテンプレートに関する軌道修正を行い、限定的な SAP シナリオ向けの、応用の利かない (単体での拡張が難しい)「画一的」なテンプレートではなく、デプロイ作業を詳細レベルに分解し、カスタマイズ可能で使用しやすい「構成要素」を提供することを決定しました。
SAP のクラウドへのデプロイ自動化の新しい方法
より複雑な SAP デプロイを自動化するための、モジュラー化という新しいアプローチを採用し、以下のより理解しやすいソリューションを開発しました。
- Terraform モジュール: インフラストラクチャ コンポーネント (VM、ネットワーク、ストレージなど) を Azure にデプロイし、Ansible プレイブックを呼び出します。
- Ansible プレイブック: 各種の Ansible ロールを呼び出します。
- Ansible ロール: Azure にデプロイしたインフラストラクチャ上に OS と SAP アプリケーションをインストール及び構成します。
Terraform/Ansible SAP の自動化テンプレートのフロー図
すべてのコンポーネントを可能な限りオープンかつ柔軟にすることを重視した設計により、Azure と SAP のほぼすべてのパラメーターをカスタマイズ可能とするとともに、ほとんどを任意での指定(Optional)としました。言い換えれば、定形の構成テンプレートを使用することで、 SAP デプロイをわずか 10 分でセットアップできる一方で、モジュールやロールを組み合わせて、より複雑な環境を構築することもできます。
HANA の高可用性ペアのデプロイ例
Terraform および Ansible は Azure Cloud Shell にプレインストールされており、最小限の設定をするだけでテンプレートをすぐに実行できます。もちろん、ローカル マシンや VM から使用することも可能です。
リポジトリは Microsoft Azure が公開と保守を担当していますが、これはコミュニティ主導型のプロジェクトであり、皆様のご協力やフィードバックは大歓迎です。
SAP HANA を皮切りに、各種製品に対応
数か月前に、Terraform と Ansible のテンプレートの作成を開始した際、HANA用のテンプレートから開始することを決定しました。SAP の主力インメモリ データベースである HANA は、S/4HANA や BW/4HANA などの最新エンタープライズ向け SAP アプリケーションの基盤プラットフォームであり、デファクト スタンダードとなっています。SAP HANA の高可用性クラスターをゼロから構築したことのあるお客様であれば、このタスクの複雑さや SAP 認定パブリック クラウドのリファレンス アーキテクチャに適合したテンプレートを作成するのがどれだけたいへんであるかをおわかりいただけるでしょう。
現時点で、Terraform / Ansible テンプレートは次の 2 つのシナリオをサポートしています (他のアプリケーション向けのシナリオも現在作成中です)。
HANA 単一ノード インスタンス (英語)
- HANA 単一ノード インスタンス
HANA 高可用性ペア (英語)
- 高可用性 HANA インスタンス、HSR による 2 層のレプリケーション (プライマリ/セカンダリ)
- Pacemaker高可用性クラスター (SBD および SAP/Azure リソース エージェントによる構成済み)
マイクロソフトはできる限りの柔軟性を提供することを目指しており、以下のように SAP HANA 製品のほぼすべての設定をカスタマイズできるようになっています。
- サイズ (サポート対象のあらゆる Azure VM SKU を選択可能)
- 高可用性 (高可用性ペア シナリオで高可用性セットと可用性ゾーンを選択可能)
- 管理用ホスト (HANA Studio設定済みの Windows または Linux の「ジャンプ ボックス」をオプションで選択可能)
- バージョン (現時点では HANA 1.0 SPS12 と HANA 2.0 SPS2 およびそれ以降のバージョンをサポート)
- XSA アプリケーション (オプションで XSA アプリケーション サーバーと HANA Cockpit や SHINE などのサポート対象アプリケーションのセットから選択可能)
XSA SHINE の HANA 向けデモ コンテンツ
いずれのシナリオでも、パラメータ入力型の定形構成テンプレートと、わかりやすい手順ガイドが用意されています。
すぐに使用を開始
好評の Azure Friday シリーズでは、チーム メンバーの Page Bowers が Terraform や Ansible のテンプレートを使用して SAP HANA をデプロイする短いビデオをご覧いただけます。
また、GitHub リポジトリ (英語) で公開している入門ガイドを見れば、簡単に Azure クラウドに SAP 環境をセットアップできます。