---
# System prepended metadata

title: 第1章 クラウドの概要

---

# 第1章 クラウドの概要
## 1-1 クラウドとは何か

* クラウドとは
    * 元々は、インターネットそのものをクラウド（雲）で表現:cloud:
    * ユーザは実態を意識せずに利用できる抽象的な存在
    * クラウドコンピューティング→ネットワークが必要

* コンピューティングリソース（資源）
    * リソースを複数で分け合う→共有
    * リソースをスピーディーに追加→拡張性

* クラウドの定義
    * NIST（米国国立標準技術研究所）がガイドライン策定

* 実現の仕組み
    * リソースプール
        * クラウドを実現するための共有資源
        * ユーザの要求に応じて割当
    * ハイパーバイザ
        * サーバ仮想化環境用ソフトウェア
    * ユビキタス
        * いつでもどこでもコンピュータネットワークが利用できる環境

* クラウドの特徴
    1. オンデマンドセルフサービス
        * 自信で好きなときにリソースの増減ができる
        * Rapid Deployment（高速に展開（配置））
    1. 幅広いネットワーク経由のアクセス
        * 利便性向上（環境があれば場所を問わない）
    1. リソースの共用
        * マルチテナント：リソースプールを複数で共有する→安価
        * シングルテナント：リソースプールを特定向けに専用で用意する→信頼性、安全性、カスタマイズ
        * オンプレミス：社内にシステムを設置・導入・運用する形態→「非クラウド」
        * オフプレミス：一般的なクラウド形態
    1. 伸縮性
        * 伸縮性（エラスティシティ）：必要に応じていつでも自由に（短時間に）リソースの増減ができる
        * 拡張性（スケーラビリティ）：（自由度はないが）リソースの増減ができる仕組み
        * ジャストインタイム：環境の変化に応じて必要なものを必要な時に必要な分だけ
    1. 計測されるサービス
        * pay-as-you-grow
          成長に応じた機能追加
          規模の拡大に応じた支払い
          
* 拡張性（スケーラビリティ）
    * スケーリング
      必要に応じて、システムの処理能力を変えること
         * 垂直スケーリング
            * スケールアップ：１台ごとの処理能力を上げる
            * スケールダウン：１台ごとの処理能力を下げる
         * 水平スケーリング
            * スケールアウト：機器の台数を増やす
            * スケールイン：機器の台数を減らす　

    * クラウドバースティング
        * リソースの需要（負荷）が高まった
　        ピーク（バースト）時に、クラウド上のリソースに切り替えること
         
        * 内部リソースが上限に達したとき



## 1-2　クラウドのサービスモデル
* サービスモデルの違い
    * 利用形態
    * 責任範囲：クラウドベンダーとユーザが利用
    * コスト　　「境界」
   
* SaaS
    * Software as a Service
    * パッケージ製品（ソフトウェアやアプリケーション）を提供するサービス
    * 特徴
        * 必要なアプリケーションを選んだ使用
        * 個々のPCにインストール不要
        * バージョン管理、ライセンス管理などもサポート

* PaaS
    * Platform as a Service
    * H/WやOSなどのプラットフォームを提供
    * 特徴
        * プラットフォーム上で、特にシステム開発（ミドルウェア）をする場合に利用
        * コストを抑えてシステム開発ができる

* IaaS
    * Infrastructure as a Service
    * サーバ機器やネットワークなどのインフラを提供
    * 特徴
        * 必要なH/Wスペック、OSなどを自由に選択
        * 自由度の高いカスタマイズが可能

* そのたのクラウドサービスモデル
    * DaaS
        * Data as a Service
        * Deskrop as a Service
            * 端末のデスクトップ環境をインターネット経由で提供
            * クライアントの仮想化
                →シンクライアント
                
    * TCO削減
        * コンピュータシステムの導入・維持・管理にかかる総費用・総所有コスト
    
* BaaS
    * Backend as a Service
    * モバイル・スマートDevice専用の開発環境を提供
    * ユーザはAPIを利用して開発
        →特定の機能を持つプログラム（部品）
        
* CaaS
    * Communication as a Service
    * コミュニケーションに特化したサービスを提供

* BPaaS
    * Bussiness Process as a Service
    * SaaSの一種
    * ビジネスプロセス（人事・総務などの関節部門）をサービスとして提供

* BPO
    * 企業内の一部の業務を専門業者に外部委託すること

* NaaS
    * Network as a Service
    * ネットワークDeviceを提供
    * ソフトウェアによって、仮想的なネットワークを構築・実現する

* SDN
    * Software Defined Networking

* FaaS
    * Function as a Service
    * 関数単位の処理を提供
    * PaaSの限定的機能

## 1-3 クラウドの実装モデル
    
## 1-4 クラウドを支える技術と標準化動向
* クラウドを支える技術
    * ビッグデータ
        * 総務省「事業に役立つ知見導出するためのデータ」
    * 食らうたリング
        * 複数のコンピュータを接続し、全体で1台のコンピュータとして動作
    * グリッドコンピュータ
        * 分散処理
        * 複数のコンピュータが、ネットワークを介して接続し、全体で1台～
    * Hadoop
        * 並列分散処理（大量データを複数サーバで実行処理）を実現するオープンソースソフトウェア
        * Googleが自社検索エンジンとして開発
    * NoSQL
        * クラウド向けデータベース管理システム

* クラウドの標準化
    * インタークラウド
        * 複数のクラウドを統合した環境
        * クラウド連携・相互運用
    * プロプライエタリ
        * 独占的な
        * ソースコード、使用などが一切公開されない
    * ベンダーロックイン
        * 特定のベンダー製品を使用し始めると谷移動ができない状況（使用や規格が異なるため→プロプライエタリ）
    * オープンクラウド
        * 独自の仕様に偏らないオープンソースベースのクラウド

# 第２章　仮想化技術
## 2-1　仮想化の概要
* サーバの仮想化
    * 現在の中心技術
    * 1台の物理サーバ上に複数のサーバ（仮想OS）を動作＝「仮想化ソフト」
    * 可用性
        移動がしやすいこと
        ポータビリティ

* 伝送路の仮想化
    * チーミング
        * 複数のNICをつのNICとして動作させる
        * Linuxではボンディングと呼ぶ
    * 方式
        * フォールトトレランス
        * ロードバランシング
        * リンクアグリゲーション

* SDNとOpen Flow
    * ソフトウェアによって、仮想的なネットワークを作る技術・仕組み
    * 近年SDNに変わりOpen Flowが注目

* Open Flow
    * SDNを実現→標準化
    * 構成
        * Open Flowswitch：パケット(フレーム）転送
        * Open Flowコントローラ：ネットワークの経路構成管理など
        * Open Flowプロトコル：コントローラとswitchを接続（コミュニケーション）

Control Plane         Control Plane
                →
Data Plane　　　　　　　Data Plan

## 2-2　Server仮想化の実装
ハイパーバイザーの種類と特徴
* ハイパーバイザー
    * 物理サーバ上にインストールする仮想ソフトウェア
    * Type1とtype2
    * サーバ仮想化を実現するソフトウェア 
* Type2：ホストOS方式
    * 物理サーバ上にOS（ホストOS）をインストールし、その上に、仮想化ソフトウェア（ハイパーバイザ）をインストール
    * オーバーヘッドが大きく低パフォーマンス
    * 個人ユーザ向け　検証環境
* Type1：ベアメタル方式・ネイティブ方式・ハイパーバイザー方式
    * 物理サーバ上に直接ハイパーバイザーをインストール
    * オーバーヘッドが少ない高パフォーマンス
    * 企業向け仮想化の主流

    * モノリシック型
```
    仮想マシン            仮想マシン
    デバイスドライバ       デバイスドライバ
    　　↕                   ↕
      　　　　ハイパーバイザー
                 ↕
       　　　　  H/W
```
```
    * ハイパーバイザーがデバイスドライバーを管理
    
    OS
    ｜
    デバイスドライバ
    ｜
    H/W
```
    
## 2-2　サーバ仮想化の実装
* マイクロカーネル型
```
    管理OS⇔仮想マシン　    　仮想マシン
      ↑ 　　デバイスドライバ　デバイスドライバ
      |         ハイパーバイザー
      ↓             H/W
```

# 完全仮想化と準仮想化
* 処理効率の違い
    * 完全仮想化
        * ホストOSのH/Wをエミュレート
        * 仮想マシン内のカーネルに変更不要
        * 仮想マシンに汎用的なドライバを組み込む
    * 準仮想化
        * 仮想マシン内に専用のH/Wが存在しているとみなす
        * 仮想マシン内のカーネルに変更が必要
        * 仮想マシンに特化したドライバを組み込む
    * ゲストツール
        * 一部のH/Wを準仮想化にするためのツール群
        
## 2-3　仮想マシン（VM）
* 構成ファイル
    1. 構成ファイル
        * 仮想マシンのH/W情報。仮想OSなどの設定情報
    1. ディスクファイル（仮想ディスク）
        * 仮装OSの実データ

## 2-4　仮装マシンハードウェア
* 仮想マシンハードウェア
    * オーバーコミット
        * 物理リソース以外の容量を、疑似的に仮想マシンに割り当てること
        * リソースの稼働率を高める
    
    1. 仮装CPU（VCPU)
        * CPUの仮想化技術
        * オーバーコミットはタイムライスによって実現
    1. 仮装メモリ（VRAM)
        * メモリの仮想化技術
        * オーバーコミットは重複排除・メモリバールニング・ディスクスワップによって実現
        * スワップ
            * 物理メモリが不足した際、使用していないメモリ内容を一時的に退避させて、メモリ空間を確保→パフォーマンスが低下

    1. 仮装マシンディスク
        * 容量固定ディスク（シックプロビジョニング）
            * 仮想マシンが使用するディスク容量を固定で確保
        * 容量可変ディスク（シンプロビジョニング）
            * 仮想マシンが使用するディスク容量を必要に応じて変化
    1. 仮想NIC
        * 仮想マシン上に搭載

* リソースの割り当て
    * パススルー（リダイレクト）
        * 仮想マシンに物理デバイスを直接接続させる。割り当てる仕組み。
    * SR-10V
        * SR-100V対応のデバイスによって仮想マシンのI/O処理を高速化（従来はハイパーバイザーが行っていた）


```
仮想マシン    仮想マシン            仮想マシン    仮想マシン
　　｜↑　　　　　↑｜　　　　　　　　　　　｜↑　　　　　↑｜
　　ハイパーバイザー                　　ハイパーバイザー　　　←パススルーしている
        ↓｜↓                           ↓　　｜　　↓
　　　ホスト　H/W                    　　SR-10V H/W
```
   
## 2-5　ハイパーバイザーとネットワーク
# 仮装スイッチ
* 仮想化ソフトウェアによって構成される論理的なスイッチ
* 仮想マシンの仮想NICと物理マシンの物理NICを接続
* チーミングの実現など

* 分散仮想switch
    * 複数のホストを「またがって仮想スイッチを統合する

* Jumboフレーム
    * ギガビットイーサネットで使用するフレーム
    * NIC、スイッチなど全てが対応していなければならない

* RDP
    * Microsoft社が開発(Windows系)
    * リモートデスクトップ
        * ネットワーク経由で、別のPCに接続して操作
    * VNC
        * オープンソース、デスクトップ版Linux
        * リモートコントロールソフトとして古くから使われている
    * SSH
        * ポート番号22、暗号化CUIにも対応

# 仮装マシンの再利用
* クローニング
    * 仮想マシン環境を他のPCに複製（クローン）すること
* テンプレート
    * 仮想サーバのひな型
* スナップショット
    * ある時点のデータ（状態）を保存
    * 保存済みスナップショットにより復元
    * 毎回、すべてのデータを保存している訳ではない

## 2-6　仮想マシンの利用
# 仮想マシンのコンバート
* P2V（Physical to Virtual）
    * 物理環境を仮想環境に移行
    * サーバ統合、テスト環境、トラブルシューティングなど
* P2C（Physical to Cloud）
    * 物理環境をクラウド環境に移行
    * P2V→V2C　段階的に行う
* V2V（Virtual to Virtual）
    * 仮想環境を同一または別の仮想マシンに移行
* V2C
    * 仮想環境をクラウド環境に移行
* C2C
    * プライベートクラウド環境をパブリッククラウド環境に移行

## 2-7　ハイパーバイザーの管理とマイグレーション
# 高可用性対策
* アクティブ　アクティブ
    * 2台ともアクティブ（メイン）として動作
    * 1台が停止した場合は、残りの1台が引き継ぐ
* アクティブ　パッシブ
    * 1台がアクティブ（メイン）、1台がパッシブ（待機）で動作
    * メインが停止したバわいは、待機が引き継ぐ
* フェールオーバー
    * メインサーバから待機（パッシブ）サーバに切り替えること
* フェールバック
    * メインサーバに処理が戻ること

# 仮想化環境とマイグレーション
* 異なるホスト間で仮想マシンを移行
* コールドマイブレーション
    * 電源が切れた状態で、仮想マシンを移行する

## 第3章　ストレージ技術
# 3-1　ストレージの種類と特徴
* ストレージ
    * ハードディスク
        * 磁気ディスク（プラッタ）に書き込まれた情報を磁気ヘッドで読み書き
        * 長所：大容量、安価
    * SSD
        * 内蔵メモリチップに読み書き
        * 長所：高速、消音

* ストレージのインタフェース
    * ATA
        * PC用ハードディスクインタフェース
        * 内蔵ハードディスク用インタフェースのIDEをANSIによって標準化
        * パラレル転送
    * SATA
        * ATAの後継規格
        * シリアル転送
    * SCSI
        * コンピュータの周辺機器を接続
        * パラレル転送
    * SAS
        * SCSIの後継規格
        * パラレル転送
    * FC
        * ファイバーチャネルSAN用　内蔵ハードディスクインタフェース

# 3-2　コンピュータおとストレージの接続
* コンピュータの接続状態
    * DAS
        * ストレージをコンピュータに直接接続して利用
        * ブロック単位で記憶領域を管理
    * NAS
        * ストレージをネットワークに直接接続して利用
        * ファイル単位で記憶領域を管理
    * SAN
        * ストレージ専用のネットワーク
        * 光ファイバーを使用：ファイバーチャネルSAN
        * イーサネットを使用：IP-SAN
        * ブロック単位で記憶領域を管理

* 因子エータとターゲット
    * 処理を実行する
    * ストレージ側


# 第４章　クラウドの導入と設計
## 4-1　クラウド導入時の留意点
* クラウドのライフタイムサイクル
    * SLA(Servide Level Agreement)
        * サービスレベル合意
        * サービス提供者と利用者の間で交わされるサービス品質に関する合意
        　→どれぐらいの品質を保証するか？
        * QA(Quality Assirance)
            * テスト環境（検証用）環境
        * PDCAサイクル
            * 業務プロセスの管理
            PLAN
            DO
            CHECK
            ACT
            
        * ITIL
            * IT運用を企業経営に生かすためのノウハウ（お手本）をまとめたもの
            * 英国で作成
            →日本で行かせる部分を参考にする
            
            * サービスサポート
                * 日常的な運用管理について
            * サービスデリバリ
                * 中長期的な運輸雄管理について

* クラウド導入
    * カントリーリスク
        * 海外投資の際、相手国の情勢によって、見込んだお金が回収できなくなること
        →お金の損失
        * データセンタが海外にある場合、相手国のルールに従う(法令、情報規制、証拠差し押さえなど)

* クラウド事業者の評価
    * FISC安全策基本
        * FISC：金融情報システムセンター
        * 金融業界の情報システム利用に関する指針
    * ISMS
        * 字用法セキュリティに関する認識制度(維持・管理が適切に行われているか→ISO/IeC27001)
    * PCI-DSS
        * クレジットカード情報を保護するためのセキュリティ基準
        * クレジットカード業界の国際的セキュリティ基準
    * プライバシー、アーク
        * 個人情報の取り扱いに関する認定制度
    * ファシリティスタンダード
        * 米国基準：Tier
            * データセンターの信頼性をTier I~Tier TVで評価
        * 日本基準：ファシリティスタンダード
            * Tierを日本向けに改良
            * データセンターの耐震構造、通信設備、稼働率などのさまざまな評価基準
            * Tier I ~Tier TVにアレは馬手評価できるようにした

* SPOF
    * 単一障害点
        * その箇所が停止すると、システム全体が停止
        * システムの弱点
        * 対策として、多重化を行う（システムデバイス、ネットワーク回線）
    
    * リージョン
        * 地域
        * 単一のリージョンでデータセンターを設計すると、自然災害時などに対応できない→可用性が確保できない

    * クォータ
        * ユーザ（グループ）ごとに、ストレージの使用料を制限すること（上限設定）

* ネットワーク設定・構築
    * N+1構成
        * 障害に備えた冗長構成
        * 最低限の構築に予備分を1台追加

* ネットワークの仮想化
    * ホップバイホップ方式
        * OpenFlowスイッチ（物理スイッチ・仮想スイッチ）を使用
    * オーバーレイ方式