Webテクノロジーとクラウド
HTTP/HTTPS、API、REST、GraphQL、SaaS/PaaS/IaaS、仮想化、コンテナを整理する
このページの役割
このページは、Web技術 と クラウドコンピューティング を整理するページです。HTTP/HTTPS から始まる Web の基礎、API と Web サービス の設計パターン、そして クラウドサービスモデル と デプロイメント形態 を一本の流れで押さえます。
学習のポイント
- まず
HTTP/HTTPSとcookie / セッション管理で Web 通信の基本を理解する - 次に
APIの設計パターン(RESTvsSOAPvsGraphQL)とWeb サービスを分ける - そのうえで
クラウドの 3 層モデル(SaaS / PaaS / IaaS)とデプロイメント形態を整理する - 最後に
仮想化、コンテナ、サーバレスなどの実装技術をスタック図で押さえる - 試験では、どの層を管理するのかという「責任の線引き」が最頻出である
試験で何が問われるか
HTTP/HTTPSとcookie / セッションの役割を説明できるかRESTの特徴(ステートレス、リソース指向)を言えるかSaaS / PaaS / IaaSを、提供範囲と管理責任で区別できるか(最重要)仮想マシンとコンテナの違いを実装と効率の観点で説明できるかオンプレミスとクラウドの使い分けを、コストと柔軟性で読めるかパブリック / プライベート / ハイブリッドクラウドの使い分けを言えるか
定義と仕組み
HTTP と HTTPS
HTTP は Web ブラウザとサーバ間でテキストやファイルをやり取りするプロトコルです。HTTPS は、その通信を TLS/SSL 暗号化で保護します。試験では ステートレス(各リクエストが独立)という特性が重要です。
Cookie とセッション管理
HTTP はステートレスなため、ユーザーをどう識別し続けるかが課題です。Cookie はクライアント側に小さなデータを保存し、毎回のリクエストで自動送信する仕組みです。セッション はサーバ側でユーザーの状態を保持し、Session ID を Cookie で受け渡す仕組みです。試験では、認証後の状態保持がどう実装されるかを理解することが大切です。
Ajax と WebSocket
Ajax は、ページ全体をリロードせず、JavaScript で部分的にサーバと通信する技術です。WebSocket は、HTTP をアップグレードして双方向通信を実現するプロトコルです。リアルタイム性が必要なチャットやライブ更新では WebSocket、ページ部分更新では Ajax という使い分けが基本です。
PWA(Progressive Web App)
PWA は、ブラウザ上で App 同様の体験(オフライン動作、プッシュ通知、ホーム画面インストール)を提供する Web アプリケーションです。Service Worker というブラウザバックグラウンドプロセスがキャッシング戦略を管理します。試験では、Web アプリの進化形 として位置付けます。
REST と Web API
REST(Representational State Transfer)は、Web 上のリソース(URI)に対して、HTTP メソッド(GET, POST, PUT, DELETE)で操作する設計原則です。ステートレス、リソース指向、キャッシュ可能 が特徴です。試験では、RPC 的な設計との違いを理解することが重要です。
SOAP と Web Service
SOAP は、XML ベースの複雑な交換プロトコルです。WSDL(Web Services Description Language)で仕様を定義し、UDDI で検索可能にするエンタープライズ向けの仕組みです。REST が単純な CRUD 中心なのに対し、SOAP はトランザクション性が求められるシステム間連携に使われます。
GraphQL
GraphQL は、クライアント側で必要なデータ構造を指定して取得する言語です。REST のような複数エンドポイント呼び出しや、不要なデータ取得の無駄を削減できます。試験では、REST との設計思想の違いを認識することが大切です。
JSON と XML
JSON(JavaScript Object Notation)は、キーと値のペアをネストできる軽量な形式です。XML は、タグ構造で階層的なデータを表現できる拡張可能形式です。API 設計では、JSON がシンプルさで、XML が複雑なスキーマ定義で使い分けられます。
Web ページ表示と Web API の切り分け
年度別の過去問では、HTTP、HTML/CSS、Web API、JSON、REST をひとまとまりに出して混乱させる問題が繰り返し出ています。ここは「何を決める言葉か」で切ると崩れにくくなります。
| 用語 | 何を決めるか | 主に扱うもの | 問題文の合図 |
|---|---|---|---|
HTTP / HTTPS | 通信のルール | リクエストとレスポンス、暗号化の有無 | 送受信、URL、メソッド、暗号化 |
HTML / CSS | 画面の構造と見た目 | 見出し、表、レイアウト、色、装飾 | 表示、画面、レイアウト、見た目 |
Web API | プログラム同士の受け渡し窓口 | 在庫、顧客、注文などのデータ | 外部連携、アプリから取得、機能公開 |
JSON / XML | データの表し方 | キーと値、タグ構造 | 交換形式、データ形式、メッセージ形式 |
REST | Web API の設計作法 | URI、HTTP メソッド、ステートレス性 | GET/POST/PUT/DELETE、リソース指向 |
迷ったら、次の順で切ります。
- 通信の約束か:
HTTP / HTTPS - 画面の見た目か:
HTML / CSS - 他のプログラムが呼び出す窓口か:
Web API - その窓口で運ぶデータの荷姿か:
JSON / XML - 窓口の作り方の流儀か:
REST
たとえば、スマホアプリが商品データを取得する なら主役は Web API で、その通信に HTTP を使い、中身を JSON で返し、その API を REST で設計する という関係になります。Web API = HTML/CSS でもなければ、JSON = 通信プロトコル でもありません。
マイクロサービス vs モノリス
モノリス アーキテクチャは、全機能が 1 つの大きな成果物にまとまった設計です。マイクロサービス は、ビジネス機能ごとに小さなサービスに分割し、API で疎結合する設計です。スケーリング性、デプロイ独立性、障害隔離の観点でマイクロサービスが優位ですが、運用複雑性が増します。
クラウドコンピューティングの概要
クラウドコンピューティングは、インターネット経由で計算リソース(サーバ、ストレージ、ネットワーク、ソフトウェア)をオンデマンド提供する仕組みです。従来のオンプレミス(企業が自社でサーバを所有・運用)では、初期投資が大きく、スケーリングに時間がかかります。一方、クラウドは月額課金で開始でき、リソースを瞬時に増減できるため、成長企業やピーク対応が必要なビジネスに向いています。
試験では、サービスモデル の 3 層(SaaS / PaaS / IaaS)と デプロイメント形態 の違いを中心に理解します。特に重要なのは、各層でユーザーが管理する部分が異なることです。「何を提供するのか」と「何をユーザーが管理するのか」をセットで押さえることが合格への鍵となります。
SaaS / PaaS / IaaS の 3 層モデル
クラウドのサービスモデルは、「何をクラウド企業が提供し、何をユーザーが管理するのか」という責任分界で区分されます。
SaaS(Software as a Service) は、完成されたアプリケーションをインターネット経由で利用するモデルです。ユーザーはメールアカウントを作成し、ブラウザにログインすれば、すぐに使えます。Google Workspace(Gmailやドキュメント作成)、Salesforce(営業支援)、Microsoft 365 などが典型例です。ユーザーは「使う」だけで、インフラ、OS、ミドルウェアはすべてクラウド企業が管理します。
PaaS(Platform as a Service) は、アプリケーション開発・実行環境を提供するモデルです。開発者は、ミドルウェアや実行環境をすでに備えた環境にコードをアップロードすれば、すぐに動きます。Heroku、Google App Engine、Azure App Service などが例です。ユーザーは自分が書いたコードとデータだけを管理し、OS以下のインフラはクラウド企業が担当します。
IaaS(Infrastructure as a Service) は、計算リソース(サーバ、ストレージ、ネットワーク)そのものをレンタルするモデルです。ユーザーは、借りた仮想マシン上に OS をインストールし、ミドルウェアとアプリケーションを自分で構築します。AWS EC2、Azure VM、Google Compute Engine などが例です。クラウド企業は物理インフラだけを提供し、OS以上はユーザー責任です。
| サービス | 意味 | クラウド企業が提供 | ユーザーが管理 | 典型例 |
|---|---|---|---|---|
SaaS | Software as a Service | アプリケーション全体 | なし(使うだけ) | Google Workspace, Salesforce, Microsoft 365 |
PaaS | Platform as a Service | OS、ミドルウェア、実行環境 | コード、データ | Heroku, Google App Engine, Azure App Service |
IaaS | Infrastructure as a Service | 物理サーバ、ストレージ、ネットワーク | OS、ミドルウェア、アプリケーション、データ | AWS EC2, Azure VM, Google Compute Engine |
試験では、この「責任の線引き」が頻出です。問題で「この企業はクラウドを使いたい。アプリケーションはすでに完成しており、管理負荷を最小化したい」という状況なら、答えは SaaS です。逆に「新しい Web アプリを開発・実行したい」なら PaaS、「レガシーシステムを段階的にクラウド化したい」なら IaaS、というように、ビジネス要件と責任範囲を結びつけることが重要です。
SaaS / PaaS / IaaS / DaaS の責任分界
DaaS(Desktop as a Service)は、クラウド上のデスクトップ環境を利用するモデルです。社内 PC を 1 台ずつ管理するのではなく、クラウド上の仮想デスクトップへ接続して使います。後で出てくる VDI を、外部サービスとして利用するイメージだと考えると分かりやすいです。
| サービス | ベンダーが主に提供するもの | 利用者が主に管理するもの | 問題文の合図 | 典型的な誤答 |
|---|---|---|---|---|
SaaS | 完成済みアプリケーション | 利用設定、業務データ | すぐ使いたい、管理負荷を最小化したい | OS を自由に触れると思い込む |
DaaS | デスクトップ環境そのもの | 利用者設定、保存ルール、業務利用 | テレワーク、端末にデータを残したくない、仮想デスクトップ | PaaS や IaaS と混同する |
PaaS | OS、ミドルウェア、実行基盤 | アプリコード、設定、データ | 開発環境が欲しい、コードに集中したい | SaaS のように完成済みアプリだと思う |
IaaS | サーバ、ストレージ、ネットワーク | OS 以上すべて | レガシー移行、OS を細かく設定したい | PaaS のように実行基盤込みだと思う |
オンプレミス | なし | すべて | 完全自社管理、厳しい規制、独自構成 | クラウドの一種だと思う |
切り分けのコツは、何を使いたいか より先に どこまで自社で持ちたいか を見ることです。画面環境だけ借りたい なら DaaS、完成済みアプリを使いたい なら SaaS、アプリを作る基盤が欲しい なら PaaS、OS 以上を自社で握りたい なら IaaS です。
FaaS(Function as a Service)
FaaS は、関数単位で実行できるサービスです(AWS Lambda など)。サーバレス と呼ばれることもあります。実行時間とメモリ使用量だけを課金する従量制が特徴です。スケーリングも自動です。
eビジネスの取引類型と EDI
インターネットを使った取引は、単に「EC」とひとまとめにせず、誰と誰の取引か で整理すると理解しやすくなります。中小企業診断士試験では、B2B・B2C・C2C の違いと、企業間連携を支える EDI が定番です。
| 類型 | 相手 | 例 | 特徴 |
|---|---|---|---|
| B2B | 企業対企業 | 部品受発注、卸売サイト、法人向け SaaS | 取引金額が大きく、継続契約やシステム連携が重要 |
| B2C | 企業対消費者 | ECサイト、ネットスーパー、動画配信 | 顧客体験、決済のしやすさ、UI/UX が重要 |
| C2C | 消費者対消費者 | フリマアプリ、オークションサイト | プラットフォーム運営者が仲介・評価・決済を支える |
EDI が果たす役割
EDI(Electronic Data Interchange) は、受発注書、納品書、請求書などの商取引データを、企業間で標準化された形式で交換する仕組みです。紙やFAXをなくすこと自体が目的ではなく、受発注から在庫補充までをつなぎ、サプライチェーン全体を速く正確に動かすこと が本質です。
- 人手入力を減らし、転記ミスを防ぐ
- 発注から納品までのリードタイムを短縮する
- 在庫や販売のデータを連携し、サプライチェーン統合を進める
決済システムの基本
eビジネスでは、取引の類型ごとに使いやすい決済手段が異なります。
| 決済手段 | 向いている場面 | 特徴 |
|---|---|---|
| クレジットカード | B2C の一般的なEC | 即時性が高く、利用者が多い |
| 電子マネー / コード決済 | 少額・高頻度取引、店舗連携 | 少額決済に強く、スマホと相性がよい |
| 銀行振込 / 請求書払い | B2B | 与信や支払サイト管理と組み合わせやすい |
試験では、「企業間の定型反復取引を効率化したい」なら EDI、「消費者向けECで購入のしやすさを高めたい」なら B2C と決済 UX に着目すると整理しやすくなります。
SNS・ブログと情報流通の特徴
Web 活用を問う問題では、単に「インターネットで情報発信できる」だけでなく、どの媒体がどんな伝わり方をするか が問われます。特に SNS と ブログ の違い、メディアミックス の考え方、そして情報の偏りが生じる現象は頻出です。
| 項目 | SNS | ブログ |
|---|---|---|
| 主な強み | 拡散速度、双方向性、リアルタイム性 | 情報量、検索蓄積性、体系的説明 |
| 向いている内容 | キャンペーン告知、反応収集、短文発信 | 詳細解説、ノウハウ蓄積、長文コンテンツ |
| 注意点 | 炎上や誤情報拡散が速い | 更新継続の負荷が高い |
メディアミックス は、1つの媒体だけで完結させず、複数媒体を役割分担させる考え方です。たとえば、SNS で関心を集め、ブログや自社サイトで詳しく説明し、EC サイトで購買につなげる流れです。試験では、単一媒体で全部やる とする選択肢が誤りになりやすいです。
フィルターバブル・エコーチェンバー・集団極性化
インターネット上では、情報が多いだけでなく、偏って届く ことがあります。似た言葉が多いので、どこに偏りの原因があるかで切り分けます。
| 用語 | 偏りの主因 | 内容 |
|---|---|---|
| フィルターバブル | アルゴリズム | 検索履歴や閲覧履歴に合わせて情報が自動的に絞られ、異なる視点に触れにくくなる |
| エコーチェンバー | 同質的な人間関係 | 同じ意見を持つ人同士で情報が反響し、異論が入りにくくなる |
| 集団極性化 | 集団討議そのもの | 同じ方向の意見を持つ集団で話すほど、その意見がより極端になる |
フィルターバブル はシステム側、エコーチェンバー はコミュニティ側、集団極性化 は心理過程側の概念です。ここを区別できると、SNS の設問でかなり強くなります。
デプロイメントモデル
クラウドのデプロイメント形態は、「誰とリソースを共有するのか」という観点で分けられます。
パブリッククラウド は、複数の企業や個人がリソースを共有する形態です。Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Platform などが該当します。ユーザーは低コストで瞬時に利用開始でき、スケーラビリティに優れています。ただし、リソースが他の企業と共有されるため、セキュリティやデータ保護は自社では直接管理できません。Web サービス、開発・テスト環境、一般的な業務システムに向いています。
プライベートクラウド は、1 企業専用のクラウド環境です。物理インフラと管理体制を自社が所有するか、ベンダーに全て委託します。セキュリティ対策やコンプライアンス要件をカスタマイズできるため、機密データを扱う金融機関や医療機関に向いています。ただし、初期投資とメンテナンスコストが高くなります。
ハイブリッドクラウド は、オンプレミス環境とパブリッククラウドを組み合わせる形態です。例えば、基幹システムは自社データセンター(オンプレミス)で運用し、新規プロジェクトはクラウドで実施する、といった使い分けです。既存資産を活かしながら段階的にクラウド化したい企業や、ピーク時だけクラウドに負荷を逃がしたい企業に適しています。
コミュニティクラウド は、特定の業界や団体の共通ニーズに対応したクラウド環境です。例えば、金融業界専用のコミュニティクラウドなら、業界標準のセキュリティやコンプライアンスが組み込まれています。
| 形態 | リソース共有 | 管理責任 | セキュリティ管理 | コスト | 典型的な用途 |
|---|---|---|---|---|---|
パブリック | 複数企業で共有 | クラウド企業 | クラウド企業が実施(標準対応) | 最も安い | Web サービス、開発環境、スタートアップ |
プライベート | 1 企業専有 | 自社またはベンダー | 自社でカスタマイズ可能 | 最も高い | 機密データ、金融・医療システム、規制業界 |
ハイブリッド | オンプレミス + パブリッククラウド | 混合 | 混合 | 中程度 | 段階的移行、ピーク対応、既存資産活用 |
コミュニティ | 特定業界・団体で共有 | 共通管理 | 業界標準に準拠 | 中程度 | 業界特有の規制対応、業界内協業 |
試験では「セキュリティや規制要件が厳しい場合は?」と聞かれたら、プライベートまたはハイブリッド(機密部分はオンプレミス)を選びます。一方、「コストを最小化して新規サービスを素早く立ち上げたい」なら、パブリッククラウドが正解です。
クラウド関連技術スタック
クラウドの効率性を支える実装技術を層で理解します。
仮想化
仮想化 は、物理的な 1 台のサーバ上に、複数の独立した仮想マシン(VM)を走らせる技術です。クラウドの根本を支える技術で、なぜ複数企業が同じ物理サーバを共有できるのかの鍵となります。
具体的には、CPU、メモリ、ディスクを論理的に分割し、各 VM に割り当てます。例えば、128GB のメモリと 32 コア CPU を持つ物理サーバを 4 台の仮想マシン(各 32GB、8 コア)に分割するイメージです。各 VM は独立した OS を持ち、完全に分離された環境で動作するため、1 台の VM がクラッシュしても他の VM には影響しません。
この分割・隔離を実現するのが ハイパーバイザー(仮想化ソフト)です。ハイパーバイザーは、各 VM からのリソース要求を物理レベルで管理し、公平に配分します。VMware vSphere、Microsoft Hyper-V、KVM(Linux 組込み)などが主要な実装です。
仮想化がなければ、サーバの稼働率は低いままです。従来は、1 台のサーバを 1 つのアプリケーション(例:Web サーバ)専用に使っていたため、その サーバの CPU が 10% しか使われていなくても、他のアプリケーションは別のサーバが必要でした。仮想化によって、複数の低負荷アプリケーションを 1 台の物理サーバ上で動かせるため、ハードウェア利用効率が大幅に向上します。
仮想マシン vs コンテナ
両者とも「複数のアプリケーションを 1 台の物理サーバ上で独立して動かす」という目的は同じですが、実装とコスト効率が大きく異なります。
仮想マシン(VM) は、完全な OS をゲストとして含むため、重量級です。各 VM は独立した OS カーネル、デバイスドライバ、ライブラリをすべて持つため、隔離レベルは極めて高く、安全性に優れています。例えば、Linux VM と Windows VM を同じサーバ上で動かすことも可能です。ただし、各 VM が GB 単位のメモリを消費し、起動に数十秒~分かかるため、スケーラビリティと迅速性に欠けます。企業のサーバ統合(複数の古いオンプレミスサーバをデータセンター上の VM に統合する)やマルチテナント環境(顧客ごとに専用 VM を提供する SaaS)に適しています。
コンテナ は、OS カーネルを共有し、アプリケーションと必要なライブラリだけをパッケージ化するため、軽量です。各コンテナは数百 MB~数 GB であり、秒単位で起動できます。隔離レベルはソフト(同じ OS カーネル上での名前空間・リソース制限で分離)なため、VM ほど完全ではありませんが、同じ OS(例:全て Linux)を前提に、複数アプリケーションの軽量隔離が必要なユースケースに最適です。
Docker はコンテナ化の標準技術で、アプリケーション実行環境を「イメージ」として定義します。このイメージは、開発環境・テスト環境・本番環境で全く同じ動作をするため、「開発環境では動いたのに本番環境で動かない」という問題が起きにくくなります。マイクロサービスアーキテクチャで複数の小さなサービスを頻繁にデプロイ・スケールする場合、コンテナの軽さと迅速性が大きな優位性になります。
| 項目 | 仮想マシン | コンテナ |
|---|---|---|
| 含まれるもの | 完全な OS(カーネル、ドライバ、ライブラリ) | アプリケーション + 依存ライブラリのみ |
| 起動時間 | 数十秒~数分 | 数秒以下(多くは 1 秒未満) |
| メモリ消費 | 1 VM あたり GB 単位(通常 2GB~) | 1 コンテナあたり MB~数百 MB |
| 隔離レベル | ハード(OS カーネルレベルで完全分離) | ソフト(同じ OS カーネルを共有、名前空間で論理分離) |
| 異なる OS の共存 | 可能(VM1: Windows、VM2: Linux 等) | 困難(同じ OS カーネル上で動作) |
| 移植性 | ハイパーバイザー依存(環境によっては互換性問題) | Docker イメージなら完全に環境非依存 |
| ディスク容量 | 数 GB~ | 数百 MB~ |
| 実装例 | VMware vSphere, Microsoft Hyper-V, KVM | Docker, Podman |
| 用途 | サーバ統合、マルチテナント、高い安全性が必須 | マイクロサービス、DevOps、頻繁なスケーリング |
試験では、「この企業は古いアプリケーションを複数の OS で動かしている。物理サーバを統合したい」という場合は VM、「新しい Web アプリを複数サービスに分割して、頻繁に更新したい」という場合はコンテナ、という使い分けが重要です。
コンテナオーケストレーション
Docker はコンテナ化の実装技術で、アプリケーション環境をイメージとして定義・配布します。ただし、Docker は単一マシン上でのコンテナ管理に向いています。
Kubernetes(K8s)は、複数のコンテナを複数のサーバ(ノード)にまたがって実行・管理する オーケストレーション プラットフォームです。Kubernetes がなければ、10 台のサーバ上で 100 個のコンテナを管理するのは手作業で極めて複雑です。Kubernetes は以下の操作を自動化します:
- 自動スケーリング:CPU 使用率が 70% を超えたら自動的にコンテナ数を増やす
- ロードバランシング:複数のコンテナインスタンスにトラフィックを均等に振り分ける
- ヘルスチェック:定期的にコンテナの健全性を確認し、クラッシュしたコンテナを自動再起動する
- ローリングアップデート:古いバージョンを順次新しいバージョンに置き換え、サービスを止めない
- リソース管理:各コンテナに CPU とメモリの上限を設定し、リソース争奪を防止する
マイクロサービスアーキテクチャでは、数十~数百のコンテナが動作するため、Kubernetes のような自動管理ツールがなければ運用は破綻します。
CDN(Content Delivery Network)
CDN は、地理的に分散したサーバで静的コンテンツ(画像、動画、JavaScript、CSS)をキャッシュ配信する仕組みです。
例えば、日本と米国にそれぞれユーザーがいるとします。CDN がなければ、全ユーザーが米国のオリジンサーバからコンテンツを取得するため、日本のユーザーは長い遅延(100ms~数秒)を経験します。CDN を使えば、コンテンツを日本と米国の複数拠点に事前キャッシュしておき、各ユーザーが地理的に最も近いサーバから取得できるため、遅延が大幅に減少(10ms~100ms に短縮)します。
また、オリジンサーバへのアクセス集中も軽減されます。100 万人のユーザーが同じ画像を要求しても、CDN が各地で配信するため、オリジンサーバには数十~数百のリクエストしか届きません。結果、オリジンサーバの帯域幅コストが削減されます。
CDN は YouTube、Netflix、Amazon CloudFront など、大規模な静的コンテンツ配信に必須の技術です。
エッジコンピューティング
エッジコンピューティング は、クラウドの中央データセンターではなく、ネットワークの末端(エッジ)でデータ処理を行う考え方です。
例えば、工場に 1000 個の IoT センサが設置されているとします。従来のクラウドモデルなら、1000 個のセンサからすべてのデータをクラウドに送信し、クラウド上で分析・フィルタリングします。ただし、これは以下の課題を招きます:
- 遅延:センサ → クラウド → 判定結果が戻る、という往復に数秒かかり、リアルタイム制御に不向き
- 帯域幅浪費:大量の不要なセンサデータがネットワークを占有し、通信コストが増加
- プライバシー:個人データ(例:スマートホームのセンサ)をすべてクラウドに送るのは抵抗感がある
エッジコンピューティングなら、工場の入口に小型エッジサーバを置き、そこで 1000 個のセンサデータを集約・フィルタリングします。例えば、「温度が 80°C を超えた」という要約情報と「異常箇所」だけをクラウドに送信します。結果、遅延が削減され、ネットワーク帯域幅も節約でき、プライバシーも保護されます。
エッジコンピューティングは、自動運転車(カメラ画像をリアルタイムで処理)、スマートシティ(交通量データをエッジで集約)、IoT 製造業(機器の異常検知をエッジで即座に判定)などで急速に普及しています。
サーバレスコンピューティング
サーバレス は、開発者がサーバ管理を気にせず、関数やイベントハンドラを書くだけで動く環境です。「サーバがない」という意味ではなく、サーバ管理を クラウド企業に完全委託するモデルです。AWS Lambda、Google Cloud Functions、Azure Functions が該当します。
例えば、画像アップロードをトリガーに、自動的にサムネイルを生成するシステムを作りたいとします。従来の PaaS なら、Web サーバは常に起動させておき、アクセスがなくても電力を消費します。サーバレスなら、「画像がアップロードされたときだけ、サムネイル生成関数が 1 秒間実行される」という課金になります。月 1000 回実行されるなら、課金対象は 1000 秒分だけで、その他の時間帯は完全に無料です。
スケーリングも自動です。突然アクセスが 100 倍に増えても、関数は自動的に数百個の並行インスタンスで実行され、処理しきれないことはありません。一方、低ボリュームなら数個のインスタンスだけで対応し、コストは無駄になりません。
ただし限界もあります:
- 実行時間制限:AWS Lambda は最大 15 分まで(長時間処理には向かない)
- コールドスタート:一定期間(目安として数分〜数十分)アイドル状態になると、実行環境の初期化コストとして数百ms〜1秒超の遅延が加わる
- 状態保持ができない:各実行は独立し、前回の実行結果をメモリに保持できない
したがって、「リアルタイムデータ処理」「定期バッチ処理」「IoT イベントハンドリング」といった、短時間で独立した処理に最適です。長時間の複雑なワークフローや常に状態を保持する必要があるシステムには向きません。
VDI(Virtual Desktop Infrastructure)
VDI は、ユーザーが使うデスクトップ環境そのものをサーバ上で仮想化し、ネットワーク経由でシンクライアント(キーボード・マウス・ディスプレイだけの簡易端末)へ配信する仕組みです。
従来のテレワークでは、ユーザーが自宅のパソコンで作業するため、データが端末に残るリスク(紛失、盗難、不正コピー)があります。VDI を使えば、実際の処理や データはサーバ上で行われ、端末には画面映像だけが送信されます。ユーザーはタッチペンでタブレットを操作しているのと同じイメージで、実際のセキュアな環境で作業しています。
VDI の利点:
- セキュリティ:機密データはサーバ上にのみ存在し、端末には残らない
- 柔軟な働き方:どの端末(会社のデスクトップ、自宅のタブレット、カフェのノート PC)からでも同じデスクトップ環境にアクセス
- デバイス管理の簡素化:高性能な PC は不要で、安価なシンクライアントで足りる
- BYOD 対応:従業員が個人デバイスを持ち込んでも、セキュアな仮想デスクトップで作業させることで安全性を確保
VDI の課題:
- ネットワーク遅延:画面描画がサーバから送信されるため、ローカル実行より遅延を感じる
- インフラ投資:サーバ台数、ネットワーク帯域幅、ライセンスコストが増加
- 可用性依存:ネットワークが切れるとまったく作業できない
金融機関、政府機関、医療機関など、セキュリティ要件が厳しい業界や、テレワーク推進企業で導入が進んでいます。
オンプレミス vs クラウド
オンプレミスとクラウドは、大きく異なるトレードオフを持ちます。単に「クラウドが新しい・良い」ではなく、ビジネス特性に応じた選択が重要です。
オンプレミス(自社データセンター) は、物理サーバを購入し、自社施設で運用するモデルです。初期投資(サーバ購入、ラック設置、冷却システム構築)が数千万円~数億円と巨大です。完全な自社管理により、セキュリティポリシーを細かくカスタマイズでき、機密データに最適です。一方、スケーリングには 3~6 ヶ月かかり(サーバ購入→設置→テスト→本運用)、ピーク時の一時的な負荷対応に向きません。毎年の保守費、電力費、人員費(システム管理者)で年間数百万円~数千万円の運用コストが発生します。
クラウド は、月額課金で瞬時に始められます。初期投資がゼロ(またはごく小さい)で、スケーリングは秒~分で完了し、ピーク時の負荷急増に即対応できます。ただし、インフラの細かいカスタマイズは難しく、クラウド企業のサービス仕様に依存します。セキュリティは「共有責任モデル」で、企業も設定と監視の責任を持たねばなりません。
| 観点 | オンプレミス | クラウド |
|---|---|---|
| 初期投資 | 巨大(数千万~数億円) | 小さい(数百万円~ゼロ) |
| 月額運用コスト | 高い(保守、電力、人員で数百万〜) | 従量制(使った分だけ、通常数十〜数百万円) |
| カスタマイズ性 | 極めて高い(好きなように構築) | サービス依存(変更は限定的) |
| セキュリティ管理 | 全て自社責任 | 共有責任(インフラはベンダー、設定は自社) |
| スケーラビリティ | 制限(物理的装置数に上限) | ほぼ無制限(ベンダーが自動拡張) |
| 初期構築期間 | 数ヶ月~1 年 | 数日~数週間 |
| 法規制・コンプライアンス対応 | 自社で確認・実装 | ベンダーが基本対応。カスタマイズは要相談 |
| 可用性(障害リスク) | 自社インフラなので、冗長化は自社費用負担 | ベンダーが複数リージョン・冗長化で対応 |
| ベンダーロック | なし(移行時に技術的課題) | あり(クラウド企業に依存) |
選択基準:
- 金融機関・医療・政府:セキュリティと規制が最優先。通常オンプレミスまたはプライベートクラウド
- スタートアップ・新規事業:初期投資を抑え、素早い立ち上げと柔軟なスケーリング。クラウド推奨
- 季節変動が大きい業種(小売、観光):ピーク時だけクラウドでスケール。ハイブリッドが適切
- 既存システムが多い企業:段階的移行のためハイブリッド。基幹システムはオンプレミス、新規サービスはクラウド
ハイブリッドクラウドは、この両世界のバランスを取る実務的な選択です。
典型例
| 論点 | 典型的な見分け方 |
|---|---|
HTTP と HTTPS | 通信の暗号化が必要か |
Cookie と セッション | クライアント側に持つか、サーバ側に持つか |
Ajax と WebSocket | ページ部分更新か、リアルタイム双方向か |
REST と SOAP | シンプルな CRUD か、複雑なトランザクションか |
REST と GraphQL | 固定エンドポイントか、クライアント指定データか |
Web API と HTML / CSS | データ連携の窓口か、画面表示か |
HTTP と JSON | 通信ルールか、データ形式か |
SaaS と PaaS | アプリそのものか、アプリを作る環境か |
PaaS と IaaS | 開発環境か、インフラそのものか |
DaaS と VDI | サービスとして使うか、自社で仮想デスクトップを構築するか |
仮想マシン と コンテナ | OS を含めるか、アプリだけか |
CDN と エッジ | 配信を近づけるか、処理自体を近づけるか |
オンプレミス と クラウド | 完全自社管理か、従量制か |
パブリック と プライベート | 複数企業共有か、専有か |
典型的なつまずき
API 設計と責任分界に関する誤解
HTTPとHTTPSの違いを、ただ「セキュア/非セキュア」と暗記し、「ステートレス」の特性を見落とす。実は、HTTP のステートレス性が Cookie/セッション、REST の設計原則につながっているCookieとセッションを同じものだと思い込む。Cookie はクライアント側データ、セッションはサーバ側データ。ただし、セッション ID は Cookie で運搬されるWeb APIとHTML / CSSを同一視する。API はデータ連携の窓口、HTML/CSS は画面の表現。アプリから在庫データを取得するなら API、画面のレイアウトを整えるなら HTML/CSSJSONを通信プロトコルだと思い込む。JSONはデータ形式であり、通信のルールはHTTP、設計作法はRESTRESTを「JSON の別名」や「製品名」と誤認する。REST は API の設計方針であり、JSON と役割が違う
クラウドサービスモデルの混同(頻出の誤り)
SaaS / PaaS / IaaSを語感だけで覚え、「ユーザーが管理する部分」を理解しない。試験では「この企業は OS 以上を自社で管理したい」という要件から IaaS を選ぶ、というロジックが必要- 例えば「Heroku でアプリを走らせたい」という場合、Heroku は PaaS であり、開発者はコードを書いて push するだけで、OS やミドルウェアの管理は Heroku 側。これを IaaS と混同する
SaaSの例として「Google Workspace は SaaS」と暗記しても、「なぜ SaaS か」を理解していないため、応用問題で判断ミスするDaaSを単なるIaaSだと思い込む。仮想デスクトップをそのまま使うならDaaS、その仮想マシンの OS から自社で組みたいならIaaSクラウドコンピューティングとクラウドソーシングを混同する。前者は計算資源の提供、後者は不特定多数への業務委託であり、まったく別の概念
仮想化技術の混同
仮想マシンとコンテナを「複数プロセスを走らせるもの」と同一視する。重要な違いは、VM は独立した OS を含む(重量・安全)のに対し、コンテナは OS カーネルを共有(軽量・迅速)- 「Docker を使えば必ず軽い」と思い込み、用途を無視する。実は、大規模な OS や複雑な依存関係を持つアプリケーションなら、VM の方が適切な場合もある
コスト・スケーラビリティの誤解
クラウドを「常に安い」と思い込む。実は、大規模で安定した負荷のシステム(例:基幹系 ERP)は、オンプレミスの方が長期的には安い。クラウドは「初期投資なし」と「ピーク対応」で価値があるマイクロサービスを「便利な魔法」だと思い、デメリット(運用複雑性、デバッグ難、テスト工数増加)を無視するサーバレスを「サーバがない」と言葉どおり解釈し、AWS Lambda の実行時間上限(15 分)やコールドスタート遅延を見落とす
デプロイメント形態の誤解
ハイブリッドクラウドを単に「オンプレミス + クラウド」と認識し、「なぜ組み合わせるのか」(既存資産活用、段階的移行、規制要件)を理解しないプライベートクラウドとオンプレミスの違いが曖昧。オンプレミスは自社でサーバを所有・運用。プライベートクラウドは自社が所有するか、ベンダーに全て委託するが、クラウドの利便性(セルフサービス、自動スケーリング)を備えるCDNとエッジコンピューティングを同じだと思い込む。CDN は配信を近づける、エッジは処理を近づける技術
試験で得点を落とさないために
- 問題文から「責任範囲」「初期投資」「スケーリング要件」「セキュリティレベル」の 4 観点を読み取り、SaaS/PaaS/IaaS やオンプレミス/クラウド、パブリック/プライベートを判定する習慣をつける
- 「この技術は何の課題を解決するのか」を常に問う。例えば、Kubernetes は「複数サーバ上の数百コンテナを手作業で管理する複雑さ」を解決するためのツール
問題を解くときの観点
- 問われているのは
Web プロトコル、API 設計、クラウドモデル、実装技術のどれか Web論点では、通信ルール、画面表現、データ形式、設計方針のどれを聞いているか先に切る責任の線引きが問題の重要なポイント(SaaS/PaaS/IaaS の使い分けここ)デスクトップ環境を外から使うならDaaS / VDI、アプリの実行基盤ならPaaS、OS 以上を握るならIaaS- セキュリティやコンプライアンスが条件なら、パブリック / プライベート / ハイブリッドの選択に影響するか
スケーラビリティや可用性が求められるなら、オンプレミスとクラウドのどちらが適切か初期投資と運用コストのトレードオフを意識しているか- 技術選択が、顧客体験やビジネスモデルにどう影響するか
確認問題
確認問題 1:SaaS / PaaS / IaaS の判定
以下の 4 つのシナリオについて、最適なクラウドサービスモデルを選択し、理由を述べてください。
- シナリオ A:営業部門は、メール、ドキュメント作成、スプレッドシートを共有で使いたい。IT 部門の管理負荷を最小化したい
- シナリオ B:開発チームが、新しい Web アプリケーションを素早く立ち上げたい。インフラ管理は避けたい
- シナリオ C:金融機関は、既存の基幹システムをクラウドに移行したい。OS から細かくカスタマイズしたい
- シナリオ D:スタートアップが、初期投資をゼロに近づけて IoT データ処理を開始したい。将来的にスケールする可能性がある
想定される答え
- A:SaaS。Google Workspace がマッチ。ユーザーはブラウザで使うだけ、IT 管理なし
- B:PaaS。Heroku や Google App Engine。開発者はコードだけ管理。OS、ミドルウェアはベンダー側
- C:IaaS。AWS EC2 または Azure VM。OS 以上を自社でカスタマイズ可能
- D:IaaS またはサーバレス(FaaS)。初期投資なし、従量課金、スケーラビリティ無制限
確認問題 2:オンプレミス vs クラウド の選択
以下の 3 つの企業について、オンプレミス、パブリッククラウド、ハイブリッドクラウドのいずれが適切か、理由を述べてください。
- 企業 A:大手銀行。基幹系システムは規制により自社管理が必須。一方、新規デジタルサービスは迅速に開発・運用したい
- 企業 B:季節変動の大きい小売企業。ピーク期(年末年始)だけ 10 倍のトラフィックが発生
- 企業 C:スタートアップ。初期段階で多額の投資は不可。将来的に大規模成長を想定
想定される答え
- A:ハイブリッド。基幹系(オンプレミス)+ 新規サービス(パブリッククラウド)
- B:ハイブリッド。通常時は オンプレミス(コスト削減)、ピーク時だけクラウドスケール
- C:パブリッククラウド。初期投資ゼロ、従量課金で開始。スケーラビリティ無制限で成長に対応
確認問題 3:仮想マシン vs コンテナ vs サーバレス
以下の 3 つのシステム要件について、最適な実装技術を選択し、理由を述べてください。
- 要件 A:レガシー基幹システム(複数の異なる OS で動作)をデータセンターから クラウドに移行。高い互換性と隔離が必須
- 要件 B:新しい Web マイクロサービスアーキテクチャ。複数の小さなサービスを頻繁に更新(1 日 10 回デプロイ)。リソースは効率的に利用したい
- 要件 C:定期的なバッチ処理(日次バッチ)。処理時間は 5 分間。月 30 回実行。その他の時間帯は完全に不要
想定される答え
- A:仮想マシン。複数 OS の互換性、完全な隔離、既存環境の再現性が必要
- B:コンテナ + Kubernetes。軽量、起動速度、高速スケーリング、デプロイ頻度向上に最適
- C:サーバレス(AWS Lambda)。初期投資ゼロ、実行時間分のみ課金(5 分 × 30 回 = 150 分分だけ支払)。コールドスタート許容範囲内
確認問題 4:REST の特徴と API 設計
REST API の設計原則について、以下の質問に答えてください。
- HTTP のステートレス性は、REST 設計にどのような利点をもたらすか
- リソース指向設計とは何か。具体例を挙げて説明してください
- SOAP と REST を比較し、REST が Web API で選ばれる理由を述べてください
想定される答え
-
- ステートレスなため、各リクエストが独立し、サーバがユーザー状態を保持不要。結果、スケーリングが容易(複数サーバへ負荷分散可能)で、キャッシング戦略も単純化
-
- URI でリソース(/products, /products/123)を表現し、HTTP メソッド(GET, POST, PUT, DELETE)で CRUD 操作を実現する設計。例:GET /products(商品一覧取得)、POST /products(新商品作成)、PUT /products/123(商品 123 更新)、DELETE /products/123(削除)
-
- SOAP は XML ベースの複雑プロトコル。REST はシンプルで軽量。Web API では、モバイルクライアントや JavaScript の呼び出しが増えたため、REST(JSON)が標準になった。複雑なトランザクション(例:銀行の送金)は SOAP、単純な CRUD は REST と使い分け
確認問題 5:HTTP / Web API / JSON / REST の切り分け
次の文章の空欄に最も適切な語を入れてください。
- スマホアプリが商品一覧を取得するために公開する
窓口は( A ) - その窓口でブラウザやアプリが通信するときの
ルールは( B ) - 返ってきた
{ "name": "商品A", "price": 1000 }のようなデータ形式は( C ) GET /productsやDELETE /products/10のように設計する作法は( D )- 商品一覧画面の見出しや色、余白などの
見た目を決めるのは( E )
想定される答え
- A:
Web API - B:
HTTPまたは暗号化を明示するならHTTPS - C:
JSON - D:
REST - E:
HTML / CSS
確認問題 6:責任分界と DaaS の判定
以下のシナリオについて、SaaS、DaaS、PaaS、IaaS のどれが最も適切か答えてください。
- 在宅勤務者へ安全な業務デスクトップを配りたい。端末には顧客データを残したくない
- 開発チームがアプリコードの実装に集中したい。OS やミドルウェアの管理は避けたい
- 既存の基幹システムをクラウドへ移したい。OS の設定やミドルウェア構成は自社で細かく決めたい
- 営業部門がメール、表計算、オンライン会議をすぐに使いたい
想定される答え
-
DaaS。欲しいのはアプリ開発基盤ではなく、仮想デスクトップ環境そのもの
-
PaaS。アプリコードとデータに集中し、実行基盤はベンダーが持つ
-
IaaS。OS 以上を自社で管理したいので責任範囲が広い
-
SaaS。完成済みアプリケーションをそのまま利用する
関連ページ
このページは役に立ちましたか?
評価とひとことを残してもらえると、内容と導線の改善に使えます。
Last updated on