【AWS】AWSを学び始める前に最低限知っておくべきこと

#はじめに
AWS（Amazon Web Service）の学習を最近始めましたが、学習前に

**「最低限これだけは押さえておいたほうがよかったな」**

と思うことがいろいろあったので、それらをまとめてみました。

ぜひ最後までご覧下さい。




#本記事の内容
[0.インフラとは？](#0-インフラとは？)
[1.AWSとは？](#1-AWSとは？)
[2.AWSで何ができるのか？](#2-AWSで何ができるのか？)
[3.まとめ](#3-まとめ)
[4.最後に](#4-最後に)

#0. インフラとは？
まずAWSについて知っていく前に、最低限インフラについて理解しておく必要があります。

では、インフラとは一体何でしょうか？

結論から言うと、インフラとは<code>**サーバーやネットワーク**</code>のことを指します。

そもそもインフラとは、英語のinfrastractureの略称で、日本語に訳すと**基盤**という意味になります。

>例えば、生活インフラといえば下水道やインターネット、電気や熱などの生活に欠かすことのできない基盤のことを指し、交通インフラといえば信号機、鉄道、バスといったものを指します。


なので、IT関連においてインフラといえば、**システムやサービスの基盤となる設備**を指し、これに当たるのが**サーバーやネットワーク**になるということです。
<br>
では次にこの<code>サーバーやネットワーク</code>について詳しく見ていきましょう。

##サーバー
サーバーとは<code>**クライアントに対してサービスを提供するコンピュータ**</code>のことを言います。

もっとわかりやすく言うと、**お客様に何かしらのサービスを提供する機能を持ったパソコン**のことを言います。
<br>
サーバーというのも、元々の語源は実は英語のserverであり、日本語に訳すと**「仕える人」「給仕人」**という意味になります。

レストランなどで飲み物や食事のオーダーを取ったり、お料理を運ぶ人をサーバーと呼ぶことを想像してもらえればわかると思います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751055/10d10aa3-5c8f-f23c-3b36-781694a1bdab.png" width=30%>
<br>
そして、IT分野におけるサーバーも実はそんなに大差なく、**この飲み物のオーダーを取ったり、お料理を運ぶ人がパソコンに置き換わっただけ**だと考えればいいだけです。

つまり、

*お客さん（**IT分野では<code>クライアント</code>と呼ばれる**）の注文や要求（**IT分野では<code>リクエスト</code>**）
に対して、何かしら応える（**IT分野では<code>レスポンス</code>**）ものがサーバーであって、「そのレスポンスをどれに行わせているのか？」により違いが生じる*

ということで、ITの世界においては、その役割を**パソコンが担っているという訳です。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751055/7b9f804a-ea66-bd74-cdb4-185a7bc10143.png)


##ネットワーク
続いてネットワークについて見ていきましょう。

ネットワークとは、<code>**複数のコンピューターをつないで、データを送受信できるようにするもの**</code>を指します。

>コンピューターとコンピューターを**直接ケーブルでつないでデータを送受信できるようにするもの**もネットワークですし、**インターネットのようにいろいろなコンピューターとつないでデータをやりとりすることができるようになるもの**もネットワークと呼ばれます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751055/099b7ade-d7b4-73d6-2b6c-35ed123dfb29.png" width=30%>

<br>
ではここから本題に入っていきます。
<br>

#1. AWSとは？
AWSとは、**Amazon Web Services（アマゾンウェブサービス）の略で、米Amazon.comが提供する<クラウドサービス**のことです。

100以上のサービスが存在し、クラウドサービスとしては世界最大規模で、日本を含む全世界15ヶ所で展開されています。
<br>
そしてAWSはクラウドサービスであるので、AWSを学習するには**<code>「クラウドとは何か？」について理解する必要があります。**

##クラウドとオンプレミスについて
クラウド（別名：クラウドコンピューティング）とは、<code>**ネットワークを利用してコンピューターリソースを利用する形態のこと**</code>です


しかし、これだけではいまいちわかりづらいので、クラウドと似た利用形態である**オンプレミス**と見比べながら説明していきましょう。

###オンプレミス
クラウドとよく比較されるものとして、**オンプレミス**と呼ばれるものがあります。

これは、

<code>サーバーやネットワーク機器などを**データセンターと呼ばれる施設**に持ち込んで、**自前でインフラを構築して運用して、何かしらの情報システムを運用していく方法のこと**</code>

を指します。
<br>
まず前提として、オンプレミスでもクラウドのどちらにおいても**データセンターと呼ばれる施設**が必要になります。

データセンターとは、**インターネットなどにサービスを提供するためのサーバーやネットワーク機器などを置いて運用するための施設のこと**を言います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751055/8e45ff74-4d50-64cc-35cd-223ed13f3621.png" width=40%>

そしてこのデータセンターに、情報システムやサービスを運用したい人であったり会社がサーバーやネットワーク機器などを持ち込んで、設置していきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751055/3cd565a0-43b9-ab4f-1970-02b58a192d22.png" width=30%>

こうして運用されるのが、オンプレミスと呼ばれるものです。
<br>
しかし、このオンプレミスには**いくつか欠点**があります。
<br>
①**サーバーの設置やネットワークの敷設に日数が必要**
>当然、機材の調達や配置が必要なので、追加や変更をする際には日数が必要になります。いきなり「明日からサーバーの台数を増やしたい」というようなことは中々できません。

②**保守が必要**
>サーバーやネットワーク機器などは自社で保有するため、初期コストがかかるのはもちろん、故障した時などには交換が必要となります。
さらにサーバーやネットワーク機器に異常がないかを日々監視する運用業務が必要となります。

③**障害対策にコストがかかりすぎる**
>サーバーやネットワークが壊れた時にはそれを交換する必要があります。
そのためには予備の設備を用意しておく必要があり、例えばサーバーが壊れた時のために2台以上用意しておく、回線を二重化しておくなどの方法があります。

>しかしこれらにはそれなりのコストがかかってきます。

<br>
このように、オンプレミスでインフラを構築していくためにはそれなりのデメリットがあり、サービス提供者側は非常に困っていました。

そこで生まれたのが、**クラウド**と呼ばれるものだったのです。

なので、クラウドとは基本的には<code>オンプレミスと逆のことをするものだと理解すればわかりやすいかもしれません。

###クラウド
ではクラウドの説明に移ります。

クラウドとは、先ほども述べた通り、基本的にはオンプレミスとは逆のものであるので、まず<code>データセンターにサーバーやネットワークを各自が設置しません。

その代わりに、**<code>データセンターには予め十分な数のサーバーやネットワーク設備が用意されていて、必要に応じてそれらをすぐに借りて使っていける</code>**という運用方法になっています。

つまり、クラウドサービスとは**サーバーやネットワークのレンタルサービス**ということになります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751055/15e7b596-8965-e6b3-c285-4ae24cf152bd.png" width=30%>

そして、クラウドはオンプレミスによる課題を次のように解決します。
<br>
①**サーバーの設置やネットワークの敷設は即時**
>クラウドサービスでは、仮想的にサーバーやネットワークを構成しているため、物理的な配置が必要なく、クラウドサービスの管理画面から操作すると、ものの数分でサーバーやネットワークを作れます。

②**保守は必要なし**
>サーバーやネットワーク機器などはクラウドサービス会社が保有し、管理しています。そのため、保守の必要はなく、いつでも最新の設備を使うことができます。

③**障害対策のコストは抑えられる**
>クラウドサービスでは、すぐにサーバーやネットワークの代替を作れるため、予備の設備をあらかじめ用意しておく必要はありません。

>またほとんどのクラウドサービスは、回線を二重化しており、データセンターも複数の拠点、そして世界各国で運用しています。
このため各拠点間でのデータ同期などで、大規模災害が発生した時にも耐えられるような、分散して運用するシステムも作りやすくなっています。

<br>
###まとめ
ここまで長くなりましたので、最後にクラウドとオンプレミスの違いについて「車」を例に出して、ざっとまとめておきます。
<br>

| 車を買う                                                                                                                                                   | 車を借りる                                                                                                                                                | 
| :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| ・自分のもの<br>・メンテナンスや車検は自分持ち<br>・最初にお金がかかる。税金（自動車税）もかかる<br>・買ったらしばらく同じ車に乗り続けなければならない<br> | ・ 自分のものではない<br>・メンテナンスや車検はやらなくていい<br>・使った分だけ払えば良い。税金もかからない<br>・たまにはスポーツカーなど別の車も借りれる | 

| オンプレミス                                                                                                                                               | クラウド                                                                                                                                                      | 
| :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | 
| ・自分のもの<br>・保守や運用は自分の責任<br>・最初にお金がかかる。税金（固定資産税）もかかる<br>・買ったらしばらくは同じ構成で使い続けなければならない<br> | ・ 自分のものではない<br>・保守や運用はしてくれる<br>・使った分だけ払えばよい。税金もかからない<br>・性能が必要な時は、その時だけ高性能なサーバーを借りられる | 


<br>
#2. AWSで何ができるのか？
では最後に、AWSを用いるとどういったことができるのか？ということについて考えていきましょう。
<br>
インターネット経由でAWSのコンソール画面にアクセスすると、様々な機能を利用することができ、AWSでは**大きく分けて90以上、細分化すると700以上ものサービスが提供されています。**

そしてこれだけたくさんのサービスがあると


>「そんなにたくさんあるサービスを全て使いこなすのなんて難しい！」


と考える人は多いかと思います。
<br>
しかし、そのような心配をする必要はありません。

というのも、AWSを使う場合、よく使うサービスというのは**多くても10個程度**で、それら以外は**ある特定の目的に特化したもの**であるからです。

例えば、ビッグデータの集計目的で使うものや、機械学習をするためのもの、IoT機器を制御するときに使うものなどがあり、これらは<code>**そういう分野の情報システムを使わない人にとっては全く関係のないものです。**</code>
<br>
そしてよく使うサービスの代表としては以下のようなものがあります。ざっと概要だけを載せておきます。
<br>

| サービス   | 概要                                                                                            | 
| ---------- | ----------------------------------------------------------------------------------------------- | 
| IAM        | ユーザーやグループの管理、認証をする仕組み                                                      | 
| VPC        | 仮想ネットワーク                                                                                | 
| EIP        | 固定IPアドレスを割り当てる                                                                      | 
| EC2        | 仮想サーバー                                                                                    | 
| EBS        | 仮想サーバーなどで使うストレージ                                                                | 
| S3         | Webサーバーとしても使えるストレージサービス。汎用的なファイル置き場として、様々な場面で使われる | 
| RDS        | データベースサービス                                                                            | 
| Route 53   | DNSサービス                                                                                     | 
| CloudFront | Webコンテンツなどのキャッシュ機能を提供する。HTTPSで暗号化通信する機能もある                    | 
| ELB        | 複数台の仮想サーバー（EC2）に負荷分散する。HTTPSで暗号化する機能もある                          | 

#3. まとめ

- インフラとは**サーバーやネットワーク**のこと
- サーバーとは**クライアントに対してサービスを提供するコンピューター**のこと
- ネットワークとは**複数のコンピューターをつないで、データを送受信できるようにするもの**
- AWSとは、**Amazon Web Services（アマゾンウェブサービス）**の略で、米Amazon社が提供する**クラウドサービス**のこと

- オンプレミスとはサーバーやネットワーク機器などを**データセンターと呼ばれる施設**に持ち込んで、**自前でインフラを構築して運用して、何かしらの情報システムを運用していく方法**のこと
- クラウドとは**ネットワークを利用してコンピューターリソースを利用していく形態**のこと

#4. 最後に
本記事の内容がみなさんの参考になれば嬉しいです。

最後までご覧いただきありがとうございました。

#5. 参考文献

[Udemy講座：ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得](https://www.udemy.com/course/aws-and-infra/)
[書籍：ゼロからわかる Amazon Web Services超入門 はじめてのクラウド かんたんIT基礎講座](https://www.amazon.co.jp/dp/B07TFTGHMX/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)



<br>