アーキテクチャ・ジャーナル

環境に優しいインフラストラクチャ設計

Lewis Curtis
2009/09/08
Page1 Page2 Page3 Page4

包括的な設計アプローチ

 環境への影響を左右する意思決定を行う場合は、アーキテクチャの特定のエンジニアリングや開発ポイントなど、小さな単位で意思決定を下す方が容易です。しかし、その反面、それらの意思決定がどのように相互作用し、IT やビジネス エコシステムに影響するかを把握するのは困難になります。

 包括的な設計とは、アーキテクトが影響の全体像を見極めつつ、個々のピースをどのように有効に組み合わせればよいかを把握していることを意味します。例として e コマース アーキテクチャを取り上げましょう。図 2 では、e コマースをサポートするデータ センター サービスにこのアーキテクチャがどのような環境影響を与えるかを示しています。

図 2: データ センター サービスへのソリューションの環境影響

 設計のより小さな単位では、時として矛盾が発生することもあります。たとえば、PUE(電力使用効率)指標は、データ センター全体の電力消費量を基幹システム(サーバー、ストレージ、通信など)のエネルギー消費量と比較して算出されます。そのため、PUE 指標では、効率性の高い物理的なデータ センター設計が奨励されます。

 PUE は、現在広く使用されている指標であり、IT 企業に有用なデータを提供しています。

 しかし、この指標にのみ頼って設計を行うと、データ センターの基幹システムで消費されるエネルギー量を減らすよりも、増やす方が指標値は良くなります。実際、システムをより効率性の高いサーバーに交換すると、PUE の数値は悪化する場合があります。

 PUE は、データ センター全体の物理的な稼動状況を測定するには有効ですが、サーバーの効率化モデルには適していません。重要なのは、適切な領域で適切な動作を促す指標を選択することです。

 グリーン化の取り組みを指揮するインフラストラクチャ リーダーは、このような包括的な視野を備えている必要があります。

システム SKU

 各階層またレイヤー領域ごとにシステムの製品構成(SKU)のセットを明確に設定しておけば、エネルギー効率と消費量の基準、および企業の環境影響基準を適用することが容易になります。

 たとえば、ハードウェアを購入するとき、ACPI 3.0 システムであればWindows Vista や Windows Server 2008 の高度な電力管理機能を使用して、エネルギー消費量を削減することができます。サーバーの場合は、重複する電力供給を削減または廃止し、最も効率的な電力供給を実現する方法を検討できます。

インフラストラクチャ プラットフォームの最適化

 従来のモデリングでは、コンポーネント図が用いられ、階層間の物理マシンに注意が向けられていました。しかし、アーキテクトが環境の最適化を実現するため、十分な情報に基づいた意思決定を行うには、さらに多くの情報が必要です。

図 3: 環境影響にかかわるシステム品質

 アーキテクトはしばしばパフォーマンス、可用性、スケーラビリティ向上のために、冗長性を高めようとすることがあります。この方法はいくつかのシステム品質の向上に役立つとはいえ、過剰な冗長性はかえってさまざまな問題の原因となりかねません。そのような問題の 1 つに、複雑性があります。アーキテクチャが少し複雑になるだけでも、規模の大きなソリューションでは、意図しないエネルギー消費につながることがあります。規模の大きな環境でシンプルな設計が好まれる理由はそこにあります(多くの場合、運用の脆弱性の軽減にもつながります)。つまり、エネルギー消費量の削減と環境影響の軽減を求める圧力やニーズは、アーキテクトが複雑さをさらに軽減しようとする動機付けとなっているのです。

インフラストラクチャ環境の分割

 アーキテクチャの基幹システムによる環境影響を削減するには、インフラストラクチャを小さな単位に分割してグリーン化を検討する必要があります(図 4)。

図 4: 環境の最適化を検討するため、階層ごと、またシステム サービス

 アーキテクト チームはまず階層(クライアント、プレゼンテーション、ビジネス、リソース)ごとにグリーン化を検討し、アーキテクチャの重要な意思決定ポイントを分析したうえで、企業で採用するベスト プラクティスを決定します。プラットフォーム アーキテクチャ全体で環境影響の最適化を実行するには、各階層を以下の環境に分けて検討する必要があります。

  • ソリューション環境
  • オペレーティング システム環境
  • 物理システム環境

 アーキテクチャの各階層は、5 つのシステム サービス領域に分割できます。

  • 物理サービス
  • 実行サービス
  • オペレーティング サービス
  • アプリケーション サービス
  • ソリューション サービス

クライアント層の最適化

 クライアント環境を最適化し、エネルギー削減と環境影響の軽減を実現するには、多くの方法があります(図 5)。

図 5: クライアント層におけるエネルギー消費削減対策
  • クライアントの物理実行環境。Windows Vista の ACPI 3.0 電力管理機能を認識する Energy Star 4.0 準拠システムを使用すると、プロセッサ(およびマルチコア)や接続デバイスの電力をオペレーティング システムで管理し、休止状態やスリープの高度な機能を活用することができます。また、管理者はグループポリシーを活用することにより、必要に応じて CPU の最大負荷を制限し、エネルギー消費量を削減できます。

  • オペレーティング実行環境。エネルギー効率に優れた最新のコンピューター ハードウェアを活用するには、オペレーティング実行環境が新しい ACPI 3.0 ハードウェア機能に対応していなければなりません。加えて、オペレーティング実行環境はユーザーや管理者に高度なパフォーマンスと電力管理機能を提供できなければなりません。オペレーティング実行環境とは、オペレーティング システム、およびシステムをサポートするユーティリティの構成と標準化を指します。この環境で重要視しなければならないのは、企業が必要とするコンピューティングのニーズに応えつつ、積極的な電力削減対策を導入することです。標準化された構成をセットアップするときには、実行するシステム サービスの数を最小限に抑えて、エネルギー消費量を削減します。

* ソフトウェアのベンダーは、クライアント システムのオン/ オフを個別に切り替えてエネルギー使用量を抑えられる多様なソリューションを開発しています。
  • アプリケーション サービス環境。フル インストールされているアプリケーションの実行に消費されるリソースの量を削減するには、クライアント システム向けの Microsoft Application Virtualization ソリューションなどのクライアント アプリケーション仮想化機能、および新しい Windows Server 2008 ターミナル サービスのリモート クライアント インターフェイス ソリューションを活用できます。ただし、これらのソリューションを使用する場合は、十分にシナリオを検討したうえで注意深い計画と作業を実施する必要があります。また、実際に展開した場合の GHG とエネルギー消費のトレードオフをすべて慎重に測定することも必要です。

  • ソフトウェア環境。省電力対応の WPF アプリケーションでは、クライアントの電力の状態に応じて、電力の消費を抑えたプレゼンテーション方法が使用されます。また、クライアント環境でのエネルギー資源の消費を最小限に抑える、アプリケーション開発のベスト プラクティスを集めたアプリケーションもあります。

負荷分散から負荷統合と最適化へ

 典型的な N 層設計では、しばしば、競合や縦割りの予算配分が問題となります。また、不必要な重複が発生するため、多くのエネルギーが無駄に消費されます。

 ほとんどの企業では複数の N 層設計が使用されていますが、そのサーバーの多くは十分に活用されていません。結果として、エネルギーが浪費され、企業のカーボン フットプリントが増加しています。

 階層領域を統合すれば、資本コストや運用コスト、エネルギー消費量、環境への影響が削減されます。また、企業全体で設計に一貫性を持たせることにより管理を簡素化できます。

 個々の N 層ソリューションを統合するには、多くの場合、階層領域ごとに異なるアプローチが必要となります。以降のセクションでは、それぞれの階層領域で使用できる一般的なアプローチを考察します。


 INDEX
  [アーキテクチャ・ジャーナル]
  環境に優しいインフラストラクチャ設計
    1.ビジネス目標の認識/エネルギー消費と環境影響
  2.包括的な設計アプローチ/インフラストラクチャ環境の分割
    3.プレゼンテーション層/ビジネス層/情報リソース層の最適化
    4.環境に優しいアーキテクチャ設計のベスト・プラクティス

インデックス・ページヘ  「アーキテクチャ・ジャーナル」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間