Amazon Web Services ブログ

AWS Compute OptimizerでMicrosoft SQL Serverのライセンスコストを削減

このブログ記事は、Microsoft SQL Server のライセンスに関する推奨を生成する AWS Compute Optimizer の新しい機能について説明します。AWS Compute Optimizer は、Amazon Elastic Compute Cloud (Amazon EC2) 上で Microsoft SQL Server を実行しているお客様にライセンスコストの最適化を提案する機能があり、それによって大きなライセンスコストの削減効果を得ることが出来ます。

AWS Compute Optimizer は、推定ワークロードタイプを活用して SQL Server が Amazon EC2 インスタンス上で実行されているかどうかを検出します。そして、SQL Server Enterprise エディションの機能が使用されているかどうかを検出し、SQL Server Standard エディションへのダウングレードのオプションがあることを提示することで、ライセンスコストの削減を推奨します。

パフォーマンスと SQL Server ライセンスの最適化における課題への対応

データベース管理者(DBA)は、Amazon EC2 インスタンス上の SQL Server を最適化する簡単な方法を探しています。データベースのパフォーマンスへのニーズは頻繁に変化する為、ハードウェア要件、機能、設定に違いが発生してきます。それにより、お客様はデータベースのパフォーマンスを手動で分析・評価する専任の DBA を必要とすることになります。

AWS Compute Optimizer は、Amazon EC2 インスタンスと Amazon Elastic Block Store(Amazon EBS)ボリュームの適切なサイズをお客様に推奨し、インフラストラクチャのコスト削減を実現します。DBA は、AWS Compute Optimizer と推定ワークロードタイプを使用することで、SQL Server のワークロードを実行している Amazon EC2 インスタンスを迅速かつ容易に特定し、大規模なアプリケーションとデータベースのリリース後に提案される推奨事項をレビューすることができます。サイジングの適正化の分析と推奨は、主に Amazon EC2 インスタンスと Amazon EBS ボリュームのコストとパフォーマンスの最適化に重点を置いていますが、必要とするデータベース機能に関するインサイトはない為、エディションの推奨については限定的なものとなります。

SQL Server ワークロードのコスト最適化でよく見落とされるのがライセンスについてです。例えば、SQL Server Enterprise エディションの機能は、アプリケーションが最初に公開されたときには必要であったかもしれませんが、その後のリリースでは使用されなくなっているかもしれません。アプリケーション/データベースごとの個々のリリースの変更に関する深い知識がなければ、機能要件の変化を見逃してしまい、SQL Server エディションのダウングレードの機会に気付けない可能性があります。

エディションのダウングレードの機会を見つけるもう一つのユースケースは SQL Server のバージョンアップです。SQL Server Enterprise Edition と Standard Editionの機能はバージョンが変わると変更されることがあります。例えば、Transparent Data Encryption(TDE)は SQL Server Enterprise エディションでよく使われる機能です。SQL Server 2019 のリリースにより TDE はStandard エディションで利用できるようになり、Enterprise エディションの要件がなくなりました。AWS Compute Optimizer は、Amazon EC2 上で SQL Server のワークロードを実行しているお客様に対して、SQL Server のライセンスエディションのダウングレードを提案します。

AWS Compute Optimizer は、以下のような SQL Server の Enterprise Edition の様々な機能についてチェックします。

  •  128 GB 以上のメモリのバッファプール、または 48 vCPU 以上 を必要とするインスタンス
  • 可用性グループ、リソースガバナー、非同期リードレプリカなど、よく使用される機能
  • NUMA 対応やメモリ最適化 tempdb メタデータなど、使用頻度の低い機能 

これらの機能や制限が無い場合、AWS Compute Optimizer は SQL Server エディションのダウングレードを推奨し、オンデマンド価格によるコスト削減の余地を提示します(図 1 参照)。SQL Server エディションの機能比較について詳しく知りたい場合は「SQL Server 2022 の各エディションとサポートされている機能」を参照してください。

Figure 1: AWS Compute Optimizer provides recommendations on Amazon EC2 and Amazon EBS to help quickly identify resources which are under-provisioned, optimized, or over-provisioned.

図 1. AWS Compute Optimizer は Amazon EC2 と Amazon EBS に対して、プロビジョニング不足、最適化、またはオーバープロビジョニングのリソースを素早く特定することができる推奨を提示します。

これらの自動化されたインサイトと推奨は、お客様と DBA が SQL Server のエディションをダウングレードし、ワークロードのコストを最適化する機会を簡単に特定して検証するのに役立ちます。AWS Compute Optimizer が SQL Server のエディション機能を評価することで、DBA とお客様は、常に最もコスト最適化された SQL Server のエディションを使用していることに安心できます。

SQL Server Standard エディションは Enterprise エディションよりも73%も価格が安いため、表 1 に示すように Enterprise エディションから Standard エディションにダウングレードすることで大幅なコスト削減が可能です。表示されている価格は、SQL Server 2022 および SQL Server 2019 の、このブログ記事の公開日時点、2023/9/26 時点での Microsoft の公開価格に基づいています。

SQL Server Enterprise edition is 73% more expensive than Standard edition

表1. SQL Server Enterprise Edition と Standard Edition の価格比較

SQL Server のライセンス費用を削減するだけでなく、SQL Server を Enterprise エディションから Standard エディションにダウングレードすることで、BYOL のお客様はソフトウェアアシュアランスのコストも削減することができます。BYOL のお客様は、利用しない Enterprise エディション・ライセンスを再利用または温存することによって再調達のコストを削減することができ、ライセンス投資を最適化できます。

AWS Compute Optimizer のサイジングの適正化の推奨機能は、追加費用なしで利用できます。エディションのダウングレードの推奨には、有料のカスタムメトリックを使用する Amazon CloudWatch Application Insights を有効にする必要があります。詳しくは、Amazon CloudWatch Application Insights とは、をご覧ください。

AWS Compute Optimizer を使い始めるには

1. AWS Compute Optimizer の推奨を受け取るには、AWS Compute Optimizer にオプトインする必要があります。オプトインすると、Amazon EC2 インスタンスタイプ、Amazon EBS ボリュームの IOPS やスループットなど、リソースの適切なサイジングの推奨を受け取るようになります。推定ワークロードタイプ機能はデフォルトで有効になっているため、SQL Server が Amazon EC2 インスタンスで実行されているかどうかを検出するために追加の設定は必要ありません。また、Amazon EC2 インスタンス上の SQL Server ワークロードに対してエージェントによるメモリ使用を有効化し、メモリ使用量に関するより深いインサイトを得ることを推奨します。

2. AWS Compute Optimizer の商用ソフトウェアライセンス推奨機能を利用するには、個々のAmazon EC2 インスタンスに対して Amazon CloudWatch Application Insights を有効にする必要があります。どの Amazon EC2 インスタンスが Amazon CloudWatch Application Insights を有効にしているか、または有効にする必要があるかを表示するには、図 3 に示すように、AWS Compute Optimizer コンソール内のナビゲーションペインで「Licenses」をクリックします。

Within the Licenses section in AWS Compute Optimizer, you can view the details of the Amazon EC2 instances which have detected SQL Server workloads running.

図 3. AWS Compute Optimizer の Licenses セクションにて、SQL Serverワークロードが実行されていることを検出した Amazon EC2 インスタンスの詳細を表示できます。

3. ライセンスの推奨ダッシュボードでは、SQL Server ワークロードを実行している Amazon EC2 インスタンスが一覧表示され、検出結果によって並べ替えることができます。検出される可能性のある定義は3つあります。

a. 最適化 – これらの Amazon EC2 インスタンスでは、Amazon CloudWatch Application Insights が有効になっており、AWS Compute Optimizer は Enterprise 機能が使用されていると検知したため、すでに最適化されていると判断しています。

b. 最適化されていない – これらの Amazon EC2 インスタンスでは、Amazon CloudWatch Application Insights が有効になっており、AWS Compute Optimizer は、SQL Server Enterprise Edition の機能を使用していないことを検知したため、Standard Edition へのダウングレードを検討が必要と判断しています。

c. メトリクスが不十分 – これらのインスタンスでは、Amazon CloudWatch Application Insights が有効になっていないか、適切な権限がないため、推奨が提供できません。

4. メトリクスが不十分と表示された Amazon EC2 インスタンスについては、インスタンスIDをクリックして、アプリケーションインサイトの有効化手順を始めて下さい。

5. AWS Compute Optimizer と Amazon CloudWatch Application Insights がアクセスして SQL Server Enterprise エディションの機能使用状況を確認できるようにするには、シークレットを選択するか、作成する必要があります(図 4 参照)。シークレットは SQL Server 認証インスタンスログイン、ユーザー名、パスワードとなり、ターゲットの SQL Server インスタンスで設定する必要があります。SQL Server ログインには以下の権限があることを確認する必要があります。

GRANT VIEW SERVER STATE TO [LOGIN];

GRANT VIEW ANY DEFINITION TO [LOGIN];

ログインを作成し、対象の SQL Server インスタンスへの権限を付与したら、AWS Secrets Manager を使用して、Amazon CloudWatch Application Insights が使用する為のログイン認証情報を保存することができます。ドロップダウンボックスからシークレットを選択してください。

You can select the secret you create to allow Amazon Cloudwatch Application Insights access to your database in the dropdown

図 4. ドロップダウンボックスから、Amazon Cloudwatch Application Insights にデータベースへのアクセスを許可するために作成したシークレットを選択できます。

6. また、Amazon EC2 インスタンスが上記で選択したシークレットにアクセスできるように、IAM ポリシーとインスタンスロールを設定する必要があります。このインスタンスロールは、ライセンスの推奨を有効にするために、SQL Server を実行している対象のAmazon EC2 インスタンスにアタッチする必要があります。”Confirm Instance Role and Policy is attached” をチェックしてください。

7. これで “Enable license recommendations” を選択できるようになります(図 5 参照)。これを選択すると、上部に “CloudWatch Application Insights is successfully enabled” という緑色のチェックマークが表示されます。

The options have been provided to enable license recommendations for an instance and the Enable license recommendations button has been selected. At the top there is a green bar which states CloudWatch Application Insights is successfully enabled.

図 5. シークレットを設定しインスタンスロールとポリシーがアタッチされると Enable License Recommendations をクリック出来るようになります。

Amazon CloudWatch Application Insights を有効にした後、AWS Compute Optimizer のダッシュボードにレコメンデーションが表示されるまで、通常は24時間かかります。有効化のプロセスでは、ターゲットの Amazon EC2 インスタンスに PrometheusSqlExporterSQL(図 6 参照)という Windows サービスをデプロイします。SQL Server Enterprise Edition の機能が使用されているかどうかを判断するためにはこのサービスが必要です。

A Windows service named PrometheusSqlExporterSQL must be running on the instance in order to provide licensing recommendations. This image shows the service running from Windows Services.

図 6. インストールされた PrometheusSglExporterSQL サービスが実行されていることを示す Windows Services コンソール。

推奨の詳細を表示するには、ライセンスの推奨ダッシュボードの “Findings” 列で “over-provisioned” と識別されたインスタンス ID をクリックします (図 7 を参照)。インスタンスの詳細ページに移動し、上部に “License recommendations” という新しいタブが表示されます。このタブでは”最適化されていない”などの検知と”ライセンスがオーバープロビジョニングされている”などの理由を確認できます。

In order to view detailed recommendations, you must go to the instance details. From the Licenses screen, you can click on the Instance ID to view detailed license specifics.

図 7. AWS Compute Optimizer 内の “License recommendations” セクションの表示。この例では、Enterprise Edition から Standard Edition へのダウングレードを推奨する SQL Server インスタンスが示されています。

インスタンス ID をクリックすると、”License recommendations” の更に詳細を見ることができます。インスタンス固有のページでは、現在のライセンスのコストと推奨との比較の詳細が表示されます。図 8 は、Enterprise が現在のエディションで Standard が推奨です。

A view of the detailed license specifics showing the recommendation to move from Enterprise to Standard edition for SQL Server. This also shows pricing estimates if you were to downgrade.

図 8. AWS Compute Optimizer の “License recommendations” セクションでインスタンスIDを選択すると、そのインスタンスに対する固有の推奨事項の詳細ビューに移動します。

また、SQL Server のエディションをダウングレードした場合の、月々の削減見込み額や削減機会の割合などの詳細も表示されます。図 9 では、Amazon EC2 の削減コストと SQL Server の推奨での削減コストが円グラフで分割され、両方の推定削減コストが示されています。推奨には、ダウングレードした場合のオンデマンドのコストと、現在のエディションに留まった場合のコストも含まれているため、お客様はコスト削減の全体像を可視化することができます。

There is also a donut chart shown on the AWS Compute Optimizer homepage which shows a monthly savings estimate for all recommendations, including Licenses.

図 9. AWS Compute Optimizer のダッシュボードから、ライセンスの推奨による潜在的なコスト削減を素早く確認することが出来ます。

SQL Server Enterprise エディションから SQL Server Standard エディションへのダウングレード

Amazon EC2 上で SQL Server の License Included の AMI を使用して SQL Server を実行しているお客様は、SQL Server のインプレースダウングレードではなく、新しい SQL Server Standard エディションの AMI を起動してデータベースを移行する必要があります。異なる SQL Server ネイティブの移行方法については、SQL Server データベース移行方法のドキュメントを参照してください。

AWS Systems Manager の自動化のドキュメントは、SQL Server BYOL モデルで SQL Server を Amazon EC2 上で実行しているお客様が、SQL Server Enterprise エディションから Standard または Developer エディションにダウングレードする際にも役立ちます。自動化を使用してエディションをダウングレードする方法については、こちらのブログ記事を参照してください: Downgrade SQL Server Enterprise edition using AWS Systems Manager Document to reduce cost.

まとめ

適切な SQL Server エディションを選択することで、お客様は必要な SQL Server 機能を確実に使用しながら、大幅なコスト削減を実現できます。AWS Compute Optimizer に SQL Server Enterprise Edition の機能評価が追加されたことで、組織は SQL Server のライセンスとインフラストラクチャのコストを削減することができます。この機能を使用することで、お客様はAmazon EC2 インスタンス上の SQL Server が、パフォーマンス、ライセンス、およびコストが最適化された状態で実行されていることを確認できます。

AWS は、他のどのクラウドプロバイダーよりもはるかに多くのサービスと、それらのサービス内の多くの機能を備えており、既存のアプリケーションをより迅速、簡単、かつコスト効率よくクラウドに移行し、想像できるほぼすべてのものを構築することが出来ます。Microsoft アプリケーションに必要なインフラストラクチャを提供し、お客様が望むビジネス成果を実現しましょう。マイクロソフトのワークロードに関するその他のガイダンスとオプションについては、.NET on AWSAWS Database のブログをご覧ください。移行とモダナイゼーションの旅を始めるには、今すぐお問い合わせください。

 

投稿者について

Blake Lyles

Blake Lyles

Blake Lyles は、SQL Server を専門とする Microsoft Workloads Specialist Solutions Architect です。ブレイクはアマゾンに 6 年以上在籍し、そのほとんどの期間を EC2 上の SQL Server、RDS のサポート、Database Migration Service、Amazon DocumentDBなどのデータベースワークロードに費やしてきました。Blake は、顧客が AWS 上でデータベースワークロードを移行し、近代化するのを支援してきました。

Reghardt van Rooyen

Reghardt van Rooyen

Reghardt van Rooyen は Amazon Web Services のシニア・スペシャリスト・ソリューション・アーキテクトです。14 年間の SQL Server データベース管理とリーダーシップの経験を活かし、企業のお客様向けの高スループット SQL Server HADR ソリューションのアーキテクチャリングを専門としています。常に探究心を持ち、お客様の実装がパフォーマンスとコストの最適化につながることを確実なものとなるように、AWS のインフラストラクチャと SQL Server データベースのパフォーマンス限界を探ります。南アフリカ出身で、ラグビー、バーベキュー、家族や友人と屋外で過ごすことが趣味です。

Yogi Barot

Blake Lyles

Yogi はプリンシパル・ソリューション・アーキテクトであり、22年にわたりさまざまな Microsoft テクノロジーに携わってきた経験があります。AWS 上で Microsoft のワークロードを実行するためのAWSに関する深い専門知識を持っています。

翻訳はソリューションアーキテクト樋口が担当しました。原文はこちらです。