掲載内容は正確性・最新性の確保に努めていますが、一次情報をご確認ください。
shindanshi中小企業診断士 wiki

Webテクノロジーとクラウド

HTTP/HTTPS、API、REST、GraphQL、SaaS/PaaS/IaaS、仮想化、コンテナを整理する

このページの役割

このページは、Web技術クラウドコンピューティング を整理するページです。HTTP/HTTPS から始まる Web の基礎、APIWeb サービス の設計パターン、そして クラウドサービスモデルデプロイメント形態 を一本の流れで押さえます。

学習のポイント

  • まず HTTP/HTTPScookie / セッション管理 で Web 通信の基本を理解する
  • 次に API の設計パターン(REST vs SOAP vs GraphQL)と Web サービス を分ける
  • そのうえで クラウドの 3 層モデルSaaS / PaaS / IaaS)と デプロイメント形態 を整理する
  • 最後に 仮想化コンテナサーバレス などの実装技術をスタック図で押さえる
  • 試験では、どの層を管理するのかという「責任の線引き」が最頻出である

試験で何が問われるか

  • HTTP/HTTPScookie / セッション の役割を説明できるか
  • REST の特徴(ステートレス、リソース指向)を言えるか
  • SaaS / PaaS / IaaS を、提供範囲と管理責任で区別できるか(最重要)
  • 仮想マシンコンテナ の違いを実装と効率の観点で説明できるか
  • オンプレミスクラウド の使い分けを、コストと柔軟性で読めるか
  • パブリック / プライベート / ハイブリッド クラウドの使い分けを言えるか

定義と仕組み

HTTP と HTTPS

HTTP は Web ブラウザとサーバ間でテキストやファイルをやり取りするプロトコルです。HTTPS は、その通信を TLS/SSL 暗号化で保護します。試験では ステートレス(各リクエストが独立)という特性が重要です。

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 の切り分け

年度別の過去問では、HTTPHTML/CSSWeb APIJSONREST をひとまとまりに出して混乱させる問題が繰り返し出ています。ここは「何を決める言葉か」で切ると崩れにくくなります。

用語何を決めるか主に扱うもの問題文の合図
HTTP / HTTPS通信のルールリクエストとレスポンス、暗号化の有無送受信、URL、メソッド、暗号化
HTML / CSS画面の構造と見た目見出し、表、レイアウト、色、装飾表示、画面、レイアウト、見た目
Web APIプログラム同士の受け渡し窓口在庫、顧客、注文などのデータ外部連携、アプリから取得、機能公開
JSON / XMLデータの表し方キーと値、タグ構造交換形式、データ形式、メッセージ形式
RESTWeb API の設計作法URI、HTTP メソッド、ステートレス性GET/POST/PUT/DELETE、リソース指向

迷ったら、次の順で切ります。

  1. 通信の約束か: HTTP / HTTPS
  2. 画面の見た目か: HTML / CSS
  3. 他のプログラムが呼び出す窓口か: Web API
  4. その窓口で運ぶデータの荷姿か: JSON / XML
  5. 窓口の作り方の流儀か: 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以上はユーザー責任です。

サービス意味クラウド企業が提供ユーザーが管理典型例
SaaSSoftware as a Serviceアプリケーション全体なし(使うだけ)Google Workspace, Salesforce, Microsoft 365
PaaSPlatform as a ServiceOS、ミドルウェア、実行環境コード、データHeroku, Google App Engine, Azure App Service
IaaSInfrastructure 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 と混同する
PaaSOS、ミドルウェア、実行基盤アプリコード、設定、データ開発環境が欲しい、コードに集中したいSaaS のように完成済みアプリだと思う
IaaSサーバ、ストレージ、ネットワークOS 以上すべてレガシー移行、OS を細かく設定したいPaaS のように実行基盤込みだと思う
オンプレミスなしすべて完全自社管理、厳しい規制、独自構成クラウドの一種だと思う

切り分けのコツは、何を使いたいか より先に どこまで自社で持ちたいか を見ることです。画面環境だけ借りたい なら DaaS完成済みアプリを使いたい なら SaaSアプリを作る基盤が欲しい なら PaaSOS 以上を自社で握りたい なら 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, KVMDocker, 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 個のセンサからすべてのデータをクラウドに送信し、クラウド上で分析・フィルタリングします。ただし、これは以下の課題を招きます:

  1. 遅延:センサ → クラウド → 判定結果が戻る、という往復に数秒かかり、リアルタイム制御に不向き
  2. 帯域幅浪費:大量の不要なセンサデータがネットワークを占有し、通信コストが増加
  3. プライバシー:個人データ(例:スマートホームのセンサ)をすべてクラウドに送るのは抵抗感がある

エッジコンピューティングなら、工場の入口に小型エッジサーバを置き、そこで 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 年数日~数週間
法規制・コンプライアンス対応自社で確認・実装ベンダーが基本対応。カスタマイズは要相談
可用性(障害リスク)自社インフラなので、冗長化は自社費用負担ベンダーが複数リージョン・冗長化で対応
ベンダーロックなし(移行時に技術的課題)あり(クラウド企業に依存)

選択基準

  • 金融機関・医療・政府:セキュリティと規制が最優先。通常オンプレミスまたはプライベートクラウド
  • スタートアップ・新規事業:初期投資を抑え、素早い立ち上げと柔軟なスケーリング。クラウド推奨
  • 季節変動が大きい業種(小売、観光):ピーク時だけクラウドでスケール。ハイブリッドが適切
  • 既存システムが多い企業:段階的移行のためハイブリッド。基幹システムはオンプレミス、新規サービスはクラウド

ハイブリッドクラウドは、この両世界のバランスを取る実務的な選択です。

典型例

論点典型的な見分け方
HTTPHTTPS通信の暗号化が必要か
Cookieセッションクライアント側に持つか、サーバ側に持つか
AjaxWebSocketページ部分更新か、リアルタイム双方向か
RESTSOAPシンプルな CRUD か、複雑なトランザクションか
RESTGraphQL固定エンドポイントか、クライアント指定データか
Web APIHTML / CSSデータ連携の窓口か、画面表示か
HTTPJSON通信ルールか、データ形式か
SaaSPaaSアプリそのものか、アプリを作る環境か
PaaSIaaS開発環境か、インフラそのものか
DaaSVDIサービスとして使うか、自社で仮想デスクトップを構築するか
仮想マシンコンテナOS を含めるか、アプリだけか
CDNエッジ配信を近づけるか、処理自体を近づけるか
オンプレミスクラウド完全自社管理か、従量制か
パブリックプライベート複数企業共有か、専有か

典型的なつまずき

API 設計と責任分界に関する誤解

  • HTTPHTTPS の違いを、ただ「セキュア/非セキュア」と暗記し、「ステートレス」の特性を見落とす。実は、HTTP のステートレス性が Cookie/セッション、REST の設計原則につながっている
  • Cookieセッション を同じものだと思い込む。Cookie はクライアント側データ、セッションはサーバ側データ。ただし、セッション ID は Cookie で運搬される
  • Web APIHTML / CSS を同一視する。API はデータ連携の窓口、HTML/CSS は画面の表現。アプリから在庫データを取得する なら API、画面のレイアウトを整える なら HTML/CSS
  • JSON を通信プロトコルだと思い込む。JSON はデータ形式であり、通信のルールは HTTP、設計作法は REST
  • REST を「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アプリの実行基盤 なら PaaSOS 以上を握る なら IaaS
  • セキュリティやコンプライアンスが条件なら、パブリック / プライベート / ハイブリッドの選択に影響するか
  • スケーラビリティ可用性 が求められるなら、オンプレミスとクラウドのどちらが適切か
  • 初期投資運用コスト のトレードオフを意識しているか
  • 技術選択が、顧客体験やビジネスモデルにどう影響するか

確認問題

確認問題 1:SaaS / PaaS / IaaS の判定

以下の 4 つのシナリオについて、最適なクラウドサービスモデルを選択し、理由を述べてください。

  1. シナリオ A:営業部門は、メール、ドキュメント作成、スプレッドシートを共有で使いたい。IT 部門の管理負荷を最小化したい
  2. シナリオ B:開発チームが、新しい Web アプリケーションを素早く立ち上げたい。インフラ管理は避けたい
  3. シナリオ C:金融機関は、既存の基幹システムをクラウドに移行したい。OS から細かくカスタマイズしたい
  4. シナリオ 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 つの企業について、オンプレミス、パブリッククラウド、ハイブリッドクラウドのいずれが適切か、理由を述べてください。

  1. 企業 A:大手銀行。基幹系システムは規制により自社管理が必須。一方、新規デジタルサービスは迅速に開発・運用したい
  2. 企業 B:季節変動の大きい小売企業。ピーク期(年末年始)だけ 10 倍のトラフィックが発生
  3. 企業 C:スタートアップ。初期段階で多額の投資は不可。将来的に大規模成長を想定

想定される答え

  • A:ハイブリッド。基幹系(オンプレミス)+ 新規サービス(パブリッククラウド)
  • B:ハイブリッド。通常時は オンプレミス(コスト削減)、ピーク時だけクラウドスケール
  • C:パブリッククラウド。初期投資ゼロ、従量課金で開始。スケーラビリティ無制限で成長に対応

確認問題 3:仮想マシン vs コンテナ vs サーバレス

以下の 3 つのシステム要件について、最適な実装技術を選択し、理由を述べてください。

  1. 要件 A:レガシー基幹システム(複数の異なる OS で動作)をデータセンターから クラウドに移行。高い互換性と隔離が必須
  2. 要件 B:新しい Web マイクロサービスアーキテクチャ。複数の小さなサービスを頻繁に更新(1 日 10 回デプロイ)。リソースは効率的に利用したい
  3. 要件 C:定期的なバッチ処理(日次バッチ)。処理時間は 5 分間。月 30 回実行。その他の時間帯は完全に不要

想定される答え

  • A:仮想マシン。複数 OS の互換性、完全な隔離、既存環境の再現性が必要
  • B:コンテナ + Kubernetes。軽量、起動速度、高速スケーリング、デプロイ頻度向上に最適
  • C:サーバレス(AWS Lambda)。初期投資ゼロ、実行時間分のみ課金(5 分 × 30 回 = 150 分分だけ支払)。コールドスタート許容範囲内

確認問題 4:REST の特徴と API 設計

REST API の設計原則について、以下の質問に答えてください。

  1. HTTP のステートレス性は、REST 設計にどのような利点をもたらすか
  2. リソース指向設計とは何か。具体例を挙げて説明してください
  3. SOAP と REST を比較し、REST が Web API で選ばれる理由を述べてください

想定される答え

    1. ステートレスなため、各リクエストが独立し、サーバがユーザー状態を保持不要。結果、スケーリングが容易(複数サーバへ負荷分散可能)で、キャッシング戦略も単純化
    1. URI でリソース(/products, /products/123)を表現し、HTTP メソッド(GET, POST, PUT, DELETE)で CRUD 操作を実現する設計。例:GET /products(商品一覧取得)、POST /products(新商品作成)、PUT /products/123(商品 123 更新)、DELETE /products/123(削除)
    1. SOAP は XML ベースの複雑プロトコル。REST はシンプルで軽量。Web API では、モバイルクライアントや JavaScript の呼び出しが増えたため、REST(JSON)が標準になった。複雑なトランザクション(例:銀行の送金)は SOAP、単純な CRUD は REST と使い分け

確認問題 5:HTTP / Web API / JSON / REST の切り分け

次の文章の空欄に最も適切な語を入れてください。

  1. スマホアプリが商品一覧を取得するために公開する 窓口( A )
  2. その窓口でブラウザやアプリが通信するときの ルール( B )
  3. 返ってきた { "name": "商品A", "price": 1000 } のような データ形式( C )
  4. GET /productsDELETE /products/10 のように設計する 作法( D )
  5. 商品一覧画面の見出しや色、余白などの 見た目 を決めるのは ( E )

想定される答え

  • A:Web API
  • B:HTTP または暗号化を明示するなら HTTPS
  • C:JSON
  • D:REST
  • E:HTML / CSS

確認問題 6:責任分界と DaaS の判定

以下のシナリオについて、SaaSDaaSPaaSIaaS のどれが最も適切か答えてください。

  1. 在宅勤務者へ安全な業務デスクトップを配りたい。端末には顧客データを残したくない
  2. 開発チームがアプリコードの実装に集中したい。OS やミドルウェアの管理は避けたい
  3. 既存の基幹システムをクラウドへ移したい。OS の設定やミドルウェア構成は自社で細かく決めたい
  4. 営業部門がメール、表計算、オンライン会議をすぐに使いたい

想定される答え

    1. DaaS。欲しいのはアプリ開発基盤ではなく、仮想デスクトップ環境そのもの
    1. PaaS。アプリコードとデータに集中し、実行基盤はベンダーが持つ
    1. IaaS。OS 以上を自社で管理したいので責任範囲が広い
    1. SaaS。完成済みアプリケーションをそのまま利用する

関連ページ

このページは役に立ちましたか?

評価とひとことを残してもらえると、内容と導線の改善に使えます。

Last updated on

On this page