IaaS(Infrastructure as a Service)が多様化し、アプリケーションをクラウド上で開発する機会が増えている。「設計・実装」「性能テスト」「オートスケール」など六つの場面を取り上げ、IT現場で明らかになったアンチパターンをその原因とともに紹介する。
IaaSはサーバー、ネットワーク、ストレージといったITインフラをインターネット経由で提供するサービスである。ユーザーは、IaaS事業者が用意したITインフラを時間課金や月額課金などで必要な量だけ利用する。
代表的なサービスとしては、米Amazon Web Services(AWS)のAmazon Elastic Compute Cloud(EC2)が知られるが、国内の大手SI事業者やコンピュータメーカーなどもIaaS事業に続々と参入している。
IaaSでは基本的に、IaaS事業者が構築した仮想環境上にVM(仮想マシン)を作成し、ユーザーがOS、RDBなどのミドルウエア、アプリケーションを導入して利用する。
最近は、IaaS事業者がOSやRDBソフトウエアを導入済みのVMを提供する場合や、RDBソフトウエアが稼働する共同利用のサーバーを仮想環境とは別にユーザーに提供するRDBサービスを行う場合が増えてきた。いずれもソフトウエアは、IaaS事業者がユーザーに従量課金制で提供する。
ITエンジニアのメリットは大きい。
IaaS上でのシステム開発を中心に事業を展開するサーバーワークスの大石良氏(代表取締役)は「インフラが短期間で用意されるため、開発が効率化できる」と語る。
IaaS上にASPサービスとして眼鏡小売店向けの顧客管理システムを構築したHOYAサービスの関矢聡氏(情報システム事業部 システムソリューション部 ゼネラルマネジャー)は、「システムの運用負荷が下がった」という。
しかし、IaaS上で稼働するアプリケーションを開発する際は、多くの注意点があることがIT現場で明らかになっている。IaaSではITインフラをできるだけ多くのユーザーが共有することでコスト効率を追求するための制約があるからだ。また、IaaSの機能には適用方法を選ぶものがある。
以降では「設計・実装」「性能テスト」「オートスケール」「セキュリティ」「クラウド乗り換え」「開発環境」の六つの場面を取り上げ、アンチパターンをその原因とともに解説する(図1)。
(1)設計・実装
自社構築と同じと考えてはいけない
IaaSは複数のユーザーが共同で利用するITインフラである。IaaSの構築に適用されている技術は、サーバー仮想化など自社構築システムと同じものだが、特定のユーザーがシステムリソースを専有したり、セキュリティを侵害したりしないようにIaaSごとに細かな制約がある。そのため、設計・実装を自社構築と同じと考えてはいけない。
IaaS上で稼働するASPサービスを開発したNTTデータスミスの古田充夫氏(情報システム事業部 ITソリューション営業部 開発課 課長代理)は「ITインフラの制約を詳細に調べて、それを回避するようにアプリケーションを設計しないと手戻りが発生する」と指摘する。実際にあった例を紹介しよう。