Azure運用のベストプラクティス|Azure Advisorの活用と最適化のテクニック
Azure運用の最適化にあたり、考慮しなければならないのがベストプラクティスです。しかし、これを実施するには、ベストプラクティスの基本原則を理解し、Azureが提供するさまざまなサービスについて知る必要があります。
本記事では、Azure運用におけるベストプラクティスの概要と、ベストプラクティスを実施するためのAzure Adviserについて解説します。ベストプラクティスに沿った最適化のテクニックも解説しているので、Azure運用の最適化を考えている運用担当者の方はぜひ参考にしてください。
Azure運用のベストプラクティスとは?
Azureを最適且つ効率的に運用するには、ベストプラクティスに取り組むことが重要です。ここではベストプラクティスの概要について、以下3つの観点で解説します。
● Microsoft Azureとクラウド管理の基本
● Azure運用における基本原則
● 他社のクラウドサービスとの比較
Microsoft Azureとクラウド管理の基本
クラウド管理において、第一に考えなければならないのが運用の最適化です。クラウドは、監視やセキュリティ対策、プロセスの自動化といったさまざまな施策を講じることで、最適な環境・運用を維持できます。その際、運用設計の指針を示してくれるのがベストプラクティス(Well-Architected Framework)です。
ベストプラクティスとは「最善の方法」や「最も優れた方法」を意味し、大手クラウドベンダーは、それぞれのベストプラクティスを提供しています。ベストプラクティスに従えば、システム全体を安定的に維持でき、効率的な運用も実現できるのです。つまり、Azure運用の最適化を考える際も、ベストプラクティスへの取り組みは必須と言えます。
Azure運用における基本原則
Azureのベストプラクティス(Microsoft Azure Well-Architected Framework)は、以下のように、信頼性・セキュリティ・パフォーマンス・コスト・オペレーショナルエクセレンスの5つの柱で構成されます。これらの基本原則に従うことで、最適なAzure運用の実現が可能です。
①信頼性
すべてのレベルで障害を予測できる仕組みを設計し、迅速にシステムを復旧すること
②セキュリティ
アプリケーションのライフサイクル全体を通して、あらゆる脅威から保護するためのセキュリティ対策を実装すること
③コストの最適化
ビジネス目標と予算のバランスを考慮し、コスト効率の高い環境を設計すること
④オペレーショナルエクセレンス
自動化によって運用コストとリスクを削減し、サービス品質の向上を目指すこと
⑤パフォーマンス効率
容量やリソースの最適化を図り、最良のパフォーマンスを実現すること
他社のクラウドサービスとの比較
AWS、GCP、Azureは、それぞれ独自のWell-Architected Frameworkを提供していますが、共通点も多いのが特徴です。たとえば、信頼性、セキュリティ、パフォーマンス、コスト、オペレーショナルエクセレンス(運用上の優秀性)はAWS、GCPにも実装されており、クラウド環境の最適な設計と運用をサポートしてくれます。それぞれの特徴をまとめると、以下のようになります。
AWS | GCP | Azure | |
構成要素 | ①運用上の優秀性 ②セキュリティ ③信頼性 ④パフォーマンス効率 ⑤コスト最適化 ⑥サステナビリティ | ①システム設計 ②オペレーショナル エクセレンス ③セキュリティ ④信頼性 ⑤費用の最適化 ⑥パフォーマンスの最適化 | ①信頼性 ②セキュリティ ③コストの最適化 ④オペレーショナルエクセレンス ⑤パフォーマンス効率 |
目的 | ベストプラクティスを活用したシステムの構築 | ソリューションの設計/運用の最適化 | 高品質なソリューションの設計/継続的な改善 |
Azure Advisorとは?
Azure Advisorとは、Azureの利用状況を分析し、最適な活用法(推奨事項)を提案してくれるサービスです。推奨事項はベストプラクティスの観点から提示されるため、利用者は素早く適切に対処できます。また、Azure Advisorでは最適化の達成度合いを数値化したり推奨事項をアラート通知したりする機能も実装されており、効率良くAzure環境の最適化が図れます。
なお、Azure Advisorは無料で利用できますが、推奨事項によっては費用がかかります。たとえば、仮想マシンのサイズ拡張やハイパフォーマンス用のストレージが推奨された場合、これを実施することで新たなコストが発生します。
Azure Advisorが示す5つのカテゴリ
Azure Advisorでは、ベストプラクティスが示す5つのカテゴリに基づいた推奨事項が提示されます。それぞれの詳細をまとめたものが以下になります。
カテゴリ | 内容 |
信頼性 | 可用性(継続稼働率)を高めるための推奨事項 |
セキュリティ | 仮想マシンやネットワークのセキュリティを向上させるための推奨事項 |
パフォーマンス | アプリケーションやリソースの応答速度改善に向けた推奨事項 |
コスト | 仮想マシン・リソースの利用効率を向上させるための推奨事項 |
オペレーショナルエクセレンス | Azureの運用全般を効率化させるための推奨事項 |
Azure Advisorの必要性
ベストプラクティスに沿った最適化は、Azure Advisor以外のサービスでも可能です。たとえば、Microsoft Defender for Cloud(旧Azure Secutiry Center)やAzure Cost Managementを活用すれば、セキュリティとコストを最適化できます。しかしながら、これらの機能はカテゴリが限定されるため、Azure Advisorのように全体を管理できるわけではありません。その意味において、Azure Advisorの必要性は高いと言えます。
Azure Advisorの主要機能と利点
Azure Advisorでは、推奨事項の提示以外にもいくつかの機能が搭載されています。以下、最適化に役立つ3つの機能について解説します。
● ベストプラクティスの達成度を数値化する「Advisorスコア」
● 推奨事項を素早く実装する「Azure Quick Fix」
● 新たな推奨事項を通知する「Azure Advisorアラート」
ベストプラクティスの達成度を数値化する「Advisorスコア」
Advisorスコア は、ベストプラクティスに基づいた最適化の達成度合いを数値として表す機能です。Advisorスコアは5 つのカテゴリスコアと総合スコアで構成され、総合スコアが100%に近いほど達成度が高いことを意味します。
Advisorスコアを利用する最大のメリットは、運用効率の向上です。取り組むべきポイントはダッシュボード画面から確認でき、素早く適切に対処できます。また、実施した内容は翌日すぐに反映されるため、日次・月次の単位で進捗度合いを管理できます。
推奨事項を素早く実装する「Azure Quick Fix」
Azure Quick Fix は、Azure Advisorが提示した推奨事項を素早く実行してくれる機能です。対象となるリソースには「一括で実行」「延期」「却下」を設定でき、必要に応じて実行範囲を切り分けられます。また、実行アクションは数クリックだけでまとめて実施されるため、大規模な最適化でも効率良く対処できます。
ただし、一括実行はすべてに適用されるわけではなく、簡易的に実行できる範囲に限られます。また、アクセス権限によっては実行が取り消される場合もあるため、実行結果も合わせて確認が必要です。
新たな推奨事項を通知する「Azure Advisorアラート」
Azure Advisorアラートは、特定の条件に該当する推奨事項が見つかった際に、アラート通知できる機能です。新しい推奨事項が検出されるとアクティビティログにイベントが格納され、これをアラートとして実行できます。設定条件には、カテゴリ・影響レベル・推奨事項の種類の3つが指定でき、メールや音声通話、テキストメッセージなどが受け取れます。また、アラートルールはAzure Portalで管理できるため、既存のアクショングループを用いた運用も可能です。
ただし、2024年8月時点では、対象カテゴリが信頼性・パフォーマンス・コストに限定されています。セキュリティに関わる推奨事項はサポートされていないため、注意が必要です。
ベストプラクティスに沿った最適化のテクニック
Azure環境を最適化させるには、ベストプラクティスの原則に従う必要があります。具体的に、どのようなテクニックが用いられているのか見ていきましょう。
信頼性の向上
信頼性の向上に関わるキーワードは「可用性」と「回復性」です。
仮想マシンの冗長化
可用性を高める方法の一つが仮想マシンの冗長化です。Azureでは、各サービスにSLA(サービスレベル合意)が提供されており、95〜99.9%の稼働率が保証されています。しかし、その稼働率が十分でない場合は、より稼働率の高いディスクを選択する必要があります。さらに、「可用性セット」や「可用性ゾーン」といった複数マシンによる冗長化を行えば、信頼性の高いAzure環境を維持できます。
ストレージの冗長化
Azure Storageでは災害や障害からデータを保護するため、以下のような4種類の冗長化オプションが提供されています。冗長化が高くなるほどコストはかかりますが、より高い可用性と継続性が保証されます。
①ローカル冗長ストレージ(LRS)
同一センター内で3つのデータコピーを作成
②ゾーン冗長ストレージ(ZRS)
異なるデータセンター3つのデータコピーを作成
③geo冗長ストレージ(GRS)
ローカル冗長後のデータをセカンダリリージョン(地理的な場所)にコピー
④geoゾーン冗長ストレージ(GZRS)
ゾーン冗長後のデータをセカンダリリージョン(地理的な場所)にコピー
Azure Load Balancerの活用
Azureでは、トラフィックの負荷を分散させるAzure Load Balancerが提供されています。複数のサーバーや機器が連携し合うことで負荷を均等に割り当てる仕組みです。大量のアクセスが集中しても負荷がかかりにくく、サーバーの安定性・可用性を維持できます。また、Azure Load Balancerにはフェイルオーバー機能も搭載されているため、障害が発生した場合でも自動的に待機システムに切り替わります。
セキュリティの強化
セキュリティ強化に必要なのが「暗号化」と「保護」です。
データの暗号化
自社の機密情報をあらゆる脅威から守るには、データの暗号化が必須です。ただし、暗号化に用いるトークンやパスワードについても、適切な管理が求められます。
Azureでは、Azure Key Vaultを利用することで、認証や暗号化に使われる文字列「鍵」の統合管理が可能です。これらはキーコンテナと呼ばれる仮想の領域に分離され、アクセス制限によってより高いセキュリティが維持されます。
仮想マシンの保護
仮想マシンを保護する方法として取り入れたいのが多要素認証(MFA)です。MFAとは、サービスへアクセスする際に2つ以上の要素を必要とする認証方法で、これを実装すれば安全性の高いアクセスが可能となります。具体的な方法としては「知識情報(ID・パスワード、秘密の質問など)」「所持情報(個人の端末情報など)」「存在情報(指紋、虹彩など)」の3つがあり、一般的に多いのが個人端末にワンタイムパスワードが送られる「所持情報」です。
ゼロトラストの実装
Azureがセキュリティ対策の概念として提唱しているのがゼロトラストモデルです。ゼロトラストとは「すべてを信用しない」という考え方のことで、これを実施するにはネットワークやデバイスの境界にとらわれないセキュリティ対策が求められます。たとえば、Microsoft Entra ID(IDの認証・管理)やMicrosoft Intune(デバイス管理)、Azure Sentinel(驚異の検出)などを組み合わせれば、社外・社内を含めたセキュリティ対策を実施できます。
パフォーマンスの最適化
パフォーマンスの向上に関わるキーワードは「最適化」と「スケーリング」です。
適切なリソースの割り当て
Azureのパフォーマンスに大きく関わるのがリソースの割り当てです。仮想サーバーは、VMサイズによってCPUやメモリ、ネットワーク帯域幅の割り当て量が決まります。そのため、適切なサイズを選ばなければ処理速度の低下を招く可能性があります。これを回避するには、Azure Monitorで現在のリソース状況を分析し、適切なVMサイズ・ストレージの選択が必要です。
自動スケーリングの実装
Azureでは、条件によってリソースを増減させる自動スケーリングの利用が可能です。自動スケーリングを実装すれば、アプリケーションの負荷状況によってリソースの追加・削除が自動で行われます。スケーリングを行うタイミングは、メトリックに基づく条件やスケジュールで管理できるため、常に最適なパフォーマンスを維持できます。
ネットワーク構成の最適化
パフォーマンスの低下を招く要因の一つとして考えられるのがネットワークの構成です。自動スケーリングでも改善されない場合は、 Azure Virtual Network(仮想ネットワーク)の設定やサブネットを見直す必要があります。また、Azure Traffic Manager(DNS ベースのトラフィックロードバランサー)ではトラフィック分散が制御でき、アプリケーションの応答速度改善が期待できます。
コストの削減
Azureではさまざまなサービスを利用することでコスト削減が可能です。
コストのアラート設定
Azureは、利用した分だけ課金される従量課金制のため、運用によっては想定上のコストが発生します。この回避策として利用できるのが、Azure Cost Managementのアラート設定です。アラート設定ではあらかじめ費用にしきい値を設けられ、それを超えた時点でメールが通知されます。また、画面からは利用状況の可視化・分析も可能なため、予算管理を行う際も活用できます。
不要なリソースの削除
コスト管理において、意外と見落とされがちなのが不要なリソースの削除です。たとえば、システムのリプレイスや廃棄を行った際、不要となったリソースを削除し忘れるケースがあります。管理されないままリソースが残り続けてしまうため、毎月のランニングコストを増加させる要因になります。
このようなムダなコストを削除するには、Azure Advisorの活用がおすすめです。Azure Advisorでは、活動休止状態のリソースや活用されていないリソースを特定し、削除や最適化が行えます。
仮想マシンの最適化
コスト削減に向け、Azure Advisorが推奨しているのが仮想マシンの最適化です。具体的には、仮想マシンの稼働率からリソースタイプを見直すことや、利用しない仮想マシンの削除・サイズ変更などが挙げられます。また、特定の時間のみ利用する仮想マシンについてはStart/Stop VMs v2機能を活用し、自動停止・自動開始などの対応が必要です。
オペレーショナルエクセレンス
オペレーショナルエクセレンスは「運用の最適化」を意味する言葉で、これを実施するには「サービスの活用」と「自動化」が求められます。
DevOpsを前提とした開発
Azure Advisorでは、DevOpsを前提とした開発が推奨されています。わかりやすく言うと、開発の際はAzureサービスを積極的に活用し、設計から開発、運用までをスムーズ化させるといった内容です。
具体的な方法としては、SDK(ソフトウェア開発キット)の組み込みやAzure Automation(自動オートメーション機能)、自動化テンプレートの活用などが挙げられます。また、開発環境を利用する際は、常に最新のバージョンを維持することも重要です。
プロセスの自動化
オペレーショナルエクセレンスを実現するには、あらゆるプロセスの自動化が求められます。これは設計や開発に限った話ではなく、監視やその他の運用タスクにおいても同様です。たとえば、取得したログやメトリックにあらかじめ閾値を設けておけば、自動でアラートが発行できます。また、その後のアクションも、自動スケーリングを用いることで素早く問題に対処できます。
クォータ上限の拡張
Azureの管理で注意したいのが、クォータ上限です。クォータとは、Azure環境内で利用できる各種リソースの制限を意味する言葉で、仮想マシン(Azure VM)やストレージリソース、ネットワークリソース、データベースリソースなどがこれに該当します。
仮に、上限を越えるとAzure VMがデプロイできないといった問題が生じますが、その場ですぐに上限の解除ができません。これに備えるには、上限に達する前にクォータ拡張を検討し、Azure portalから引き上げ要求をリクエストする必要があります。
まとめ
Azure運用は、監視やセキュリティ対策、プロセスの自動化などの施策を講じることで、最適な環境・運用を維持できます。その際、運用設計の指針を示してくれるのがベストプラクティス(Well-Architected Framework)です。
ベストプラクティスに沿った最適化を行うには、Azure Adviserの活用がおすすめです。Azure Adviserは、ベストプラクティスの観点から最適な活用法(推奨事項)を提示してくれます。さらに、必要に応じて他のAzureサービスを併用することで、最適且つ効率的なAzureが実現できます。