【AWSの"超"基本】 AWSのサービスの概要

システム構築の手段としてかなり浸透してきているクラウドサービス。
その中で最も有名と言ってもいいのがAWSではないでしょうか。

EC2とS3以外は「なんとなく聞いたことはあるけど、どういうサービスなのかわからない」状態だった自分が、たくさんあるAWSのサービスは一体何をしてくれるのかという点について調べたので、その概要などをまとめました。

「そろそろAWSかじってみようかな」という方の参考に少しでもなれば幸いです。

*少し古い情報もあるかもしれないのであしからず...

## AWSが提供するサービスの大カテゴリ
- コンピューティング
- ストレージ・コンテンツ配信
- データベース
- ネットワーク
- 開発者用ツール
- 管理ツール
- セキュリティ＆ID
- 分析関連
- IoT関連
- モバイルサービス関連
- アプリケーションサービス関連
- エンタープライズアプリケーション関連

## コンピューティング関連のサービス

### EC2
**Amazon Elastic Compute Cloud**

- 従量課金制仮想サーバー機能
    - 起動している仮想サーバーをインスタンスと呼ぶ

### EC2 Container Servise
- Dockerを運用するためのサービス

### EC2 Container Registry
- Dockerイメージの保存と共有を行うサービス
*Dockerイメージ => アプリ実行環境をすべてパッケージングしたもの

### AWS Elastic Beanstalk
- PaaSサービスのElastic Beanstalkを利用することで、.NET/PHP/Python/Ruby/Node.jsで開発したアプリを自動でデプロイできる。

### AWS Lambda
 - クライアントからのリクエスト発生などのタイミングで任意のプログラムを動かすイベントドリブン型のサービス。常時稼働の仮想サーバーではないので運用コストも安価で、AWSのその他のサービスと組み合わせて使うことができる。

### Auto Scaling
- CPU使用率など予め決められた条件に応じてEC2インスタンスを自動的に増減させるサービス。急激な負荷増大にも柔軟に対応できる。

### Elastic Load Balancing
- トラフィックに応じて複数のEC2インスタンスで負荷を分散させる
*トラフィック 送受信されるデータ量など

## ストレージ＆コンテンツ配信関連のサービス

### Amazon S3
- 冗長化されたデータストレージサービス。ファイルサーバーのようなもの
- excelやwordなどのファイルの格納や、画像の蓄積に適している
- 耐久性と可用性が100%に限りなく近く、信頼性が高い。

### Amazon Cloud Front
- コンテンツ配信のためのネットワークサービス
  - 一言で言うとWebコンテンツ用のキャッシュサーバーを提供するサービス
- エッジロケーションという拠点に自動的に配信し、利用者から最も近いエッジロケーションから効率よくコンテンツを配信。

### Amazon EBS
- EC2もデータを保持するストレージサービス
- EC2のハードディスク、SSDのような役割。
- スナップショットというバックアップを取得できる

### Amazon Elastic File System
- EC2の共有ファイルストレージサービス。
- ファイルの追加/削除にともない、容量を自動で拡張・縮小する。

### Amazon Glacier
- バックアップやアーカイブなどの用途に適している。
- 長期保存データ用。

### Amazon Import/Export snowball
- 大容量データ転送サービス。
- データセンターの移設や災害時のデータ移行に使用

### AWS Strage Gateway
- オンプレミスとAWSを接続するストレージゲートウェイ

## データベース関連のサービス

### Amazon RDS
- リレーショナル・データベース(RDBMS)を構築・運用するサービス。
- MySQL/Oracle/SQL Server/ PostgreSQL/Amazon Auroraのデータベースエンジンが利用できる。

### AWS Database Migration Service

- 最小限の停止時間でデータベースを移行できるサービス。オンプレのDBサーバーからの以降などに使用

### AWS DynamoDB
- NoSQLデータベースを構築/運用するサービス。非構造化データを扱う。
### Amazon ElastiCache
- クラウドでメモリ内のキャッシュの管理ができるサービス
- 高速

### Amazon Redshift
- ビックデータのためのデータウエアハウス。

## ネットワーク関連のサービス

### Amazon VPC
- AWS内にプライベートネットワークを構築するためのサービス。
- ネットワークセグメントを分割し、ファイアーウォールを配置することで、セキュリティ要件に応じた制御が可能になる。

### AWS Direct Connect
- オンプレミスのネットワークとAWSのVPCネットワークを直接接続するための専用線サービス

### Amazon Route 53
- ドメイン名とIPアドレスを対応付けるDNSシステムを構築するためのサービス

## その他サービス
### 開発者用ツール

#### AWS CodeCommit 

- プライベートGitリポジトリでのコードの保存

#### AWS CodeDeploy
- 開発環境で開発したアプリを自動で実行環境に配置（デプロイ）できる

### 管理ツール

#### Amazon CloudWatch
- AWS上のサーバー/ネットワークを統合管理するためのサービス
  - グラフでのリソースの監視、アラート機能

#### Amazon CloudFormation
- AWSで構成するインフラ環境を「テンプレート」で定義し、テンプレートを基に自動で環境構築する。

#### AWS OpsWorks
- インフラプロビジョニングツールのChefをベースにした自動環境構築サービス。


## セキュリティ&ID

### IAM
- AWSでの認証機能を提供
- ユーザー認証、グループによるアクセスコントロール、既存のMicrosoftActiveDirectoryなどのアカウント管理システムと連携できる。

## AmazonInspector
- AWS上で実行されるアプリを分析し、セキュリティの問題がないかをチェック。

## AWS Key Managemant Service
- 暗号鍵の管理

## AWS CloudHSM
- 暗号鍵を専用ハードウエアでよりセキュアに管理

## 分析関連

### Amazon EMR
- 大規模データの分散処理フレームワークApache Hadoopの実行基盤

### Amazon Kinesis
- 大規模なリアルタイムストリーミングデータを容易に処理できる

### Amazon Machine Learning
- 機械学習のためのサービス

## IoT関連
### AWS IoT
- AWSとIoTデバイスとの接続、ネットワーク管理、セキュリティー、データベースとの連携などを提供するサービス。

## モバイルサービス

### Amazon API Gateway
- モバイルアプリのバックエンド機能として利用できるRESTful APIを容易に構築できる機能。

### Amazon Cognito
- 認証データの同期

### Amazon Mobile SDK
- モバイルアプリの動作するOSにあわせて、開発ツールを容易。

### AWS Device Farm
- モバイルアプリの複数のハードウェアデバイスでの動作テストを行う機能を提供。

## アプリケーションサービス関連
### Amazon SES 
- メールの送受信を行うサービス

### Amazon SNS
- プッシュ通知を行うサービス

### Amazon CloudSearch
- クラウド内のデータ検索を行うサービス

## エンタープライズアプリケーション

### Amazon WorkSpaces
- デスクトップPCをクラウド上で実行する機能。

### Amazon WorkMail
- 企業向けEメール、カレンダー機能の提供

### Amazon WorkDocs
- ファイル共有サービス