本記事は、個人的な学習メモです。
🌍 1. クラウドとは?
クラウドコンピューティングとは、インターネット経由でITリソース(サーバー・ストレージ・データベースなど)をオンデマンドで利用する仕組み
物理的な機器を購入・設置することなく、必要なときに必要な分だけ利用可能
🏢 2. オンプレミスとの違い
| 項目 | オンプレミス | クラウド |
|---|---|---|
| インフラ管理 | 自社でサーバーを設置・保守 | クラウド事業者が提供・保守 |
| 初期コスト | 高い(ハードウェア購入) | 低い(利用量課金) |
| 拡張性 | 制限あり(機器追加が必要) | 無制限にスケール可能 |
| 導入スピード | 数週間〜数ヶ月 | 数分〜数時間で利用可能 |
| セキュリティ責任 | 全て自社管理 | 共有責任モデル(事業者+利用者) |
| 障害対応 | 自社で復旧 | クラウドの冗長構成で自動復旧可 |
🔹 ポイント
クラウドは「自社で管理する負担を減らし、迅速にスケールできる環境」を提供します。
一方で、「セキュリティ設定」や「コスト最適化」は利用者側の責任になります。
🧩 3. クラウドの3つのサービスモデル
| モデル | 概要 | 代表サービス | 利用者の責任範囲 |
|---|---|---|---|
| IaaS(Infrastructure as a Service) | 仮想サーバーやネットワークなど基盤を提供 | AWS EC2、Azure VM、GCP Compute Engine | OS・アプリ構築以降 |
| PaaS(Platform as a Service) | 開発・実行環境を提供 | AWS Elastic Beanstalk、GCP App Engine、Azure App Service | アプリ開発・設定 |
| SaaS(Software as a Service) | ソフトウェアをサービスとして提供 | Salesforce、Google Workspace、dotData | 利用のみ(運用不要) |
💡 ポイント
🧩 IaaS・PaaS・SaaSの違いとは?
クラウドサービスは提供範囲によって大きく IaaS / PaaS / SaaS の3種類に分類されます。
それぞれが「どの部分をクラウド事業者が提供し、どの部分を利用者が管理するか」に違いがあります。
🏗️ IaaS(Infrastructure as a Service)
=インフラをサービスとして提供する
-
提供内容:仮想サーバー、ストレージ、ネットワーク、OSインストール環境など、インフラ基盤を提供
-
利用者の責任範囲:OSの設定、ミドルウェアの構築、アプリケーションの開発・運用は利用者側が行う
-
代表的サービス:
- AWS:EC2、S3、VPC
- GCP:Compute Engine、Cloud Storage
- Azure:Virtual Machines、Blob Storage
🧠 特徴:
サーバーを自分で構築・管理できる柔軟性が高いが、その分インフラ運用の知識が求められる。
⚙️ PaaS(Platform as a Service)
=開発基盤をサービスとして提供する
-
提供内容:アプリケーションの実行環境(OS、ランタイム、ミドルウェアなど)を提供
-
利用者の責任範囲:アプリケーションコードの開発と運用のみ
-
代表的サービス:
- AWS:Elastic Beanstalk、Lambda
- GCP:App Engine、Cloud Run
- Azure:App Service、Functions
🧠 特徴:
環境構築やスケーリングを自動化できるため、開発効率が高い。
ただし、カスタマイズ性はIaaSよりも制限される。
🧰 SaaS(Software as a Service)
=ソフトウェアをサービスとして提供する
-
提供内容:アプリケーションそのものをインターネット経由で利用できるように提供
-
利用者の責任範囲:アカウント管理・設定のみ(アプリやサーバーの管理は不要)
-
代表的サービス:
- Google Workspace、Salesforce、Slack、Zoom、Notion
🧠 特徴:
利用者は即座に使える利便性があるが、システム内部の制御はできない。
📊 比較表
| 項目 | IaaS | PaaS | SaaS |
|---|---|---|---|
| 提供範囲 | インフラ(サーバ・ネットワーク) | 開発・実行環境 | ソフトウェア(アプリケーション) |
| 利用者が管理 | OS設定・アプリ構築 | アプリ開発のみ | 利用設定のみ |
| 柔軟性 | 高い | 中程度 | 低い |
| 導入の手軽さ | やや手間がかかる | 比較的簡単 | すぐ使える |
| 代表例 | AWS EC2 / GCP Compute Engine | AWS Elastic Beanstalk / GCP App Engine | Google Workspace / Salesforce |
🧱 4. 各クラウドの主要サービス比較
| 分野 | AWS | GCP | Azure | 役割 |
|---|---|---|---|---|
| 仮想サーバー | EC2 | Compute Engine | Virtual Machines | アプリケーションを実行するための計算リソース |
| ストレージ | S3 | Cloud Storage | Blob Storage | ファイルやデータの保存 |
| データベース | RDS / DynamoDB | Cloud SQL / Firestore | SQL Database / Cosmos DB | データの永続的保存 |
| ネットワーク | VPC | VPC | Virtual Network | サーバー間の通信経路を制御 |
| コンテナ | ECS / EKS | GKE | AKS | Kubernetes環境を提供 |
| モニタリング | CloudWatch | Operations Suite | Azure Monitor | リソース監視・ログ管理 |
💡 共通設計思想
- 「スケーラビリティ」:負荷に応じて自動でリソースを増減
- 「冗長性」:複数のリージョンで可用性を確保
- 「セキュリティ by Design」:アクセス制御・暗号化が標準装備
- 「Infrastructure as Code」:設定をコードで自動化(Terraform, CloudFormationなど)
🧠 5. クラウド設計思想の核心
クラウドアーキテクチャの根底にある設計思想は以下の3つです。
| 設計思想 | 概要 | 具体例 |
|---|---|---|
| 疎結合(Loose Coupling) | 各コンポーネントを独立させ、障害の影響を最小化 | EC2 と RDS を別構成で管理 |
| スケーラビリティ(Scalability) | トラフィックや負荷に応じて自動拡張 | Auto Scaling、負荷分散(ELB) |
| 可用性(Availability)と耐障害性(Fault Tolerance) | 障害に強いシステムを設計 | マルチAZ構成、リージョン分散 |
📌 ポイント
- 「クラウド設計で意識すべき3つの要素は?」
→ 疎結合・スケーラビリティ・可用性 - 「オンプレと比べて、クラウドの設計思想が優れている理由は?」
→ 柔軟性と自動化による運用負荷軽減
🚀 6. まとめ:クラウドを理解する=運用を理解する
- クラウドは単なる「インフラ」ではなく、運用と自動化の思想そのもの
- 「クラウドを理解する」とは、「どう作るか」ではなく「どう運用するか」を理解すること