パブリック クラウドへのアプリケーション移行を適切に実施し、IT に関する不安を解消
このポストは、10 月 23 日に投稿された Don’t Sweat IT - Move Your Applications to the Public Cloud the Right Way の翻訳です。
編集メモ : 今回は、RightScale のソリューション アーキテクトを務める Patrick McClory 氏が執筆した記事をご紹介します。RightScale® Inc. のクラウド管理システムは、パブリック、プライベート、ハイブリッド クラウドにわたりビジネスに不可欠なアプリケーションを容易に配置し管理するうえでの組織化を可能にします。RightScale は効率的な配置、モニタリング、自動化、そしてクラウド コンピューティング インフラとアプリケーションの管理を提供します。
クラウドへの移行にあたっては、データが手元にないという不安を誰もが感じると思います。しかし、心配はいりません。IT 業界では何年もの間、クラウド展開を成功させるために必要となる冗長性、スケーラビリティ、自動化などの基礎的な要素について、実績を積んできました。これらは特に目新しい発想ではありませんが、新しい Windows Azure 仮想マシン (サービスとしてのインフラストラクチャ) ではこのすべてを同時に適用可能で、従来型のデータセンターに比べて大幅に短い時間で、地理的に分散した場所に、冗長性の高いアーキテクチャを構築できます。このことは、規模を問わずあらゆる企業にとって魅力的なものです。RightScale は 2006 年以来、企業によるアプリケーションのクラウド展開を、規模の大小を問わず支援してまいりました。クラウド管理の先駆者として、クラウド環境でのアプリケーションの展開および管理に役立つプラットフォームを提供し、膨大な数のクラウド サーバーをお客様にご利用いただいております。
私たちは、Windows Azure の戦略的パートナーであることに誇りを持っています。ここでは、Windows Azure コミュニティをご覧の皆さんへの自己紹介を兼ねて、世界最大規模のクラウド展開を手掛けた RightScale ならではの経験を生かして開発した、私たちのベスト プラクティスについてお話しします。
冗長性最優先
システム展開における不具合発生への対策としては、Web アプリケーション層の負荷分散とデータベースのミラーリングが、一般的な手法として長い間使われてきました。クラウドには、展開先が地理的に分散されているため、展開先近隣のクライアントにコンテンツを配信する場合に距離が短くなるだけでなく、障害発生時にデータセンターの境界を越えてフェールオーバー機能を提供できるというメリットがあります。システムの冗長性を決定する上での注意事項は、以下のとおりです。
- サーバーの冗長性のみではなく、サーバー稼働時間やパブリック DNS インフラストラクチャも考慮する。
- 不具合を想定して、何度も実際に検証してみる。災害復旧やフェールオーバーのテストは、長期間の稼働を実現するためには不可欠。
- 自動フェールオーバーの意義について考える。システムによっては、自動フェールオーバーがデータ破損の原因となるおそれがある。フェールオーバー計画のテストおよび評価にあたっては、サーバー稼働時間だけではなく、サービス稼働時間およびデータ整合性についても考慮する。
スケーラビリティが開く新しい扉
クラウドでは必要に応じてスケール アップ、スケール ダウンを行えるため、総所有コストを長期にわたり最適化することができます。少数のサーバーで運用されているアプリケーションでリソースの必要量が増加した場合、クラウドでは数時間、あるいはわずか数分で、サーバー数を数百台に拡張できます。反対に、スケール ダウンもすみやかに行えるため、アイドル状態のリソースにコストを費やすことはありません。スケールを決定するうえでの注意事項は、以下のとおりです。
- 不具合の発生を想定して展開を実施する。
- 地域間またはゾーン間のデータ転送コストを評価する。
- スケール アップおよびスケール ダウンを行うタイミングを決めるためのパフォーマンス指標およびシステム トリガーの条件について考慮する。
すべてを自動化
ユーザーが単純作業を行う必要は、もうありません。プロセスの自動化によって、社内のテクノロジ チームは製品サポートに費やす時間を短縮し、更新プログラム、製品、機能、ソリューションなどの開発に専念できるため、企業は生産的な活動に注力できます。必要なときにすばやくスケール アップ/スケール ダウンが可能というメリットを活用したいユーザーにとっては、サーバーを短時間で起動して使用を開始できるようにするために、自動化は重要な鍵となります。Web サーバーを例として挙げると、Web サイトのコードのインストール管理から負荷分散セットアップへの接続まで、すべてを行うことができます。ミラーリングされたデータベース サーバーでは、インスタンス数の増減は非常に簡単ですが、ミラーリング セッションの再初期化プロセス、および新しいセカンダリ ノードの展開プロセスを自動化すると、さらに簡単にデータ レイヤーの処理能力 (およびコスト) を増減できるようになります。自動化に関する注意事項は、以下のとおりです。
- プロビジョニングおよび使用停止のプロセスを自動化する。これらの一連のタスクでは共に、アプリケーションの可用性と稼働時間を確保するために、詳細な事項まで 100% の正確性が要求される。
- お使いの製品で利用可能な PowerShell と Cmdlets のほか、MSDeploy と MSBuild について理解し、展開対象のテクノロジに対応した既存のツールを活用して、作業を最小限に抑える。
- プロセス改良のタイミングにこれを使用する。お使いの製品向けのベスト プラクティスをチェックし、新たに自動化したプロセスへの実装を進める。
それぞれのアイデアは、既に馴染みのあるものです。しかし、これらを正しく実装すると、システム (またはチーム) が小規模であっても、社内チームは物理ハードウェアに対する作業から解放され、可用性の高いソリューションのためのベスト プラクティスに集中できるようになります。冗長性、スケーラビリティ、自動化は、展開規模にかかわらずメリットがあります。プロセスの改良が進むほど、社内チームが短期/長期にわたってビジネスを成長させ得る態勢を整備できます。RightScale フリー版 (英語) で、このような基本的なテクノロジをすばやく簡単に Windows Azure でお試しいただけますので、ぜひご利用ください。