クラウド内で高い信頼性、拡張性、安全性を持つアプリケーションやサービスを構築するために有用な、CDP (Cloud Design Patterns) はクラウドコンピューティング業界の専門家によって「クラウドアーキテクチャでよく起こる問題に対する再利用できる汎用ソリューション」と定義されています。 一見、広義の定義に見えるが、CPDは複数あり、一律ではないことを理解するのに役立つだろう。 CDP が「一般的な問題」を解決するために使用されることを考えると、これらのパターンは、多くのクラウド構築者が遭遇する固有のまたは個別の問題に対する再利用可能なソリューションのライブラリであると言えるでしょう。 また、Amazon Web Service のアーキテクチャに役立つ取り組みとして、デザイン パターンとは何か、どのように使用するかを探りながら、AWS CDP と AWS デザイン技術の将来について見ていきます。
CDP が必要とするものの概要
パターンとデザインに注意してタイル張りの床に敷くように、クラウドアプリケーションの構築では次の行(レベル)の前に各行を完全に敷く(コード化)ことが必要とされます。 一番下のレベルが不安定であれば、その前のレベルも不安定になります。 例えば、床を敷くときに、タイルがどのような形をしているのかを気にせずに敷くと、おそらくかなり悪い結果になるでしょう。 クラウドアプリケーションを設計するとき、エンジニアは常に問題点に気を配っています。 一般的な問題が発生した場合、エンジニアは実績のあるソリューションで確実かつ安全に問題を解決しようとします。 CDPは、すべての人にとって、時間の節約になり、厄介な結果になる可能性もあります。
一般的に標準的なフォーマットで、1つのクラウド・デザイン・パターンに含まれるものを以下に示します。
- パターン名と短い説明
- 典型的な問題と課題の特定
- クラウドでの問題解決の概要
- パターン適用によるメリット
- メリット、デメリット、注釈など追加事項
- その他、建築家が追加したい事項
なぜ CDP を使用するか?
単にパターンを使用してクラウド アーキテクチャを強化し、拡張性の高いアプリケーションを簡単に移行して迅速に開発するだけではなく、このソリューションのライブラリには他にもいくつかの利点があります。 大企業や新興企業は、CDP を使用して、大規模で驚くべき価値を解放しています。 プラットフォームのライフサイクル全体にわたって 100% の再現性を確保し、デプロイされたアプリケーションのメンテナンスを不要にすることで、クラウド システムを実行する際の全体的なフラストレーションのパターンを減らし、生産性を向上させることができるのです。 AWS アプリケーションで作業しているときに、インターネット ストレージの効率を上げる際に問題にぶつかったと想像してください。 その問題を他のアーキテクトに説明すると、彼女は “storage index patternで解決できる “と答えたとします。 パターンの名前を知っているあなたは、すぐに作業に取り掛かった。 これは、簡単にコミュニケーションをとり、問題を解決するために使われる言語です。 プロジェクト開始前にすべてのクラウドアプリケーションの明確なアイデアを持つことで、CDPの助けを借りて、ソフトウェアシステムを作成する際にゼロから始める必要はありません。 AWSによって公式に具体的なリファレンスが記載されているわけではありませんが、AWSのパターンは3人のAmazonアーキテクトによって非公式にデザインされたものです。 各AWS CDPの詳細はWikiに譲るとして、このリソースを超えて、ほとんどのCDPは様々なクラウドサービスに対してかなり互換性があることに注意するのが良いだろう。 1946>
Top AWS Basic Patterns
- Snapshot Pattern (data backups) – データの安全性を確保するために、データの横断やOSとデータのコピーを必要とするプログラムの更新チェックを行う際に最適なパターンです。
- Stampパターン(サーバレプリケーション)-仮想サーバを立ち上げる手間と時間を削減し、機能設定済みの仮想サーバをコピーして利用するパターンです。 大量の仮想サーバを作成する場合に最適です。
- Scale-Up Pattern(動的なサーバースペックアップ/ダウン)-このパターンは、構築者がサーバを交換したりOSを再インストールしたりせずに、使用状況に応じてサーバのスペックを調整することができます。
- Scale-Out Pattern(動的なサーバ数の増加)-高スペックサーバのコストを増加せずにトラフィック量の不意の変動に合わせて対応します。 2240>
- On-demand Dishパターン(動的にディスク容量を増減)-構築前の緻密なディスク容量見積もりをやめ、ハードウェアの先行投資をコストダウン。 このパターンで仮想ディスクを設置すれば、容量は無制限となります。
AWS Pattern Categories
基本的でよく使われる5つのAWS CDPとともに、以下のクラウドアプリケーションの各領域も複数のパターンソリューションを持っています。
- 高可用性
- 動的コンテンツの処理
- 静的コンテンツの処理
- データのアップロード
- リレーショナルデータベース
- バッチ処理 処理
- 運用・保守
- ネットワーク
Lambda and future of AWS CDP
クラウドサービスの技術が成長し、イノベーションが実施されるようになりました。 CDPが適用されなくなることもあり得ます。 その上、近い将来、AWSのLambdaのような技術のおかげで、CDPが不要になる可能性すらあります。 サーバーレスコンピューティングプラットフォームとして、”イベントに応じてコードを実行し、そのコードが必要とするコンピューティングリソースを自動的に管理するコンピューティングサービスである。”とされています。 Lambdaは、クラウドアーキテクトの注意を引くことなく、特定のクラウドデザインの問題を解決できることを意味する。 現在、CDP のすべての問題を解決しているわけではありませんが、近い将来、イベント駆動型アーキテクチャが手動で起動するソリューションに取って代わる可能性があります。
CDP が将来どこに向かうとしても、確実に言えることは、クラウド サービスの拡張と成長が不可避であるということです。 現在、この成長に対応するために、AWSはCloud Pattern Studioというサービスを持っています。 本来は、パターン内のソリューションを Cloud Formation と組み合わせてテンプレートに入力する機能で、環境ソフトウェアスタックを視覚的に設計して AWS 上に展開するように設計されています。
クラウドへの移行を考えている、あるいはすでにクラウド上で組織を運営している場合、クラウドベースのワークロードの実行方法を理解してプラットフォームの真の力を引き出すことは、長期的にコストと労力を節約することになります。 クラウドソフトウェアの実行中にビルダーが遭遇した問題を解決するために、よく知られたパターンを活用することは、この進化する時代において非常に価値があるのです」
。