IaaS
Infrastructure as a Service
概要(サマリー)
IaaS(Infrastructure as a Service / イアース、アイアース)とは、インターネット経由で、仮想サーバー、ハードディスク、ネットワークなどの「ITインフラ(コンピューティング資源)」そのものをサービスとして貸し出すクラウドの提供形態である。
不動産の「さら地のレンタル」や「スケルトン物件(骨組みだけの店舗スペース)」にたとえられる。
すでに完成された部屋に泊まるSaaS(ホテル)とは異なり、枠組みだけを借りて、その上にどのようなOSやソフトウェアを乗せ、どう内装(システム)を作るかは借り手側の自由に委ねられている。最も自由度が高いぶん、OSやセキュリティ設定などを自分で管理する責任も大きいクラウドサービス形態である。
詳細解説
IaaSとは何か
従来のシステム開発では、自社の中に高価な物理サーバーを買い、回線を引き、エアコンの効いたサーバー室を管理して運用していた(オンプレミス)。
しかし、IaaSでは物理的なサーバー機器はすべてクラウド提供会社(AmazonやGoogleなど)の巨大データセンターにあり、ユーザーはブラウザの管理画面からボタンを押すだけで、必要なスペックの「仮想的なサーバー」を数分でレンタルすることができる。
IaaSの代表例
- Amazon Web Services (AWS): Amazon Elastic Compute Cloud (EC2), Amazon S3
- Google Cloud (GCP): Compute Engine (GCE)
- Microsoft Azure: Azure Virtual Machines
SaaS, PaaS, IaaSの管理範囲の違い
クラウドサービスは、提供される範囲によって管理責任の分担が異なる。
| サービス種別 | 事業者(クラウド側)が提供・管理するもの | ユーザー(開発者側)が管理・設定するもの |
|---|---|---|
| SaaS (ソフトウェア) | 物理機器、ネットワーク、OS、アプリの機能すべて | アプリケーションの利用設定、データ入力のみ |
| PaaS (プラットフォーム) | 物理機器、ネットワーク、OS、データベース環境 | 自分が開発したプログラムコード、データ |
| IaaS (インフラ) | 物理機器、ネットワーク線、仮想化の土台 | OSの選択・更新、ミドルウェア(Webサーバー等)の設定、アプリ開発、セキュリティ対策すべて |
IaaSは「パソコンの物理的な箱と回線」だけを借りるのに等しいため、OSのインストール(選択)からセキュリティパッチの適用にいたるまで、高度なインフラ知識が必要になる。
IaaSの大きなメリット
- 初期費用ゼロ・即時調達:
何百万円もする物理サーバーを購入することなく、月額・時間単位の従量課金(使った分だけ支払う)で即座にサーバーを起動できる。 - 構成変更の柔軟性:
「キャンペーンで一時的にアクセスが増えそうだから、サーバーのパワー(CPUやメモリ)を今日だけ2倍にする」といったスケール変更が管理画面から即座に行える。 - 究極の自由度:
OSのバージョン指定、データベースのチューニング、ネットワークの複雑な接続設定など、自社の要件に合わせてかなり細かくインフラをカスタマイズできる。
AIコーディングとの関係
IaaSを利用してクラウド上にインフラを構築する際、コードによってインフラの構成を記述・自動生成する手法(IaC: Infrastructure as Code)が主流となっている。
AIコーディングを利用することで、この複雑なIaC(TerraformやCloudFormationなど)のコードをスピーディに生成できる。
- インフラ自動構築コードの生成指示:
AIに対して、「AWSのEC2(仮想サーバー)を1台作成し、特定のVPCサブネットに配置して、80番ポート(HTTP)だけを開けるTerraformのコードを書いて」と指示する。
これにより、手動で管理画面(AWSコンソール)をクリックして設定する手間を減らし、インフラ構成コードのたたき台をすばやく作れる。ただし、適用前にはterraform planなどで差分を確認し、公開ポート、権限、料金への影響を必ずレビューする必要がある。
TerraformによるIaaS(AWS EC2)構築コードの例(AI生成):
# AWS上に仮想サーバー(EC2)を1台起動する設定
resource "aws_instance" "web_server" {
ami = "ami-0c55b159cbfafe1f0" # 使用するOS(Ubuntuなど)のID
instance_type = "t2.micro" # サーバーのスペック指定
tags = {
Name = "MyWebServer"
}
}
よくある勘違い
IaaSを契約すれば、すぐにWebサイトが公開できる?
できない。
IaaSでレンタルされた直後の仮想サーバーは、いわば「OSが入っただけの、中身が空っぽのパソコン」である。Webサイトを表示するためには、自分でサーバー内にログインし、ApacheやNginxなどのWebサーバーソフトをインストールし、データベースを設定し、自分のプログラム(HTMLなど)を配置する作業をすべて手作業で行う必要がある。手軽に公開したいだけなら、Vercelのようなホスティングサービスやレンタルサーバーを利用する方がはるかに簡単である。
仮想サーバーの管理やセキュリティ対策は事業者がやってくれる?
やってくれない。
IaaSでは「責任共有モデル」というルールが適用される。物理的なデータセンターの防犯や停電対策は事業者の責任だが、「仮想サーバー内のOSのセキュリティパッチ更新」や「アプリケーションの設定」は主に借り手(ユーザー)の責任となる。設定を怠った結果、サーバーがウイルスに感染してスパム送信の踏み台にされることもあるため、適切なインフラ運用が重要である。
クラウド(IaaS)を使えば、オンプレミスより必ずコストが安くなる?
必ずしもそうではない。
IaaSは初期費用がかからない反面、常時稼働しているサーバーやストレージに対して「使った分だけ」の従量課金が発生し続ける。特に、24時間365日フル稼働するトラフィックの多いシステムでは、長期的に見るとオンプレミス(自社サーバー購入)の方が総コストが安くなるケースも存在する。「クラウドは何でも安い」ではなく、自社のシステムの稼働パターンを分析した上で、オンプレミスとクラウドのコストを比較検討することが重要である。
まとめ
- IaaSは、インターネット経由で仮想サーバーやネットワークなどのITインフラ基盤を貸し出すサービス。
- AWSのEC2やGoogleのCompute Engineが代表例。オンプレミスと違い、初期費用不要で柔軟にスペックを変更できる。
- 自由度が最も高い代わりに、OSの管理やセキュリティ対策など、すべての管理責任がユーザー側に生じる。
- AIを活用してIaC(Terraformなど)のインフラコードのたたき台を作ることで、手作業の負担を減らしながらインフラを構築・管理しやすくなる。
情報ソース
より詳しくAIに聞いてみよう
- IaaSのサービスを利用する際、OSやWebサーバーなどの設定作業を自動化するための構成管理ツール(Ansibleなど)の使い方を教えてください。
- AWSの責任共有モデル(Shared Responsibility Model)において、IaaS(EC2)とPaaS(RDS)、SaaS(WorkSpaces)でユーザーの管理責任範囲がどのように変化するか説明してください。
- クラウド上に自動でサーバーを構築・削除する「Infrastructure as Code (IaC)」の代表的なツール(TerraformとAnsibleなど)の役割の違いを教えてください。
- IaaS上で動く仮想サーバー(VM)と、近年主流になっている「コンテナ(Dockerなど)」の仕組みや軽量性の面での違いを教えてください。
- IaaS(仮想サーバー)の従量課金コストを抑えるため、使用していない時間帯に自動でサーバーを停止させるスクリプトの書き方を教えてください。