AWSの基礎(EC2/S3/EFS/ELB/RDS)の簡単まとめ

#未経験エンジニア入社前の知識整理
入社後に必要と言われたAWSの知識をまとめてみました。

ほとんど、下記サイトのコピペです。
https://business.ntt-east.co.jp/content/cloudsolution/column-23.html
https://recipe.kc-cloud.jp/archives/7497
##EC2 (Elastic Compute Cloud)

　AWS上に仮想サーバを作るサービス。AWSにサーバを立ててアプリケーションを開発する際には、必須となるサービス。AWS上にWindowsやLinuxのサーバを作ろう、と思ったら、まずはEC2を使う必要がある。

ちなみにElasticは「伸縮性のある」という意味。ユーザーの必要に応じてスペックを自由自在に変更できるのがEC2の魅力です。継続利用時に起こりがちなスペック不足やディスク容量問題への対処も容易なコンピューティングキャパシティーであるため、長期的な運用に向いている。

下記に簡単にEC２導入のメリットを掲載する。
・簡単なスペック変更
・従量課金によるコストメリット
・スピーディな構築による時間短縮
・冗長化も簡単に行える

###関連用語
 +  インスタンス　｜EC2内に立てたサーバのこと。
 

##ELB(Elastic Load Balancing)
　ロードバランサーの一つ。ロードバランサーとは、集中するトラフィックを分散し、サービスの稼働を安定させるものです。ロードバランサーにより、クラウドサービスの特徴である柔軟性や高可用性をより高いレベルで実現できます。

　ELBは、ほかのサービスへのトラフィックを、仮想サーバーなどの複数のターゲットに自動的に分散し、安定稼働をサポートするサービスです。複数のサーバーへの負荷を均一化し、障害に対する耐性を高めます。


#ストレージシステム系（S3/EFS/EBS）
（自分で勉強したかった）ストレージシステムが3種類あり、調べていて頭の中が混乱したので、
ストレージシステム系でまとめて説明をする。

##1. EBS(Elastic Block Store)  
 Amazon EC2向けの永続的なブロックストレージで、EC2とセットで使うためのもの。EC2のデータはすべてEBSに保存する構成が基本。
実はEC2にもデータを保存する領域はあるのですが、そちらはEC2を停止するとデータも消えてしまう仕様。なので、このようなストレージサービスを使用するのが基本。後で説明するS3もストレージサービスの一つでありEC2で使用されることが多い。
##2. S3(Simple Storage Service)
 容量が無制限でコスパの良いストレージサービス。EC2と合わせて使用することが多く、AWSの中核サービスの1つ。先述したEC2と合わせて用いられるEBSとの大きな違いは、S3は容量が無制限だということ。

そして、S3の方がEBSより安いとのこと。料金を比較しているサイトから下記引用（https://www.bit-drive.ne.jp/managed-cloud/column/column_04.html）

S3の月額料金は、＄0.025/1GBあたり（最初の50TB、スタンダードストレージ）
EBSは、$0.12/1か月にプロビジョニングされたストレージ1GBあたり
※どちらも東京リージョン、2017年8月現在

S3が$0.025に対して、EBSは$0.12と約5倍もの差が…！この差は大きい。
「アプリケーションからアクセスする頻度が高いデータはEBSに入れておいて、バックアップなどのデータをS3に置く構成が鉄板」らしい。


##3. EFS(Elastic File System)
AWSのマネージドNFSサービスであり、マネージドNFSサービスを利用することによってNFSサーバーの構築・運用の負荷を軽減することができる。ひとつずつ言葉を優しく変換していくと、

マネージドとは、通常は自分たちでサーバーの運用や構築などを行うところを、AWS側が代わりに管理や運用してくれるということ。

　NFS（Network File System）の説明の前に、まずファイルシステムとは、サーバーやPCにおいて、ハードディスクやCD－ROMなどの記憶装置・媒体などにデータを決まったフォーマットで整理・保存するためのOSの機能のことです。

　そして、NFS（Network File System）とはLinuxなどのOSに標準で実装されているファイルサーバー機能です。NFSを使用すれば、ネットワークを介してファイルサーバー上のストレージ領域をローカルサーバーのハードディスクなどと同様に利用可能です。複数のサーバー間でのファイル共有が簡単に実現でき、複数のサーバーから共有しているファイルシステムに対して同時アクセスできるというメリットがあります。

##各ストレージサービス（S3 / EBS / EFS）の違いとは？？
####S3(Simple Storage Service)
 「オブジェクトストレージ」というタイプのストレージサービスであり、データを「オブジェクト」と呼ばれる単位で読み書きするためのHTTPSなどでアクセス可能なエンドポイントを提供します。

####EBS(Elastic Block Store)
「ブロックストレージ」というタイプのストレージサービスであり、Amazon Elastic Compute Cloud (EC2)のインスタンスにアタッチするためのボリューム(容量)を提供します。

####EFS(Elastic File System)
「ファイルストレージ」というタイプのストレージサービスであり、LinuxなどのOSでマウント可能なファイルシステムを管理するために使う



##RDS(Amazon Relational Database Service)
　クラウド上で提供するRDBMS（リレーショナル型のデータベース）サービスです。

　リレーショナル型のデータベースとは、行と列の2つの軸で表されるデータベースのことです。イメージとしては、高機能なExcelのようなものです。
　データベースは、特定の条件に基づいて複数のデータを管理し、必要に応じて目的のデータを検索したり、編集を行ったりするために必須です。なかでもリレーショナル型データベースは、情報の整合性や管理の効率化に優れているという特徴があります。

　以上のことからリレーショナル型データベースは、顧客リスト、商品一覧データ、従業員リストなど幅広い種類のデータ管理に適しています。

　コンピューター上でリレーショナル型データベースを構築するには、通常「RDBMS（Relational DataBase Management System）」と呼ばれるリレーショナル型データベースを管理するためのソフトウェアを使用します。言い換えれば、データベースを構築したり更新したりする際に使用するためには、RDBMSが必要であるということです。
RDBMSの代表的なサービスとしては、OracleやMySQL, PostgreSQLが挙げられます。RDSによって、これらのRDBMSのインストール作業などの運用の負荷が劇的に削減できます。

他にもRDSにはいくつかの特徴的な機能があります。
今回紹介するのは以下の3つになります。

####1. Multi-AZ機能
こちらの機能の説明の前にAZについて簡単に紹介します。

#####AZとは？
AWSのデータセンターのある地域（リージョン）の中で複数拠点に分かれているデータセンターのことをアベイラビリティゾーンといいます。
つまり、AZとはこのアベイラビリティゾーンのことです。

Multi-AZとは、データベースの可用性を高める事ができる機能です。
通常データベースは、冗長構成を組む際に必ず、親機と子機のデータの同期を取らなくてはいけません。

この同期を取る構成をユーザーが組む必要があり、ここでも運用の手間がありましたが、このMulti-AZ機能を利用することで、AWS側が自動で親機と子機のデータの同期を取ってくれ、さらに、フェイルオーバー機能を使い、親機に障害があった際に自動で子機に切り替えが行われます。

####2. RR（リードレプリカ）機能
リードレプリカ機能は、読み取り専用のレプリケーションを作成できる機能です。
この機能を使うことで、親機に読み取りにかかる負荷を軽減できます。
これにより、親機のパフォーマンスが向上します。

####3. 自動バックアップとリストア
RDSの最大の特徴の自動バックアップ機能は、最大5分前までのリカバリが出来る機能です。
障害時や誤作動が起きた際に、5分前の状態に戻すことが出来ます。
このバックアップも、簡単な設定を行うだけで、後はAWS側で勝手にバックアップを撮り続けてくれます。
さらに、このバックアップデータは最長で35日間まで保存することが出来ます。