[Cloud] クラウドサービスについて

5年ぶりくらいに新規記事を書きます。
執筆することに情熱が注げない日々が続いていたことは事実ですが、それはただの言い訳ですね。
誰かに何かを伝えたいという意志があるのなら記事を書くべきですよね。

## 当記事の想定読者
想定読者としてはインフラエンジニア初心者やクラウドについて知りたいけどクラウドって何？という人です。

## １．そもそもクラウドとは？
みなさんはパソコンやスマホを用いて何をしますか？
ネットサーフィンをする、ゲームをする、仕事をする、絵を描く。
いろいろな用途があると思いますが、そのときにほぼ確実に使用しているものは「アプリケーション」と呼ばれています。

ネットサーフィンをするときにはブラウザを使用しますね。
この時使用しているブラウザが「Chrome」なのか「FireFox」なのか「Edge」なのかはわかりませんが、全て「アプリケーション」です。
仕事をするときに「Microsoft Office Excel」や「Microsoft Office Word」を使用しているかもしれませんが、これらも「アプリケーション」です。

「アプリケーション」は基本的に単一の端末でしか動作させることができません。
「アプリケーション」を利用するまでにはインストールや設定等様々な面倒が伴います。
また、作成したデータ等は基本的にローカルの端末内に保存されます。

そういった面倒事を解消しうる存在がクラウドです。
クラウドとは、**「使用する人・会社が必要以上のリソースを準備せずとも、インターネットを通じて、リソースを必要な時に必要な分だけ利用する考え方」**のことです。
また、**「必要以上のリソースを準備せずとも、インターネットを通じて利用できるサービス」**をクラウドサービスと呼びます。

では、リソースとはんでしょうか？
それは「アプリケーション」や「サーバ」や「インフラ」のことです。
当然、クラウドサービスを利用するためには必要最低限のリソースとインターネットに接続できる環境は必要になります。

具体的なクラウドサービスとして「Gmail」があります。
これはSaaS（後述）に分類されるクラウドサービスです。
「Gamil」はメールクライアントアプリケーション（「Microsoft Outlook」や「Becky!」等）を利用せずとも、ブラウザさえ（スマホ上では「Gmail」という専用アプリケーションが提供されていますが、使わずとも「Gmail」へのアクセスは可能）使用することが可能であれば、**メールサービス**を利用することができます。

### 章のまとめ
* クラウドとは、**「使用する人・会社が必要以上のリソースを準備せずとも、インターネットを通じて、リソースを必要な時に必要な分だけ利用する考え方」**のこと
* 必要最低限のリソースとインターネット環境があれば、どこからでもクラウドサービスを利用することが可能

## ２．クラウドの種類
クラウドには、提供している機能によって種類があります。
大別すると、主に以下の3つです。

### SaaS (Software as a Service)
インターネット経由でソフトウェア（アプリケーションと同義と考えてもらって問題ないです）を提供するサービスです。
ブラウザさえあれば他はリソースとして準備するものはありません。
個人にとっても、法人にとっても最も馴染みのあるサービス体系になります。

前述したメールをはじめ、グループチャット（Slack, Chatwork等）、オンラインストレージ（Dropbox, Google Drive等）などもすべてSaaSに分類されます。

### PaaS (Platform as a Service)
インターネット経由で開発環境を提供するサービスです。
製作したアプリケーションをリソースとして用意する必要があります。
法人利用が多く、一番わかりづらいサービス体系ではないかと思います。

具体例としては「Heroku」や「Firebase」といったサービスになります。
共有サーバも見方によってはPaaSになると思います。

### IaaS (Infrastructure as a Service)
インターネット経由でインフラ部分を提供するサービスです。
OS、Webサーバ、アプリケーション等はリソースとして用意する必要があります。
法人利用が多く、多くの利用者がいるサービスになります。

VPSなどはすべてこのサービス手法と言えるでしょう。

## ３．クラウドのメリット

### （１）サービスがすぐに使える
クラウドの最大のメリットはここにあると思います。
誰でもアカウント等を準備するだけですぐに使うことができる状態になります。
この事によってスピード感のあるビジネスというものも可能になるかと思います。

### （２）システム・環境の構築・保守・運用が不要
ローカルのアプリケーションを利用する場合、アプリケーションをインストールする作業があります。
クライアントサーバ型のシステムであれば自社サーバを準備する必要があります。
しかし、そういった環境構築や保守・運用はすべてクラウドサービス提供者が行ってくれるため、専任の技術者等も不要になります。

### （３）規模の拡張・縮小が容易に行える
ローカルのアプリケーションを利用する場合、人数が増えたり減ったりする場合、都度ライセンスの増減等が発生するかと思います。
また、アクセスする人数が増えた場合、自社サーバ増強をすることもあるかもしれません。
クラウドサービスにおいてはそういった規模の拡大・縮小は管理コンソールから簡単に行えるようになっております。

### （４）基本的にマルチデバイス環境で利用可能
ローカルのアプリケーションを利用する場合、あるPCで作業した情報を他のPCで引き継ぐにはUSBメモリに入れて持ち出したり、ファイル共有したりする必要があります。
クラウドサービスにおいては、作業した履歴やデータ等の情報はすべてクラウド上に保存されます。
そのため、どの端末であってもログインすれば引き継ぐことが可能です。
ただし、インターネット環境が必須であることは忘れてはなりません。

### （５）必要な分だけしか料金の支払いがない
例えば、利用時間による課金の場合、60分利用したとするならばその60分利用した分しか請求されません。
自社サーバなどのように稼働させているだけで常に料金（コスト）が発生し続けるということはありません。

### （６）TCO（総保有コスト）の減少
これは法人にしか関係ない話ですが、TCOを削減できる可能性があります。
自社サーバ等のリソースを新たに購入する必要がない場合があるためです。
SaaSに関してはあまり当てはまらないかもしれません。

## ４．オンプレミスとの比較
オンプレミスとは自社内にリソース（自社サーバやインフラ等）を設置して、自社で保有するシステムの運用を行うことです。
つまり、簡単に言いますと、クラウドの対義語として考えていただければよいかと思います。

オンプレミスとクラウドのメリット・デメリットを表形式でまとめてみます。

| 要件               | オンプレミス | 　クラウド　    |
|:-------------------|:-----------:|:--------------:|
| システムが利用できるまでにかかる時間 | 長い | 圧倒的に短い |
| 初期費用            | 必要        | 不要な場合が多い |
| 保守・運用コスト     | 必要        | 不要           |
| 総保有コスト         | 必要        | 不要           |
| サービス利用料       | 不要        | 必要           |
| スケールアップ・スケールダウンの容易さ | 難しい | 容易 |
| カスタマイズ性       | 高い        | サービスによる  |

セキュリティについてはあえて外しております。
なぜなら、**要件と設計次第でクラウドであっても高いセキュリティが担保されたシステムを構築することは可能だから**です。

## ５．AWS, Azure, GCPについて
クラウドサービスについて語るときに、AWS, Azure, GCPについて知らないことはよろしくないことだと思います。
AWS, Azure, GCPはいずれも複数のクラウドサービスを提供しており、**パブリッククラウド**と呼ばれています。
それぞれについて説明いたします。

### AWS
正式名称は**「Amazon Web Services」**です。
通販大手のAmazon社が運用しているクラウドサービスです。
SaaS、PaaS、IaaSと幅広くサービスを提供しております。
[提供サービス一覧はこちら](https://aws.amazon.com/jp/products/)

世界のシェア的にはダントツで首位を維持しております。
パブリッククラウド市場においてはデファクトスタンダードと化しております。

### Azure
正式名称は**「Microsoft Azure」**です。
Microsoft社が運用しているクラウドサービスです。
PaaS、IaaSを中心として幅広くサービスを提供しております。
[提供サービス一覧はこちら](https://azure.microsoft.com/ja-jp/services/)

世界のシェア的には2位ですが、成長率はトップとなっております。
Microsoft製品との連携が強みで、特にActive Directoryが絡む場合は多く利用されている印象です。

### GCP
正式名称は**「Google Cloud Platform」**です。
Google社が運用しているクラウドサービスです。
PaaS、IaaSを中心として幅広くサービスを提供しております。
[提供サービス一覧はこちら](https://cloud.google.com/products/)

世界のシェア的には3位ですが、[マルチクラウド化](https://cloud.google.com/anthos?hl=ja)に一番注力しているのではないかと思います。
Google社のサービス連携や機械学習を活用したビッグデータ解析が強みとなっている印象があります。

---

エンジニア向けになりますが、AWSを中心としたサービス比較表がありますので、掲載しておきます（2020年4月現在）。
[AWS/Azure/GCPサービス比較 2020.04](https://qiita.com/hayao_k/items/906ac1fba9e239e08ae8)

## 最後に
クラウドは現在なくてはならない存在となり、非エンジニアの方々の会話の中でも当たり前のように話に出てくるようになりました。
そういう方々に向けて理解の一助となれば幸いです。

## 参照資料
* [クラウドコンピューティングってどんなもの？定義やメリットをわかりやすく紹介（初心者向け）](https://www.cloud-for-all.com/blog/cloud-computing.html)
* [クラウドとは](https://altus.gmocloud.com/suggest/cloud/)
* [オンプレミスの対義語「オフプレミス」とは？ オフプレミスとオンプレミス、それぞれのメリットとデメリットについて。](https://www.ines-solutions.com/industry/a187)
* [2019年の世界クラウド市場シェアについて](https://www.itmedia.co.jp/news/articles/2002/13/news117.html)