Amazon Web Services入門 (AWSの基礎)

# はじめに
ITシステムやアプリケーション構築する際に「サーバーレス」というのが当たり前になっています。
クラウドの中で最もシェアが高く世界中で利用されているのが AWS です。
![Amazon-Web-Services_logo835x396.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229633/5abec582-9624-d757-303d-21a58c4cf813.png)
AWS には、サーバーレスアプリケーションの構築と実行に使用可能な、一連の完全マネージド型サービスが用意されています。サーバーレスアプリケーションでは、コンピューティング、データベース、ストレージ、ストリーム処理、メッセージキューイングなどのバックエンドコンポーネントのために、サーバーのプロビジョニングやメンテナンス、管理を行う必要がありません。また、アプリケーションの耐障害性や可用性を心配する必要もなくなりました。

AWS の機能を基準にしてクラウドやオンプレミス環境との機能やコスト比較することがIT構築で必須となっているのが現在のIT業界の位置づけです。よって、AWS の知識があることがインフラエンジニアだけでなく、あらゆるプログラマーやSE、ITコンサルタントまでに至るまで必須となっています。

[ドットインストール](https://dotinstall.com/) と本で AWS の知識を身につけたので、備忘録としてまとめます。

# 内容
*Amazon Web Services入門*
_Amazonが提供する各種クラウドサービスについて簡単にまとめました。_
　_※ 各種サービスの使い方についても別でまとめます。_

**参考にした動画**

ドットインストール Amazon Web Services入門
https://dotinstall.com/lessons/basic_aws

- AWSのアカウント作成から、EC2インスタンスの立ち上げ、RDSの立ち上げを把握します。
- EC2、RDS、S3での環境構築を実際できるように準備します。

ドットインストールの動画は少し古い情報であったので、最新の情報を確認して進めていきます。

**参考にした本**

- [図解即戦力　Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書](https://amzn.to/37vhWgf)
- [Amazon Web Services 基礎からのネットワーク&サーバー構築](https://amzn.to/35keN0a)
- [ゼロからわかる Amazon Web Services超入門 はじめてのクラウド かんたんIT基礎講座](https://amzn.to/3m9N3lN)

---

## Amazon Web Services入門 
Amazon Web Servicesについて、各種クラウドサービスを把握していきます。

### Amazon Web Servicesとはなにか？
#### AWSの概要
AWS とは、Amazonが提供するクラウドサービスの総称です。Amazonが保有する膨大なコンピューターリソースを、使用量に応じた従量課金制で使用できます。オンプレミス（自社）サーバーのように多額の先行投資が必要なくなり、システムコストを下げることが可能です。また、多数のデータセンター（アベイラビリティーゾーン、AZ）で構成されており、AZも世界中の地域（リージョン）に分散して配置されています。このため、物理障害に強いシステムを構成することができます。

#### 公式サイト
- AWSの公式サイトURL
  - http://aws.amazon.com/jp/

#### 必要となる知識
- Unixコマンド

#### 必要となる準備
- AWSアカウント
  - [AWS アカウント作成の流れ](https://aws.amazon.com/jp/register-flow/)

AWS アカウントを作成すると、60以上のAWS製品を1年間無料で試せます。
また、AWSクラウドの世界中のリージョンで提供される、すべてのサービスを始めることができます。
![idx-img-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229633/91ef9313-98e9-6212-82c2-198e92a776f8.png)
#### 用語について（EC2、RDS、S3）
- **EC2　（Elastic Compute Cloud）**
多くのシステムの基盤となる、仮想マシンを実行できるサービスです。クラウド上でLinuxやWindowsなどの仮想マシンを起動して、その上でアプリケーションを実行することができます。

- **RDS　（Relational Database Service）**
AWS上でRDBを利用できるサービスです。Amazon Aurora（MySQL互換DB）やOracle、SQL Server、PostgreSQL、MySQL、MariaDBといった主要なデータベースエンジンに対応しています。

- **S3　（Simple Storage Service）**
S3は、KVS（Key Value Store）に分類されるオンラインストレージサービスです。データ（オブジェクト）を、パケットと呼ばれるコンテナにキーと紐付けて保存します。オブジェクトを取得する際には、パケット名とキーを指定して取得するオブジェクトを特定します。RDB（リレーショナルデータベース）を使うまでもない、シンプルなデータモデルを扱う場合に適しています。

### 料金について
- [AWS 無料利用枠](https://aws.amazon.com/jp/free/)

#### 料金の確認
AWSで新規にアカウントを取得すると、12ヶ月の無料利用枠が与えられます。これは、サービスごとに設定されている一定の利用条件内ならタダで使用できるというものです。中には、期限後にもそのまま無料で使えるサービスもあります。評価目的や学習目的のみならず、スモールスタートでの実運用にも活用できるでしょう。

非常に多くのサービスが対象になっており、ここでは書ききれないため、詳細は[こちら](https://aws.amazon.com/jp/free/)のページをご覧ください。なお、AWSアカウントの登録にはクレジットカードが必要です。もちろん、無料枠内なら課金はされません。課金されたくない方は、無料枠を超えないように注意してください。

### インスタンスの再起動、起動、停止、削除
不要な課金を避けるには、[インスタンスのライフサイクル](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)  を確認し、適切にインスタンスを削除する必要があります。
![instance_lifecycle.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229633/c496c6c4-3862-e3d7-9cb0-1def3e82149d.png)

| インスタンスの状態 | 説明 | インスタンス使用の請求 |
|:--|:--|:--|
| pending | インスタンスは running 状態への移行準備中です。初めて起動する場合、または pending 状態になってから起動する場合、インスタンスは stopped 状態になります。 | 課金されない |
|  |
| running | インスタンスは実行中で、使用できる状態です。 | 請求済み付 |
|  |
| stopping | インスタンスは停止または停止休止の準備中です。 | 停止準備中の場合、課金されません　 休止準備中の場合、課金されます |
|  |
| stopped | インスタンスはシャットダウンされているため、使用できません。インスタンスはいつでも起動できます。 | 課金されない |
|  |
| shutting-down | インスタンスは削除準備中です。 | 課金されない |
|  |
| terminated | インスタンスは完全に削除されているため、起動することはできません。 | 課金されない |

# まとめ
Amazon Web Services（AWS）には非常に多くのサービスがあり、これからも増え続けていくと思います。しかし、一般的なアプリケーションに使われるサービスは限られています。ひとまず主要なサービスをおさえておき、それ以外のサービスは必要に応じて学んでいくと良いと感じました。無料利用枠を最大限に活用して、学習を進めていくことをおすすめします。

今後、EC2・RDS・S3の使い方で学んだことを備忘録としてまとめます。