Automation, Management and Governance, Partners
[SAP] Terraform および Ansible を使用した Microsoft Azure への SAP 自動デプロイ
Posted on
3 min read
複雑な構成の SAP 環境のパブリック クラウドへのデプロイは簡単な作業ではありません。オンプレミスでのインストールや構成に慣れている SAP BASIS チームであったとしても、クラウドへのデプロイを設計、構築、テストする際には別のスキルが必要となります。
単調でミスの発生しやすいパブリック クラウドへの SAP デプロイ作業を確実に行うためには、下記のような選択肢があります。
- 作業を開始する 1 つの方法は、多数の SAP ソリューションのリポジトリである SAP Cloud Appliance Library (CAL) を使用する方法で、これをパブリック クラウドに直接デプロイすることができます。しかしながら、この方法はコストが高いだけでなく、CAL には構成済みの仮想マシン (VM) イメージが含まれているに過ぎないため、構成の変更は非常に困難または不可能です。
- 無償で利用できる選択肢として、多くのパブリック クラウド プロバイダーが提供する SAP クイックスタート テンプレートが使用できます。通常テンプレートはシェル スクリプトや独自言語で記述されており、SAP の既定の構成をある程度カスタマイズできます。たとえば、Azure の ARM テンプレートを使用すると、SAP HANA やその他のソリューションをワンクリックで Azure portal から直接デプロイできます。
どちらも初心者には便利な方法ですが、実際に本番環境で使用する SAP 環境の構築に使用するために必要となる構成オプションや柔軟性が足りないケースが多いのが実情です。
実際に SAP 環境をクラウドに移行したお客様からのフィードバックによれば、既存のクイックスタート テンプレートは概念実証用の「実験」システムとしては利用できますが、実際のビジネス要件や技術要件に対応するには柔軟性が低すぎるとのことでした。
このような声にお応えして、SAP on Microsoft Azure エンジニアリング チームは、逆の方向に進むことに決めました。限定的な SAP シナリオ向けの、応用の利かない (拡張が難しい)「画一的」なテンプレートを提供するのではなく、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 環境をセットアップできます。