1. はじめに
こんにちは。
クラウド事業本部に所属しております、ito.sと申します。
現在は初めてのインフラエンジニアとして、5ヶ月間保守・運用メンバの一員となり業務を行っております。
そして、今年からAWSリソースの一つであるFargateというサービスに構築から携わる予定になっております。
しかし、現状の自分では基礎がおろそかになっていると感じたため、AWSの基本的な考え方や関連するサービスにつきまして改めて学習を行い、アウトプットすることにしました。
以上により、複数回に分けて記事を投稿していきたいと思います。
まずは、クラウドコンピューティングについて説明させていただきます。
2. クラウドコンピューティングってなに?
インフラに関わる前の話になりますが、ITエンジニアとして働き始めて最初によく聞いた言葉が「クラウド」でした。
しかし、この当時の私は「ネットの向こう側にあるもの?」くらいの認識しかありませんでした。
ざっくり説明すると、クラウドコンピューティング(以下、クラウド)とは、インターネットを通じてコンピューティングリソース(サーバ、ストレージ、データベースなど)を必要な時に必要な分だけ利用できるサービスのことです。
ここから更に「オンプレミス」を加えて比較しながら説明したい思います。
しかし少し分かりづらくなりそうな気がしたので、インフラという点を意識しつつ、生命のライフラインである「水」を例え話にして説明します。
① オンプレミス(井戸)
むかし、人々は自分の家に井戸を掘って水を確保していました。
これは、従来のシステム運用方式「オンプレミス」に似ています。
このようにオンプレミスとは、自社で物理的なサーバを保有・管理する方式です。
- 井戸を掘るためには初期投資と工事期間が必要(=サーバの購入・実用までの納期)
- 水が枯れないかをチェックするため定期的な管理が必要(=サーバの保守)
- 最大使用量を想定して井戸の大きさを決める(=サーバの容量設計)
- 使用量が増えても井戸は簡単には大きくできない(=スケーリングの難しさ)
② クラウド(水道)
さらにその後、人々は共同で水道施設を作り、水を供給する仕組みを整備していきます。
結果として、水道局が24時間体制で水質を管理し、自分の家の中に蛇口を設置して水を使うようになりました。
- 蛇口をひねれば必要な時に必要なだけ水が使える(=必要な時に必要なだけリソースを使える)
- 水道管の管理は水道局が行う(=インフラの管理はクラウド事業者が行う)
- 使った分だけ料金を支払う(=従量課金制)
- 急に使用量が増えても対応できる(=柔軟なスケーリング)
- 水が出なくなる心配が少ない(=高可用性)
3. クラウドのメリット
クラウドの最大のメリットは「スピード感」です。
オンプレミスでは、サーバの購入から設置まで数週間から数ヶ月かかることもあります。
しかし、クラウドなら数分でサーバを立ち上げることができます。
また、一時的にアクセスが増加した時も、すぐにサーバのスペックを上げたり、台数を増やすことができます。
先ほど説明した「井戸」「水道」を用いて比較してみます。
- オンプレミス:井戸を掘るように、サーバの購入から設置まで数週間~数ヶ月かかる
- クラウド:水道の蛇口をひねるように、数分でサーバを用意できる
アクセス数が増えた時も、
- オンプレミス:新しい井戸を掘るように、新規サーバの調達に時間がかかる
- クラウド:蛇口を全開にするように、すぐにリソースを増やせる
という具合に、クラウドは使い勝手の部分でメリットを感じることができます。
4. クラウドサービスの種類
初めてのインフラ案件にジョインしてから1ヶ月くらい経った時、「IaaS」「PaaS」「SaaS」という言葉を聞いて戸惑った記憶があります。
これらは「クラウドサービスの提供形態」の違いを表しています。
こちらについても詳しく説明すると冗長になりますので、あえて筆者の好きな「ピザ」に例えて説明します。
① IaaS(Infrastructure as a Service)
IaaSは、「ピザを作るためのキッチンを借りる」ようなものです。
- お店からキッチン、オーブン、調理器具を借りる(=サーバ、ストレージを借りる)
- 材料の仕入れから調理まで全て自分で行う(=OSのインストールからアプリケーションの設定まで全て自分で行う)
- 自由に好きなピザが作れる(=システムを自由に構築できる)
AWSサービスでいうところの「EC2」という仮想サーバサービスが該当します。
全て自分で設定できるので自由度は高いですが、その分の技術力と手間が必要です。
② PaaS(Platform as a Service)
PaaSは、「ピザ生地とオーブンだけ提供してもらう」ようなものです。
- お店が生地とオーブンを用意してくれる(=実行環境が準備されている)
- トッピングは自分で選んで料理できる(=アプリケーションのコードは自分で書く)
- オーブンの温度管理などは店側がやってくれる(=サーバの管理はサービス側が行う)
こちらはAWSサービスでいうところの「Lambda」というサービスが該当します。
Lambdaはアプリケーションのコードをアップロードするだけでクラウド上で実行できるサービスです。
インフラ管理を気にせず開発に集中できる一方で、細かい設定のカスタマイズについては調整が難しいのが特徴になります。
③ SaaS(Software as a Service)
SaaSは、「出来上がったピザをデリバリーで注文する」ようなものです。
- メニューから好きなピザを選ぶだけ(=必要な機能をすぐに利用できる)
- 調理は全てお店におまかせ(=システムの管理・運用は全てサービス提供者が行う)
- カスタマイズの自由度は低い(=基本的に提供される機能しか使えない)
こちらはAWSサービスでいうところの「S3」というストレージサービスが該当します。
ちなみにAWSとは直接関係ありませんが、例えば皆さんがよく使う「Gmail」や「Slack」などもこちらにあたります。
すぐに使い始められる一方、独自の機能を追加することが難しいというところが特徴になります。
5. さいごに
今回は「クラウドコンピューティングとは何か」について、私なりの理解を引き出して書いてみました。
次回は、AWSサービスでよく使用されているサービスについて紹介していきたいと思います。
参考リンク: