AWSの各サービスを一行で把握する

# 概要
AWSの主要な各サービスを一行でまとめてみました。全てのサービスを網羅しているわけではないです。
[AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/479739739X)の本の復習がてらです。
読んだら何のサービスか聞かれて答えられるようになるかも。

ちなみにアイコンは公式の[AWS アーキテクチャアイコン](https://aws.amazon.com/jp/architecture/icons/)から取得できます。

# ネットワークとコンテンツ配信
全ての始まりはネットワーク構築から。
**リージョン**・・・AWSがサービスを提供している国と地域のこと。
**アベイラビリティーゾーン(AZ)**・・・データセンターの集まり。リージョン内に複数のAZが含まれている。

## VPC (Virtural Private Cloud)
<img width="75" alt="Amazon-VPC.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/9473331e-5742-bef1-f00e-ec48375a055e.png"> プライベートなネットワークを構成するサービス。ゲートウェイ、サブネット、ルートテーブルなどを利用する。

## CloudFront
<img width="75" alt="Amazon-CloudFront.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/f2da20b9-602c-eb85-58dd-42fcc2bfb67a.png"> サーバのキャッシュを配信するCDN(Contents Delivery Network)サービス。

## Route 53
<img width="75" alt="Amazon-Route-53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/a34bf3be-77ce-cb9a-3cc0-5da56767f350.png"> ドメイン管理とDNSを行うサービス。ドメインの取得や更新をしたり、ドメインとIPアドレスの名前解決をしたりする。

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

## EC2 (Elastic Compute Cloud)
<img width="75" alt="Amazon-EC2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/d955fe7f-20a1-3f24-8125-b8c3fa3136c3.png"> 仮想サーバ。サーバの個数や性能を柔軟に変更できる。

## ELB (Elastic Load Balancing)
<img width="75" alt="Elastic-Load-Balancing-ELB.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/eedbd022-48ea-df02-b495-77b509119826.png"> ロードバランサ。負荷分散することで障害を防いだり、Auto Scaling機能でインスタンスの台数を増減できる。

## ECS (Elastic Container Service)
<img width="75" alt="Amazon-Elastic-Container-Service.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/797fab2f-2cf8-6962-1d6c-a70270fa0368.png"> Dockerコンテナの実行環境を提供。サーバの設定なしでDockerを利用できる。

## Lambda
<img width="75" alt="AWS-Lambda.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/3f4cc7c2-4bc4-7715-01cd-96e5742be140.png"> サーバなしでプログラム実行する環境を提供。サーバレスアーキテクチャの中核。

# 運用支援サービス
## CloudWatch
<img width="75" alt="Amazon-CloudWatch.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/ad9832aa-0f0a-4946-ae3f-1dccfc5f4584.png"> 運用監視を支援するサービス。CPU使用率などのリソース状態やログを取得できる。

## CloudTrail
<img width="75" alt="AWS-CloudTrail.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/abfd4574-eef1-0ceb-5e69-5317c8fb238c.png"> AWSマネジメントコンソールやCLIにおける操作ログを監査するサービス。誤操作や不正アクセスの早期発見・追跡などに利用する。

# ストレージサービス
ストレージの種類の違いは以下。
**ブロックストレージ**・・・データを物理的なディスクにブロック単位で管理するストレージ。
**ファイルストレージ**・・・ファイルシステムを構成してデータをファイル単位で管理するストレージ。
**オブジェクトストレージ**・・・ファイルにメタデータを追加してオブジェクトとして管理するストレージ。直接操作はできずHTTP経由で登録・削除・参照の操作が可能。更新頻度の少ないデータや大容量のコンテンツを保存する用途で使う。

## EBS (Elastic Block Store)
<img width="75" alt="Amazon-Elastic-Block-Store-EBS.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/9d80f1c2-7070-346b-d959-9d5c394e2129.png"> ブロックストレージサービス。EC2のOS領域、追加ボリューム、RDSのデータ保存領域などに使用する。

## EFS (Elastic File System)
<img width="75" alt="Amazon-Elastic-File-System_EFS.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/b962954c-7545-03a4-94c5-d829b0f72f7f.png"> ファイルストレージサービス。容量無制限で複数のEC2インスタンスから同時アクセスが可能。

## S3 (Simple Storage Service)
<img width="75" alt="Amazon-Simple-Storage-Service-S3.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/0ef59436-1f6d-64ef-bfb0-428e1afe0f31.png"> オブジェクトストレージサービス。高耐久性＆容量無制限で様々な用途に利用できる。

## Glacier
<img width="75" alt="Amazon-S3-Glacier.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/2987aa63-2455-a71d-6da1-5c71594b0442.png"> オブジェクトストレージサービス。高耐久性&安価な費用&データの取り出しに時間がかかるため、アーカイブ用途で利用される。

## Storage Geteway
<img width="75" alt="AWS-Storage-Gateway.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/44c0886b-be05-9ea7-88d3-bd5833e2f9bb.png"> オンプレミスにあるデータをクラウドへ連携するためのインターフェースを提供。独自のストレージは持たない。

# データベースサービス
データベースの種類の説明は以下。
**RDB (Relational Database)**・・・データを表形式で表す。SQLを用いて操作する。
**NoSQL**・・・SQLを使わないデータベースアーキテクチャの総称。RDBのパフォーマスやデータモデルの問題に対処するために作られた。RDSを完全に置き換えるものではなくユースケースに応じて使い分ける。

## RDS (Relational Database Service)
<img width="75" alt="Amazon-RDS.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/b9d8df53-b3b8-6e3e-6aed-f453ac60c339.png"> RDBサービス。エンジンはMySQL/MariaDB/PostgreSQL/Oracleなどがあり、クラウドの特性を生かしたAWS独自のAuroraも選択可能。

## Redshift
<img width="75" alt="Amazon-Redshift.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/9429b7c7-8f1e-1d01-0ebe-708141b66820.png"> データウェアハウス向けのRDB。列指向型データベース&分散並行実行により、素早く安価にビッグデータ解析を行える。

## DynamoDB
<img width="75" alt="Amazon-DynamoDB.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/de671867-53e3-d68d-6de7-1e70fa6a660a.png"> NoSQLデータベースサービス。Key-Value型のデータベースで拡張性が高い。

## ElasticCache
<img width="75" alt="Amazon-ElastiCache.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/051805a4-7ef7-6ce1-9a2a-4afa0fe783fb.png"> NoSQLデータベースサービス。インメモリ型のデータベースでパフォーマンスが高い。エンジンはMemcachedやRediesを選択できる。

# セキュリティとアイデンティティ
## IAM (Identity and Access Management)
<img width="75" alt="AWS-Identity-and-Access-Management_IAM.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/2d43f3e8-19bb-cab5-b0a8-4982c9f487e8.png"> AWSアカウント利用の権限を管理するサービス。IAMポリシー、IAMユーザ、IAMグループ、IAMロールなどの機能がある。

## KMS (Key Management Service)
<img width="75" alt="AWS-Key-Management-Service.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/65f4ae1a-c828-9a65-1e04-b1eb6c6f21de.png"> 鍵管理とデータ暗号化を行う鍵管理サービス。キーを階層構造にすることにより高セキュリティを保つ。

## AWS Certificate Manager
<img width="75" alt="AWS-Certificate-Manager.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/d89007e1-f226-2642-8f05-29ea3cec8293.png"> AWS自身が認証局となり、RSA鍵とサーバの証明書の作成・管理を行う。AWSのサービスから無料で利用できる。

# アプリケーションサービス
用途に合ったアプリケーションサービスを利用することで効率的にシステムを構築運用できる。
いわゆるSaaS型のサービス群。

## SQS (Simple Queue Service)
<img width="75" alt="Amazon-Simple-Queue-Service-SQS.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/8ea821cf-d52a-41f4-aa60-85c7afa8708b.png"> キューとメッセージを管理するキューイングサービス。キューを介することにより疎結合なシステム構成にできる。

## Step Function
<img width="75" alt="AWS-Step-Functions.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/cd980245-4029-7da4-5ec3-4d539e562c7d.png"> ワークフローを制御するサービス。ワークフローを可視化して編集することができる。

## SNS (Simple Notification Service)
<img width="75" alt="Amazon-Simple-Notification-Service-SNS.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/3345f95a-52da-3c94-a31c-6a75191eb57f.png"> システムイベントの通知を行うプッシュ型の通知サービス。様々な通信プロトコルに対応している。

# 開発者ツール
以下のサービス群を利用することによりCI/CD環境を構築することができる。
メリットとしては他のAWSサービスとシームレスに連携できる。

## CodeCommit
<img width="75" alt="AWS-CodeCommit.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/44d81eab-adfe-925f-34ab-d115bbc4feb5.png"> ソースコードを管理するGitリポジトリサービス。GitHub的なやつ。

## CodeBuild
<img width="75" alt="AWS-CodeBuild.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/6cd3af2c-e861-2488-5db9-f99d7aecd49d.png"> ソースコードのビルドやテスト実行するサービス。JenkinsやCircleCI的なやつ。

## CodeDeploy
<img width="75" alt="AWS-CodeDeploy.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/5cf880f9-2cfb-27cd-c61f-7603c0467186.png"> ビルドされたモジュールをデプロイするサービス。JenkinsやCircleCI的なやつ。

## CodePipeline
<img width="75" alt="AWS-CodePipeline.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/bf66bcd2-d3cf-913c-cc2b-6ea040ac63ee.png"> 上記３つのサービスを連携し、一連の開発プロセスを自動化するサービス。

## CodeStar
<img width="75" alt="AWS-CodeStar.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/8d32e57e-dbe0-b0fb-a95d-b8a136e6169a.png"> 上記4つのサービスを利用したCI/CD環境を自動構築するサービス。

# プロビジョニングサービス
インフラの環境構築作業を自動化するサービス群。

## Elastic Beanstalk
<img width="75" alt="AWS-Elastic-Beanstalk.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/485e9564-7132-7730-f318-4b70af533362.png"> インフラ構成を自動構築するサービス。インフラに詳しくなくても素早く定番のWebサーバやBatchワーカー構成などの環境を構築できる。

## OpsWorks
<img width="75" alt="AWS-OpsWorks.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/e43f053b-88b0-299b-4457-3ed245a97882.png"> Chef環境を提供し、OSより上のレイヤーの自動構築をサポートする。Ansible的なやつ。

## CloudFormation
<img width="75" alt="AWS-CloudFormation.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/189bda66-b03d-3a03-e5a0-5f630253e4f7.png"> JSONやYAMLのテンプレートを作成し、OSより下のレイヤーの自動構築をサポートする。Terraform的なやつ。

# 分析サービス
## EMR (Elastic MapReduce)
<img width="75" alt="Amazon-EMR.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/c65e707e-580d-cf23-d336-6fbe87687916.png"> 分散処理フレームワーク。スポットインスタンスと併用することで低コストが実現できる。

## Kinesis
<img width="75" alt="Amazon-Kinesis.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/b293b358-284b-4db8-edf5-3b0a152f57c6.png"> ストリーミング処理プラットフォーム。データをリアルタイムで処理・可視化・分析できる。

## Data Pipline
<img width="75" alt="AWS-Data-Pipeline.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140953/a78f0a3c-7efd-1a63-4a8a-dd8c9f2fea13.png"> データ処理やデータ移動を支援するサービス。バッチ処理のELT操作などに使う。

# おまけ：アーキテクト設計のコツ
### 信頼性・回復性
・障害をシミュレーションして復旧手順をテストする。
・障害から自動復旧できるようにする。
・スケーラブルなシステムにする。
・キャパシティ推測を不要にする。
・変更管理を自動化する。

### パフォーマンス
・リソースを適切に選択する。
・リソースを継続的にモニタリングする。
・キャッシュを活用する。

### セキュリティ
・IAMを活用して、AWS利用時のセキュリティを高める。
・セキュリティグループ、ネットワークACL、バックアップ、バージョニング、暗号化などを利用して、システムのセキュリティを高める。

### コスト
・リソースの需要を一致させる。
・適切なインスタンスを購入する。
・アーカイブストレージを活用する。

### 運用
・各種サービスを利用して運用を自動化する。(Insfrastructure as Code)
・障害への検知と対応方法を理解する。
・リリース方法の種類を理解する。

# 最後に
記事に間違いや不明な点があれば遠慮なくご指摘ください！