【2020年5月版】AWSのサービスをゆるく大体3行で

# はじめに

本記事は[AWS SAA](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)の勉強中に、「**とりあえず主要なサービスの概要ぐらい知っておいたほうがいいよな...**」と思い立ち、自分用にまとめたものです。

2/3ほど記事を作成した後に見つけてしまった(悶絶) **クラスメソッド先生の [【2020年】AWS全サービスまとめ](https://dev.classmethod.jp/cloud/aws/aws-summary-2020/) がこの上なく、コンパクトで的確にまとまっていた** ので、こちらを見たほうがいいと思います(本末転倒)

各サービスの雰囲気を掴むぐらいの温度感で見ていただければ(逃げ道)

# 対象のサービス
本記事で取り扱うサービスは2020年5月時点のAWSマネジメントコンソールの

![スクリーンショット 2020-05-16 11.16.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312085/f82d13e7-418f-05ac-7ea1-0637b03c381e.png)

ここをクリックした際に表示されるサービス群が対象です。

![スクリーンショット 2020-05-16 11.17.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312085/2c7330b9-060c-c2f3-3afa-611581d7de4d.png)

結構な頻度でレイアウトが変更されたり、サービスが追加されるので  「おい！！！このサービスが書いてねーぞ！！！」 とかは許してほしいのだ(ハム太郎)

# コンピューティング

アプリケーションを動作させるためのマシンリソースを提供するサービス群。

## EC2(イーシーツー)

EC2はElastic Compute Cloudの略。

従量課金の仮想サーバー。
実現したいワークロードに応じた必要な性能のインスタンスタイプ、ストレージを選択してすぐ起動、運用ができる。
どう運用するかは自由なのでセキュリティ対策やパッケージの管理なども自分でやる必要がある(つらい)



## Lightsail(ライトセイル)
従量課金のVPSサービス。
EC2との違いは固定リソースで他のAWSサービスを利用した拡張などに制限がある。
その分安いので個人開発用途や、そこまで可用性が求められない社内向けのシンプルなアプリケーションの運用などには便利かも。



## Lambda(ラムダ)
サーバ管理なしで好きな言語で記述したコードを実行できるサービス。
サーバ管理が不要でコードを書くだけで処理が出来る噂の**_Serverless_**(言いたいだけ)を実現できる。
AWS API Gatewayと連携してREST APIを構築したり、他AWSサービスと連携したりと多種多様な用途に利用することができる。
<font color="gray">いちばんしゅきなAWSサービス</font>

最近[RDSプロキシ](https://aws.amazon.com/jp/blogs/news/using-amazon-rds-proxy-with-aws-lambda/)という機能が提供されて、コネクション管理の問題から以前までは推奨されなかったRDBMSとの連携もやりやすくなった。

## Batch(バッチ)
AWS Lambdaで処理しきれない規模の大規模計算を処理するサービス。
処理させたいジョブを定義して、EC2からコンテナを起動して分散処理。
Lambdaの制限時間、リソース制約の範疇で対応可能な処理ならLambdaで十分。それ以上の処理をBatchで担当する。

## ElasticBeanstalk (エラスティックビーンスターク)
よくあるWebアプリケーション構成をワンセットで作って管理するサービス。
自前でゼロから環境を作ろうとするとVPCの設計やEC2起動からのパッケージインストールとかを手動でやる必要があるけど、数クリックで作ってくれるすごいやつ。
類似サービスだとherokuとかそこらへんかな？

## Serverless Application Repsitory(サーバレス アプリケーション リポジトリ)
サーバレスアーキテクチャ用のリポジトリ。
AWS SAM(※)とコードをセットで管理して、ワンクリックで環境を構築できるリポジトリを作成できる。
他所様が公開しているリポジトリを使って同じ環境も再現できる。

※ AWS ServerlessApplicationModel(サーバレスアプリケーションモデル) ... AWS CloudFormationをよりサーバレスアーキテクチャが定義しやすいようにしたやつ

## AWS Outposts (アウトポスツ)
AWSのクラウドインフラと同じシステムをオンプレで構築してくれるサービス。
クラウドはコンプライアンス的にちょっと...、クラウドだとレイテンシーがね...という企業でもクラウド版AWSと同じ感覚でオンプレに構築したAWSサービスを利用できる。
ただし、[対応しているサービスは一部](https://aws.amazon.com/jp/outposts/features/#AWS_services_on_Outposts)のみ。

## EC2 Image Builder (イーシーツーイメージビルダー)
EC2で利用するカスタムAMIの生成管理を行ってくれるサービス。
指定したベースAMIに対してインストールするパッケージなどをGUIで選択可能。
めんどくさいイメージ管理を自動化してくれたりするニクいやつ。


# ストレージ
データストレージを提供するためのサービス群。



## S3(エススリー)

S3とはSimple Storage Serviceの略

容量無制限のデータ保存ができるオブジェクト型ストレージを提供するサービス。
別のサービス拠点のストレージに分散して保存するため安心・安全。
オブジェクトのライフサイクル管理でAWS S3 Glaicierへの移動なども可能なので、「オラ、いっぺぇのデータを安全に安く保存してぇぞ！(悟空)」 という方はお世話になると思う。



## S3 Glaicier(エススリーグレイシャー)

大容量、低アクセスのデータを保存するのに適したS3ストレージ。
通常のS3よりも保存料金が安いがデータの取り出しに時間とお金がかかる。
すぐに利用しないビックデータや大量の過去ログなどの格納先として向いている。

ちなみに更に安く保存できる代わり、通常のGlacierよりもデータ取り出しに時間がかかる **_S3 Deep Archive Glacier_**(かっこいい) なるサービスもある

## EBS(イービーエス)
EBSはElasticBlockStoreの略

EC2用のネットワーク経由でマウントされるブロック型ストレージ。EC2にアタッチして利用される。
原則(※)1つのEBSを複数のEC2にはアタッチできない。(共有ストレージとしては使えない)
パソコンのSSD/HDD的な役割を提供するサービスだと思えばいいかも。

※ [最近特定のEBSタイプ限定で複数EC2にアタッチできるようになった](https://aws.amazon.com/jp/about-aws/whats-new/2020/02/ebs-multi-attach-available-provisioned-iops-ssd-volumes/)とか...

## EFS(イーエフエス)
EFSはElasticFileSystemの略

EC2用のネットワーク経由でマウントされるファイル型ストレージ。EC2にアタッチして利用される。
複数のEC2にマウントが可能であるため、**共有ストレージ**として利用することができる。
ただEBSよりやっぱり高い(大体3倍)。用途を選んで使うのが吉。

## FSx(エフエスエックス)
サードパーティのファイルシステムをフルマネージドで提供するサービス。
**Amazon FSx for Windows File Server** 、**Amazon FSx for Lustre** の2つが提供されている。
Windows向けのファイルサーバをAWSで構築する場合に利用を検討するといいかも。



## Storage Gateway(ストレージゲートウェイ)
S3、GlaicierをNFSとして扱えるようにしたりするサービス。
他にもディスクデータをまるごとS3にスナップショットとしてバックアップする機能やGlaicierをテープ媒体として利用できるようにする機能なんかもある。
「オンプレ環境でもS3にデータを保存してぇよ...」とかの場面で本サービスを使えばNFSのファイルサーバとしてS3を意識しなくてもデータを保存することができちゃう。

## Backup(バックアップ)

EBS、EFS、RDS、DynamoDB、Storage Gatewayのデータバックアップを取るサービス。
バックアップのスケジューリング、バックアップの有効期限などを設定して自動でバックアップが取得できる。
バックアップの形式はそのサービスのバックアップ形式に基づく(EBSならEBS Snapshot)
「バックアップ手動で取るのだりぃ...」兄貴の強い味方。



# データベース
データを格納するためのデータベースに関するサービス群。


## RDS(アールディーエス)

Relational Database Serviceの略

MySQL、PostgreSQL、Oracle...etcといったRDBMSをフルマネージドで利用できるサービス。
自前で構築するとめんどくさいmaster/slave構成やリードレプリカの構築を数クリックでやってくれる。
標準で自動バックアップ機能などもついて至れり尽くせり。

ちなみにMySQLとPostgreSQLは**Aurora(オーロラ)**というクラウドに最適化されたRDSの拡張版のサービスを利用することができる。

## DynamoDB(ダイナモディービー)

Amazon独自開発のNoSQLデータベースをフルマネージドで提供するサービス。
データは自動で3箇所のAZに保存されるため安心。
サービス特性を理解しないと落とし穴が多いので、利用の際はまず[Blackbelt](https://www.slideshare.net/AmazonWebServicesJapan/20170809-black-belt-dynamodb)を要一読。



## ElasticCache(エラスティックキャッシュ)

フルマネージドな高速インメモリデータベースを提供するサービス。
memcachedとredisがサポートされている。
RDSの前段に置いてクエリキャッシュとしたり、EC2上のセッションを管理するようにしてインスタンスをステートレスにしたりできまし。



## Naptune(ネプチューン)

オブジェクトの関連を直感的に表現できるグラフ型データベースをフルマネージドで管理するサービス。
一般的なグラフモデルである Property Graph と W3C の RDF、それぞれのクエリ言語である Apache TinkerPop Gremlin と SPARQL がサポートされている。(わかってない)

<font color="gray">グラフ型データベース勉強します。。。</font>

## Redshift(レッドシフト)

高可用性でペタバイト級までスケーラブル可能なデータウェアハウスをフルマネージドで提供するサービス。
SQLライクに蓄積されたデータを処理してことが可能。
Redshift Spetrum(スペクトラム)を利用することでRedshift用にデータを整形して格納しなくても、直接S3上のデータを対象にクエリを投げられるように。



## QLDB(キューエルディービー)
QLDBはQuantum Ledger DataBaseの略

フルマネージドな改ざん不可能な台帳データベースを提供するサービス。
ブロックチェーンのように分散的ではなく中央集権的に台帳(テーブル)と操作履歴(トランザクション)を管理する。
SQLライクに操作可能で、一度発行したトランザクションは絶対に改ざんできない。

## DocumentDB(ドキュメントディービー)

MongoDB互換のJSONライクなデータを格納するドキュメント型データベースを提供するフルマネージドサービス。
オンプレで動かしていたMongoDBのエコシステムを簡単に移行可能。
トランザクションのサポートはないため、トランザクションが必要な場合はRDS。

## Keyspaces(キースペース)

Apache Cassandra互換の分散型KVS NoSQLデータベースをフルマネージドで提供するサービス。
Cassandraの特徴であるRDBMSを操作するようなクエリでKVSでアクセスできるのがウリ。
オンプレで動かしているCassandraのエコシステムの移行にも。

※ 2020/4/23まではプレビュー版としてManagedCassandraService(マネージドカサンドラサービス) という名称だった



# 移行と転送

オンプレ ⇔ AWSクラウドへの移行とデータ転送などに関するサービス群。

## Migration Hub(マイグレーションハブ)

オンプレからAWSへの移行進捗状況をトータルサポートするサービス。
後述する移行関連のサービスで収集した情報を統合的に確認できるダッシュボードを提供している。
オンプレからAWSへの大規模移行などの際にはお役立ち。

## Application Discovery Service(アプリケーションディスカバリーサービス)

オンプレミスサーバの情報(負荷状況など)を収集し、移行時に最適なインスタンスタイプなどを提案してくれるサービス。
情報収集の基本パターンは対象サーバにエージェントをインストールする方法が取れる情報も多くて推奨。
VMWare経由仮想サーバであれば、エージェントなしでも収集できるが取得できる情報は少ない。



## Server Migration Service(サーバーマイグレーションサービス)

VMWareで動作しているオンプレミスサーバをEC2に簡単に移行する機能を提供するサービス。
移行条件に合致した場合、GUI上で操作が完結してEC2を起動できるAMIを生成する。

## Database Migration Service(データベースマイグレーションサービス)

オンプレ⇒RDS、RDS⇒RDSといったRDBMSの簡単なマイグレーションを提供するサービス。
移行だけの用途ではなく、レプリケーション用途としての利用も可能。
異なるRDBMS間での移行も可能。(Oracle ⇒ MySQLなど)



## Transfer for SFTP(トランスファー フォー エスエフティーピー)

S3をSFTPサーバとして扱うことができるようにするサービス。
ファイルサーバの用意がかったりーよーと言う時に使える。
ただし結構高い。

## Snowball(スノーボール)

ペタ・エクサバイトクラスのデータを物理コンピュータに転送、運搬するサービス。
通常のAWSサービスへのデータ転送はインターネット経由で低速だが、物理コンピュータを持ってきてもらってデータ転送。
その後物理コンピュータを持ち帰ってもらい高速な物理線を利用して取り込ませるというパワー系サービス。

**ちなみにいくつか種類がある。**

- 単純にデータ転送を行う通常の**Snowball(スノーボール)**
- Snowballにエッジコンピューティングなどの追加機能が付与された**Snowball Edge(スノーボール エッジ)**
- エクサバイト級のデータ転送(トラックが来るらしい)が可能な**Snowmobile(スノーモービル)**



## DataSync(データシンク)

オンプレ ↔ S3 or EFS or FSx for Windows File Server間での大容量データを高速転送するサービス。
オンプレにDataSync用のエージェントをインストールすることで利用可能。
Task(タスク)という単位でデータ転送ルールを定義して、転送を実施する。



# ネットワーキングとコンテンツ配信

AWSでのネットワーキングとコンテンツ配信に関するサービス群。



## VPC(ブイピーシー)

VPCはVirtualPrivateCloudの略

AWS上に仮想的なネットワーク空間を定義するサービス。
EC2、RDSなどのAWSリソースの紐付け、インターネットGW、NATの設定なども可能。
既存管理のネットワークとのVPN構築(AWS Site-to-Site VPN、AWS VPN CloudHub)、クライアント-VPC間のVPN構築(AWS ClientVPN)などもできる。



## CloudFront(クラウドフロント)

コンテンツ配信の高速化、オリジンサーバへの負荷軽減を実現するフルマネージドなCDNサービス。
オリジンサーバのコンテンツに特別な設定ナシで利用が可能。
S3 + CloudFrontの静的サイトホスティングは鉄板構成。



## Route53 (ルートフィフティースリー)

スケーラブルでフルマネージドなDNSネームサーバを提供するサービス。
通常のシンプルなルーティングに加えて、加重方式などの様々なルーティング方式をサポート。
レコード方式ではわかりにくいトラフィックの流れをわかりやすく可視化したビジュアルエディタなどもあり。



## API Gateway(エーピーアイゲートウェイ)

簡単にREST APIの構築・デプロイができるようにするフルマネージドなサービス。
バージョン管理、認証認可、多様なバックエンド接続先が用意されている。
Lambdaとセットで使われることが多いが、他のAWSサービス(DynamoDBなど)やオンプレサービスもバックエンドにすることができる。



## DirectConnect(ダイレクトコネクト)

オンプレ環境とAWSクラウド環境を専用線で結ぶためのサービス。
ARNパートナーという別の業者が用意した拠点を経由する。
AWS -(専用線)- ARNパートナー拠点 -(専用線 or VPN)- オンプレ みたいな構成。



## App Mesh(アップメッシュ)

追加のコードなしでマイクロサービス間の通信を可視化するサービス。
複数のマイクロサービスが連携することでデバッグが複雑化しがちだが、App Meshの導入でデバックが用意になる。
また可視化した通信はメトリクスとして取得可能。

## Cloud Map(クラウドマップ)

追加のコードなしでマイクロサービスのサービスディスカバリー(※)を提供するサービス。
マイクロサービス立ち上げ時に自動で登録され、ヘルスチェックまでやってくれる。

※ 新しく立ち上げたコンテナに対して自動でAレコードを割り当てて、ダイナミックにコンテナ間通信をできるようにする。自動検出とも呼ばれたりする。

## Global Accelerator(グローバルアクセラレータ)

エニーキャストな固定IPを取得できるサービス。
EC2、ALBに紐付けることでエニーキャストの特性上クライアントから最も近いAWSのアクセスポイントにアクセスが誘導された後、高速なAWSネットワークを経由してエンドポイントまでルーティングされるためアクセスの高速化が見込める。
発行時には2つIPが吐き出されて、１つはメイン、１つは対象のIPネットワークが死んだ時のサブとして利用することでネットワークの冗長構成を組める。



# 開発者用ツール

IDE、Gitリポジトリ、CI/CDなどの開発者が楽をするためのサービス群。



## CodeCommit(コードコミット)

フルマネージドなGitホスティングサービス。(いわゆるGithub的なやつ)
安い、大容量でプルリクエストなどの機能も備える。
何より他のCode系サービスとの連携がヒジョーに楽。

<font color="gray">でももう少し差分比較が見やすくなると嬉しいです...Amazon様...</font>



## CodeBuild(コードビルド)

独自に定義した処理を実行して最終的なコードをアウトプットするサービス。
buildspec.ymlという設定ファイルに記載された処理(ビルドやテストなど)をDockerコンテナの中で実行する。
後述のCodePipelineと組み合わせてCI/CDを実現する構成が定番。



## CodeDeploy(コードデプロイ)

コードの効率的で機械的なデプロイメントを提供するフルマネージドサービス。
appspec.ymlという設定ファイルに記載された設定に従ってコードをデプロイする。
数十台あってAutoScallingしているサーバ群にも多種多様なデプロイ方法で簡単にデプロイ可能。



## CodePipeline(コードパイプライン)

リリースまでの一連の流れを管理・自動化・可視化するフルマネージドサービス。
リリースまでのプロセスを定義し、実行のトリガー(リポジトリへのPushなど)を設定することで自動CI/CDが実現可能。
よく使われるパターンとしてコードの入手元(CodeCommit)、ビルド・テスト(CodeBuild)、デプロイ(CodeDeploy)といったCode系サービスを組み合わせて使うことが多い。

<font color="gray">もう自動デプロイがない生活には戻れねぇよぉ...(中毒者)</font>



## CodeStar(コードスター)

よくあるWebアプリケーションの開発環境、デプロイ環境、CI/CD環境をぽちぽちクリックして作るサービス。
プロジェクトテンプレート(※)に応じてEC2, ElasticBeanstalk, Lambda, Code系サービス...etcを利用した環境を提供する。

※ Ruby on Rails, Pythonサーバレス...といったよくあるアプリ構成セット。選択したテンプレートに応じて構築される環境が異なるみたい。

## Cloud9(クラウドナイン)

ブラウザで利用することができる統合開発環境。
パッケージのインストールなどを行われなくてもすぐ使える。
ただSourceTreeなどのGUIアプリケーションは動かせないためCloud9で開発を完結させたい場合は、CLIに慣れた人じゃないと厳しいかも？


## X-Ray(エックスレイ)

マイクロサービス群のアクセス分析・デバックを提供するツール。
イメージ的にはブラウザの開発者ツール的な感じで利用しているマイクロサービス(DynamoDBなど)へのアクセス速度やステータスコードなどを可視化して、ボトルネックやトラブル発生箇所の発見を速やかにしてくれる。
利用にはX-Ray SDKの導入と分析用コードの記述が必要。



# ロボット工学

ロボット開発に関するサービス群。

## RoboMaker(ロボメーカー)

ROS(RobotOperationSystem)ベースのロボットアプリケーションの開発・テスト・デプロイが行える環境を提供するサービス。

ロボット工学について無知すぎて公式ページを読んでも完全に宇宙猫状態。本当に申し訳ない。



# AWS 利用サポート(Customer Enablement)

実態を伴ったサービスではなく、AWSを利用する・したいユーザが抱える問題を解決するためのサービス群。

## Support(サポート)

AWSサービス利用中に発生したトラブルシュートの支援、アドバイス、相談などのサポート(※)をユーザの言語でAWSの公式サポートチームが対応してくれる有償サービス。
いくつかプランから選択することが可能で、ミッションクリティカルなサービスなどの対応として24時間365日対応のサポートプランも存在する。

※ AWSサービスの技術的なサポートは基本的には行っておらず、なにか技術的な支援・アドバイス・相談を受けたい場合はこのサービスへの加入が必須となる。



## IQ(アイキュー)

略称不明

AWSを利用して問題解決ができないかと考えるユーザのニーズを入力するとその問題に対処ができるAWS 認定サードパーティーのエキスパート(※)を紹介してくれるサービス。(マッチングアプリ的な感じっぽい)

※ AWSが定める条件を満たしている個人・企業がエキスパート申請をすることで認可され、IQで表示されるようになる。

## Managed Services(マネージドサービスズ)

AWSサービスだけではなく、実際の運用もAWS公式のチームがサポートするサービス。
AWSの知見を持つ人間はいないが、完全なセキュリティでAWSサービスを運用したいという大企業に適している。
ただ運用代行ではなく、実際の責任者の承認が必要な操作などを定義して管理画面から承認させないと操作ができないようにするといったフローなども提供する。
※ 正直資料が見つけられなくてちょっとピンと来ていない



# ブロックチェーン

ブロックチェーンに関するサービス群。

## Managed Blockchain(マネージドブロックチェーン)

非中央集権で改ざん不可能なブロックチェーンをフルマネージドで提供するサービス。
類似した改ざん不可能な台帳サービスにAWS QLDBがあるが、QLDBは中央集権であるため目的用途によって使い分ける。



# 衛星

衛星に関するサービス群。

## Ground Station(グラウンドステーション)

打ち上げた衛星と通信するための地上の基地局を提供するサービス。

「すまねぇ、衛生のことはさっぱりなんだ」という私でもなぜこのサービスが嬉しいのか？というのが、すんなり理解できたサービスが必要な背景からわかり易くまとまっている素晴らしい記事がこちらです。

[AWS Ground Stationについて解説する](https://qiita.com/bbq-all-stars/items/269ba98f28f047f6657f)



# 量子技術(Quantum Technologies)

量子コンピューティングに関するサービス群。

## Braket(ブラケット)

量子コンピューティングのための量子アルゴリズムをシュミレートしたりする環境をフルマネージドで提供するサービス。

量子コンピューティングについて無知すぎて公式ページを読んでも完全に宇宙猫状態。本当に申し訳ない。



# 管理とガバナンス(統制)

AWSサービスそのものの管理と統制を担当するサービス群



## Organizations(オーガナイゼーション)

複数のAWSアカウントの一元管理する機能を提供するサービス。
AWSアカウントをグループ化、グループにポリシー適用して利用機能の制限や複数AWSアカウントの請求を一括化などの複数のAWSアカウントを運用する大組織にはありがたい機能が提供されている。



## CloudWatch(クラウドウォッチ)

AWSリソース、その上で動作するアプリケーション、ログの収集、分析、モニタリングなどの機能を提供するサービス。
またモニタリングだけではなく、モニタリングしているサービスのイベントをトリガーに任意の処理を実行するような仕組みも提供する。



## Auto Scaling(オートスケーリング)

各種AWSサービスの自動スケーリングを提供するサービス。
EC2のスケールイン・アウト、DynamoDBのキャパシティ...etcをスケーリングする。
ユーザのニーズに応じて適切なスケーリング設定を行うことで、必要最低限のリソース料金でサービスを運用できる。



## CloudFormation(クラウドフォーメーション)

AWSサービスのリソース構築及び設定をテキストファイルで管理して、設定ファイルに記載されたリソースのプロビジョニングが行えるサービス。
AWSリソースでの_**Infrastructure as Code**_(言いたいだけ)を実現するサービスであり、インフラ環境構築を有識者の知見に委ねず、誰がやっても同じ環境を構築できるようになる。
ビジュアルエディタからの設定テキストファイルの出力もサポートしており、構成図の役割も果たせる。



## CloudTrail(クラウドトレイル)

AWSサービスの操作(APIコール)、AWSマネジメントコンソールへのサインイン・アウトなどのAWSに対する操作のロギングを行うサービス。
S3に保存されるログをCloudWatch Logsに連携して監視、特定の操作を行われた時にSNS経由でLambdaを呼び出したりすることも可能。
要するにAWSリソースを消した犯人を見つけたりすることができる。



## Config(コンフィグ)

作成したAWSリソースの設定に対する操作をロギングするサービス。
現在のAWSリソースの構成・設定・依存関係を可視化して検索、確認が行えるため、有事のためにとりあえず有効にしておくことが推奨されるサービス。
また、CloudTrailと同様にS3に保存されるログをCloudWatch Logと連携して、特定の構成変更などを行った場合にSNSからLambdaを呼び出してアラートを通知することも可能。

※ CloudTrailはAWSサービスそのものに対する操作、ConfigはAWSリソースの設定・構成に対する操作をロギングする。



## OpsWorks(オプスワークス)

chef, Puppetを利用したEC2上のパッケージ導入・設定などの構成管理を行えるようにするサービス。
オンプレ環境で利用していたchef, Puppetを利用した構成管理をAWS環境でも展開できる。



## Service Catalog(サービスカタログ)

組織内でのCloudFormationの設定ファイルの管理(バージョン管理など)と運用を行うサービス。
管理者(※1)が作成したCFの設定ファイルを利用者(※2)に提供する形での運用モデルが想定されている。
開発チームとインフラ管理チームの用に分業を行っている際に、インフラ管理チームがService CatalogにCloudFormationを登録することで決まった構成のみを開発チームで使えるように提供できるため、設定ミスによるコンプライアンス違反などを防止できる。

※1 ... 運用に伴うセキュリティ要件などを把握している管理者
※2 ... AWSリソースを必要とする開発メンバー



## System Manager(システムマネージャー)

クラウドサーバやオンプレサーバの運用管理(一連の作業の自動化・状態監視・情報収集・操作のロギング・環境変数の管理...etc)を行えるようにするサービス。
一言でまとめると「論理的なグループにまとめたリソース群の情報を一つのコンソールで可視化、操作を行える」<font color="gray">わからん</font>
[Blackbelt](https://www.slideshare.net/AmazonWebServicesJapan/20200212-aws-black-belt-online-seminar-aws-systems-manager) 要確認



## AppConfig(アプリコンフィグ)

上述したSystemManagerのサービスの１つ。
EC2やLambda上のアプリケーションの設定変更をSystemManager上から行うことができる。



## Trusted Advisor(トラステッドアドバイザー)

利用している全体のAWS環境を分析してコスト最適化、パフォーマンス、セキュリティ、対障害性能、サービス制限(AWSが設けているEC2などの起動台数制限など)の観点で、推奨設定などを提示してくれるサービス。
無料プランでも利用できるが機能制限がかかっており、セキュリティ項目の一部しか評価がされない。
フル機能を利用するには有料のAWS Supportのプランに加入する必要がある。



## Control Tower(コントロールタワー)

複数AWSアカウントを運用する際のベストプラクティスパターンを簡単に構築するサービス。
取りまとめの親アカウント、実際のAWSリソースを運用する子アカウントのAWSが推奨するパターンを構築する。
実際のリソース作成にはAWS Organizationsを利用してアカウントの発行などが行われる。



## LicenseManager(ライセンスマネージャー)

サーバー導入台数制限などが存在するライセンス情報の管理と、ライセンス違反を侵さないようにマシンリソースの制限(※)を導入できるサービス。
EC2起動時に予め設定しておいた制限をチェックして、上限を超える場合はインスタンスの起動が行えないようにアラームが発生する。



※ 2020年5月 時点で以下のリソースを制限可能

| マシンリソース       | 役割 |
|:-----------------|:------------------|
| vCPU           | 仮想CPU。[インスタンスタイプによって割当数が異なる。]([https://aws.amazon.com/jp/ec2/instance-types/](https://aws.amazon.com/jp/ec2/instance-types/)) |
| コア           | 実CPU。[インスタンスタイプによって割当数が異なる。]([https://aws.amazon.com/jp/ec2/physicalcores/](https://aws.amazon.com/jp/ec2/physicalcores/)) |
| ソケット       | コアとマザーボードを接続する接続口。おそらくインスタンスタイプと同じに考えておけば良さそう。 |
| インスタンス   | EC2インスタンス。ユーザによって起動された数が相当する。      |


## Well-Architected tool(ウェルアーキテクテッドツール)

AWS公式がこれまでの経験から定義されたサービス運用のベストプラクティスをWell-Architectedと呼び、ホワイトペーパーだったりチェックリストが提供されている。
Well-Architectedはその中でも、AWSのソリューションアーキテクトによるレビューをツールによってセルフレビューを実現するツール。



## Personal Health Dashboard(パーソナルヘルスダッシュボード)

自身のアカウントで運用しているAWSリソースに影響する情報(※)を通知するサービス。
何も設定しなくても利用されており、AWSマネジメントコンソールのツールバー上のベルから通知を確認できる。
未解決の問題、予定された変更、その他の通知という3パターンで通知が行われる。
※ 例: 利用中のRDSインスタンスへのメンテナンスによる停止告知など



## Chatbot (チャットボット)

AWS ChimeやSlackと連携を行う機能。
各種イベントなどをSNSを通じて通知、Slack上からAWSリソース情報にアクセスできるコマンドの実行が行える。
CloudTrailなどと連携してAWSリソースへの変更操作をSlackに通知、SlackからLambdaの実行なんてこともできる。

## Launch Wizard (ランチ ウィザード)

対話形式のウィザードに答えるだけでWell Architectedに沿った環境の構築ができるサービス。
2020年5月現在ではEC2でのMicrosoft SQL Server環境の構築 のみサポートされている。



## Compute Optimizer (コンピュートオプティマイザー)

現在利用しているEC2、AutoScalingGroupのCloudWatchメトリクスを参照して、AWSが構築した機械学習が最適なインスタンスタイプなどを提案してくれるサービス。
無料で利用ができる。



# メディアサービス

主に動画配信に関するサービス群。
当初よりAWSでも動画系のサービスは開発していたが、もともと動画関連のソフトウェア開発会社であったElemetal Technologies社を2015年9月に買収した以降に追加されたサービスが多い。



## Elastic Transcoder (エラスティックトランスコーダー)

動画ファイルを様々なデバイスに対応した動画ファイルに変換するサービス。(料金は変換対象の動画の長さによって増える従量課金)
マシンリソースを多く必要とするエンコード処理の外部切り出し、サムネイルの作成など付随する処理も同時に行うことができる。
類似サービスであるAWS Elemental Media Convertとの相違点はWebM出力、MP3オーディオのみの出力、アニメGIFの出力といった処理だが、変換フォーマットの多彩さやコストではAWS Elemental Media Convertに軍配が上がる。

## Kinesis Video Streams (キネシスビデオストリーム)

画像・動画のストリームデータをS3に取り込んで、別の分析処理に配信するためのフルマネージドサービス。
監視カメラ、スマートフォンからのストリームデータを取り込んで格納、AWS RekognitionやEC2上に構築したTensorFlowなどに低遅延で渡すことなんかができる。
画像・動画の機械学習の本質的な作業は解析処理であり、解析までに至るデータの取り込み、配信といった部分をフルマネージドで利用することで解析処理に集中することができる。



## Elemental Media Connect(エレメンタルメディアコネクト)

AWS Liveやオンプレミス機器からAWSのネットワークを通じてライブ動画の伝送を行えるサービス。
従来のライブ配信は衛星、ファイバー接続などを利用した大掛かりな機材・契約などが必要だったが、Elemental Media Connectはそういった機材なしで安定した伝送をすぐに利用できる。
また動画配信業界のスタンダードな通信プロトコル(Zixi、RIST...etc)もサポートしている。
※ ライブ配信で必ずしも必須なわけではなく、低遅延、高品質なライブ配信が要件に加わった場合に採用の余地がでてくるらしい。。。

## Elemental Media Convert(エレメンタルメディアコンバート)

動画ファイルを様々なデバイスに対応した動画ファイルに変換するサービス。(料金は変換対象の動画の長さによって増える従量課金)
古くから存在する類似サービスであるAWS Elastic Transcoderとの相違点はWebM出力、MP3オーディオのみの出力、アニメGIFの出力ができないという点だが、それ以外の点はAWS Elemental Media Convertに軍配が上がる。(コスト、変換フォーマットの多彩さなどもAWS Elemental Media Convertが強い)

※ AWS公式の動きとしても、AWS Elemental Media ConvertにAWS Elastic Transcoderにしかなかった機能の追加(動画の回転など)も行っているため、AWS Elemental Media Convertを推していきたいっぽい？



## Elemental Media Live(エレメンタルメディアライブ)

ライブ動画ストリームのエンコードサービス。
ストリームデータを配信用のファイルサイズの小さいフォーマットにリアルタイムでエンコードしてくれる。



## Elemental Media Package(エレメンタルメディアパッケージ)

単一のビデオ入力からマルチデバイス向けの様々な動画を作成することができるサービス。
他にもDRMを利用したリッチコンテンツ保護機能や、不特定多数に配信する際に役立つ機能が提供されている。
AWS Elemental Media Live、AWS CloudFrontと連携することでライブ動画の処理、グローバル配信が可能になる。



## Elemental Media Store(エレメンタルメディアストア)

ライブ、VOD動画を保存するサービス。
バックエンドにはAWS S3が利用されており、ライブ動画などの高頻度での書き込みなどを考慮したチューニングがされており、自身で複雑なチューニングを行う必要がない。
ライブ配信のアーカイブ保存、アーカイブからAWS CloudFrontに接続して見逃し配信などに利用できる。

## Elemental Media Trailor(エレメンタルメディアトレイラー)

動画配信時に広告をサーバ側で挿入して収益化をサポートするサービス。
どれだけ広告が再生されたか、どんなメディア(iOS、Android...etc)で再生されたか...といった情報のレポートを自動作成してくれる。
サーバ側での挿入になるため、Adブロッカーなどにも邪魔されない。



## Elemental Appliances & Software(エレメンタル アプライアンス アンド ソフトウェア)

AWSが提供するMedia系サービスの一部をオンプレミス環境でも利用できるように提供するサービス群。
以下のいくつかのサービスに分けられている。

| サービス                                          | 詳細                                                         |
| ------------------------------------------------- | ------------------------------------------------------------ |
| AWS Elemental Live(エレメンタルライブ)            | ライブエンコーダー。オンプレミス版のAWS Elemental Media Live的なもの。 |
| AWS Elemental Server(エレメンタルサーバー)        | ファイルベースのエンコーダー。オンプレミス版のAWS Elemental Media Convert的なもの。 |
| AWS Elemental Delta(エレメンタルデルタ)           | ライブ、VODそれぞれのパッケージング。オンプレミス版の AWS Elemental Media Package的なもの。 |
| AWS Elemental Conductor(エレメンタルコンダクター) | AWS Elemental Liveのオンプレミス動画ネットワーク管理システム。スケーリングした際などのクラスタ管理、設定、モニタリングが行える。 |



# 機械学習(Machine Learning)

機械学習に関連するサービス群。
提供されるサービスはゼロから機械学習を始めるサービスと、構築・学習済みのサービスが存在する。
前者は機械学習の知識が必要となるが、後者は全く機械学習について知らなくても恩恵を教授できる。



## SageMaker(セージメーカー)

ゼロから機械学習モデル(ML)を構築・トレーニング・デプロイの全てに至るまでに必要な機能・コンポーネントを提供するサービス。
フルマネージドで機械学習に必要なリソースが提供されるため、マシンリソースの用意が不要。
SageMakerの中でも用途・機能別にコンポーネントが切り分けられている。

※ 機械学習についての事前知識・理解がないとサービスの利用は困難。
※ 以前はAWS Machine Lerningというサービスが近い役割を担っていたが、新しい顧客はSageMakerの利用を推奨され、AWS Machine Lerningは利用できなくなった。



## CodeGuru(コードグル)

AWSによってトレーニング済の機械学習を利用した自動コードレビューを提供するサービス。
ホスティングサービス(※1)で管理されているコード(※2)のコードをレビューして、結果をPullRequestとして通知するCodeGuru Reviewer(コードグル レビュアー)と実行環境にAgentを仕込んでCPU使用率や実行時の遅延などのから修正方法を提案してくれるCodeGuru Profiler(コードグルプロファイラー)の２つサービスが提供される。

※1 2020年5月 現在で対応しているのはGithubとAWS CodeCommit
※2 2020年5月 現在で対応している言語はJavaのみ



## Comprehend(コンプリヘンド)

AWSによってトレーニング済の機械学習を利用した自然言語処理サービス。
フルマネージドで適当に渡したテキストから場所、人物、キーフレーズ、感情(肯定的/否定的/中立/混在)などが検出できる。
5000byteまでであれば、お試しで[マネジメントコンソールからの利用](https://ap-northeast-1.console.aws.amazon.com/comprehend/v2/home?region=ap-northeast-1#home)も可能。

※ サポートされている言語は[こちら](https://aws.amazon.com/jp/comprehend/features/#Multiple_language_support)
2020年5月現在は日本語はサポートされていないっぽい。。。

## Forecast(フォアキャスト)

AWSによってトレーニング済の機械学習を利用した過去の時系列データと関連データから未来を予測してくれるサービス。
過去の温度がまとまった時系列のCSVデータとアイスの過去の売上データなどを食わせて、未来のアイスの売上を予測したりできるらしい。(やってない)



## Fraud Detector(ファウルドデテクター)

AWSによってトレーニング済の機械学習を利用してオンライン上の支払い詐欺、偽アカウント作成といった不正な操作をの検知をするサービス。
※ 2020年5月現在はプレビュー版。



## Kendra(ケンドラ)

AWSによってトレーニング済の機械学習を利用した自然言語による検索サービス。
人が人に場所を聞くように検索して、様々なデータ・リソース(※1)から適切な回答を探して返却する。
またユーザ操作(いいね、検索結果のクリック)によって学習を続けてより、精度を向上していく。

※ 2020年5月現在の対応言語は英語のみ。
※1 予め用意されたデータ・リソースから選択可能。(S3、SMB、各種クラウドストレージ...etc)
     またデータ・リソースからのインデックスサイクルも自由自在に設定可能



## Lex(レックス)

Alexaと同じ機械学習技術を利用して自然言語でチャットボットが構築できるサービス。
既存のアプリケーションに音声入力でのオペレーションなんかも追加できる。
実際に処理を行うには、Lambdaだったりとの連携が必要。

※ 2020年5月現在の対応言語は英語のみ。

## Personalize(パーソナライズ)

Amazon.comと同様の機械学習技術を利用したレコメンデーションサービス(※)。
ユーザ宛に「この商品を購入した方はこんな商品もチェックしてます」といったアイテムリストを提供する。

※ 顧客の好みを分析して、顧客ごとに適すると思われる情報を提供するサービス



## Polly(ポリー)

AWSによってトレーニング済の機械学習を利用したテキスト読み上げサービス。
機械学習が常に学習を継続することで、非常に滑らかな読み上げを提供する。
話し方はユーザが独自にカスタマイズすることも可能。(抑揚、声など様々なカスタマイズが可能)

※ [実際にマネジメントコンソールからお試し可能](https://ap-northeast-1.console.aws.amazon.com/polly/home/SynthesizeSpeech)



## Rekognition(リコグニション)

AWSによってトレーニング済の機械学習を利用した画像、動画の分析サービス。
食わせた画像、動画の顔ベースのユーザ認証、感情分析、物体検出、有名人の認識、テキスト検出(※1)、シーン検出、安全ではないコンテンツの検出(アダルト、暴力)、ラベル付けなどが可能になる。

※1 2020年5月時点では英語のみ

## Textract(テキストラクト)

AWSが独自にトレーニングさせた機械学習を利用して電子ファイル(※1)上のテキストを認識(※2)して、テキストデータとして抽出する。
単純にプレーンのテキストの抽出だけではなく、フォームやテーブルの構造データも認識する。(フォームならキーバリューで抽出、テーブル構造を維持して抽出)
[マネジメントコンソールからお試しで利用可能](https://console.aws.amazon.com/textract/home?region=us-east-1#/demo)。

※1 2020年5月時点でpdf, png, jpegがサポートされている
※2 2020年5月時点では英語とラテン文字のみがサポートされている

## Transcribe(トランスクライブ)

AWSが独自にトレーニングさせた機械学習を利用して音声をテキストに変換出力するサービス。
保存された音声ファイル変換(※1)とリアルタイム変換(※2)がある。
カスタム語彙(一般的ではない業界用語などを登録することで変換精度を向上)、話者識別(複数人が会話する音声などで話し手を識別)といった機能も利用することが可能。

※1 対応言語は[こちら](https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html)。(日本語対応済)
※2 対応言語は[こちら](https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html)。(日本語未対応)

## Translate(トランスレート)

AWSが独自にトレーニングさせた機械学習を利用して言語翻訳(※1)を行うサービス。
カスタム語彙を利用して一般的ではない業界用語などの翻訳も行える。
[マネジメントコンソールからお試し](https://console.aws.amazon.com/translate/home?region=us-east-1#translation)できる。

※1 対応言語は[こちら](https://docs.aws.amazon.com/translate/latest/dg/what-is.html)。(日本語対応済)

## Deep Lens(ディープレンズ)

[Amazonが開発した深層学習対応のプログラミングでカスタマイズ可能なビデオカメラ]([https://www.amazon.co.jp/Amazon-AMDC-2-%E7%AC%AC%E4%BA%8C%E4%B8%96%E4%BB%A3-DeepLens-%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%9F%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%E3%83%93%E3%83%87%E3%82%AA%E3%82%AB%E3%83%A1%E3%83%A9/dp/B07KYM74RJ/ref=sr_1_5?adgrpid=52828602665&gclid=Cj0KCQjw9ZzzBRCKARIsANwXaeJTQhiWYBVwUn7r338KAOBr6mB-0aHbHyPEgjmv6U3_bR_opHmII_MaAhZBEALw_wcB&hvadid=259434427160&hvdev=c&hvlocphy=1009280&hvnetw=g&hvqmt=b&hvrand=18116112651750668086&hvtargid=aud-759377471933%3Akwd-393778039128&hydadcr=1402_10209622&jp-ad-ap=0&keywords=deeplens&qid=1583845211&sr=8-5](https://www.amazon.co.jp/Amazon-AMDC-2-第二世代-DeepLens-深層学習に対応した開発者向けビデオカメラ/dp/B07KYM74RJ/ref=sr_1_5?adgrpid=52828602665&gclid=Cj0KCQjw9ZzzBRCKARIsANwXaeJTQhiWYBVwUn7r338KAOBr6mB-0aHbHyPEgjmv6U3_bR_opHmII_MaAhZBEALw_wcB&hvadid=259434427160&hvdev=c&hvlocphy=1009280&hvnetw=g&hvqmt=b&hvrand=18116112651750668086&hvtargid=aud-759377471933%3Akwd-393778039128&hydadcr=1402_10209622&jp-ad-ap=0&keywords=deeplens&qid=1583845211&sr=8-5))と利用するためのサービス。
AWS Rekognitionを利用した画像分析、何らかの動作をトリガーにAWS Lambdaを実行...といった簡単にカスタマイズを行うこともできる。
更にはSageMakerを利用して独自の学習モデルを利用した画像分析なども可能らしい。



## Deep Racer(ディープレーサー)

機械学習モデルで動作する1/18のレーシングマシンを通して、機械学習を学ぶサービス。
3Dレーシングを強化学習をさせて実機マシンにモデルをデプロイして、レーシングを競う。



## Augmented AI(オージメンテッド エーアイー)

機械学習の結果が正しいかを判断するワークフローを構築することができるサービス。
機械学習を利用した自動化を目指しても、学習した結果が内容が正しいか？という作業は人間の目によって行う必要があり、通常であれば結果を効率的にレビューできる仕組みの構築が必要になる。
本サービスを利用することで自前でレビューのワークフローを構築しなくても、AWS内で「レビュー作業及び結果のフィードバック」までを完結させること可能。

## Deep Composer(ディープ コンポーザー)

[Amazonが開発した機械学習を搭載したミュージックキーボード](https://www.amazon.com/dp/B07YGZ4V5B/)から入力したメロディを機械学習がオリジナルの音楽を作成してくれるサービス。
AWS Deep Racerと同様に機械学習を学ぶためのサービスらしい。



# 分析

データを分析するためのサービス群。
分析するデータを貯めるためのサービスなども含まれる。

## Athena(アテナ)

AWS S3上のデータに対して、SQLを利用してデータ分析が行えるサービス。
これまでのデータ分析はAWS RedshiftなどにデータをETLしていたが、直接S3のオブジェクトからデータ分析が行えるようになった。
基本的に分析できるデータはcsv, jsonなどの定形データであるが、csvのヘッダー列などが含まれる非整形データでもAWS Glueを連携することで分析可能。



## EMR(イーエムアール)

Elastic MapReduce(※)の略
MapReduce(マップリデュース) ... Googleが開発した大規模データを分散して処理するためのフレームワーク。

AWS EC2、AWS S3などを利用してAWSリソース上でHadoop環境を構築できるサービス。
通常のHadoop環境の構築よりも簡単に構築することができるらしい...。

## Cloud Search(クラウドサーチ)

全文検索をフルマネージドで提供するサービス。
Apache Solr(※)をベースとして構築されている。
AWS SDK経由でアプリに組み込むことで、検索対象としたいデータをJSONやCSVとして整形してCloudSearchにアップロードして解析 > リアルタイムに検索インデックスを生成という手順を踏むことで全文検索機能を提供することが可能。

※ オープンソースの全文検索サーバ。全文検索ライブラリであるApache Lucene(ルシーン)を利用して実装されている

## Elasticsearch Service(エラスティックサーチ サービス)

略称 AWS ES(イーエス)

Elasticsearch(※)環境をフルマネージドで構築することができるサービス。
Elasticsearchを普通に利用しようとすると、EC2を起動して手動でインストール・設定...などが必要だが楽ちん導入ができる。

※ Elastic社が開発したApache Lucene(ルシーン)を利用して開発された分散型全文検索エンジンサーバ

## kinesis(キネシス)

ストリームデータ(※)を収集・保存・処理・分析といった処理を行う機能をフルマネージドで提供するサービス。
4つのサービス群から構築されており、目的用途に分けてサービスを利用する。
ストリームデータを引き渡すシャードを増やすことでスケールできる。

※ アクセスログ、センサーなどのIoT機器のセンサーデータ、株取引情報などの継続的に発生し、タイムスタンプを含むデータ



| サービス                                               | 詳細                                                         |
| ------------------------------------------------------ | ------------------------------------------------------------ |
| Kinesis Data Streams(キネシス データストリームス)      | ストリームデータを取り込んでAWS EC2やAWS Lambdaなど渡して何らかの処理を行う。データを受け取って即時処理が行えるためリアルタイム性が求められる処理に適している。 |
| Kinesis Data Firehose(キネシス データ ファイアホース)  | ストリームデータをAWS S3、AWS Redshift、AWS ESなどにデータを配信する。取り込みインターバルが最低60秒。即時処理を行いたい場合はData Streamsを利用する。 |
| Kinesis Data Analytics(キネシス データ アナリティクス) | ストリームデータをリアルタイムでSQLを利用して分析する        |
| Kinesis Video Streams(キネシス ビデオ ストリーム)      | Kinesis Video Streamsの項目を参照                            |



## QuickSight(クイックサイト)

AWSが提供するブラウザから利用できるフルマネージドなBIツール。
AWS Athenaなどから解析用のデータを渡すことができる。
AWS開発者が利用するBIとしては利便性が高い。

## Data Pipeline(データパイプライン)

オンプレミス、AWS EC2, S3, RDS, Redshiftで相互にデータをETLして受け渡しするサービス。
ユースケースとしてS3に格納されるファイルを30分に一度にRedshiftにETLして渡す...といったことが実現できる。
転送失敗時のリトライや実行結果のログ収集などの機能も提供しているため自前で転送処理を実現するよりも楽ちん。



## Data Exchange(データエクスチェンジ)

サードパーティーデータ(市場データ、地理情報、金融...etc)を検索・購入することができるサービス。
サードパーティー自体はData Exchangeが認定しているデータブロバイダー認定を持つユーザのみが公開することができる。
購入したデータはS3に保存可能。そのままAWS Athenaを利用して分析なども可能。



## Glue(グルー)

フルマネージドで利用できるETLを提供するサービス。
クローラーがデータソース(AWS S3, RDS ... etc)から自動的にデータカタログを作成、ETLジョブを実行という一連の流れを他のAWSリソースを連携して行う。
要するにデータソースからAWS Athena、AWS Redshift Spectrumで利用するデータを整形(ETL)するサービス。

※ AWS LambdaとAWS CloudWatchEventでイベント定義してETLできんじゃねーのかよ？
と思っていたが、AWS公式が推奨する使い分けは[こう](https://www.slideshare.net/AmazonWebServicesJapan/20190806-aws-black-belt-online-seminar-aws-glue/44)らしい。

## Lake Formation(レイクフォーメーション)

様々なタイプの分析を実行できるデータの貯蔵庫ことデータレイクをスピード構築できるサービス。
AWS S3やAWS RDSなどのデータソースを登録して裏側ではGlueが動いて、AWS AthenaやAWS Redshiftから分析などが可能なデータレイクを作る。
同じようにいい感じのデータレイクを作るには数ヶ月かかるらしいが、いかんせん実際に構築したことがないのでサービスのメリットがピンと来ていない...。

## MSK(エムエスケー)

Managed Streaming for Apache Kafka(マネージド ストリーミング フォー アパッチカフカ)の略

Apache Kafka(※)をフルマネージドで利用することができるサービス。
元々オンプレミスでApache Kafkaを利用していた場合などはスムーズに移行ができる。

※ オープンソースのストリームデータ処理用の分散型メッセージキュー。(AWS Kinesis的なやつ)
   AWS Kinesisとの使い分けは[こう](https://www.slideshare.net/AmazonWebServicesJapan/20191120-aws-black-belt-online-seminar-amazon-managed-streaming-for-apache-kafka-amazon-msk/62)らしい。



# セキュリティ、ID、およびコンプライアンス

AWSサービスをセキュアに利用するためのサービス群。



## IAM(アイアム)

Identity and Access Management(アイデンティティー アンド アクセスマネジメント)の略

AWSリソースに対するアクセス制限を提供するサービス。
AWS利用時のベストプラクティスである「AWSリソースを利用するユーザ、リソースに対して必要最低限のアクセス制限を行う」の大部分はIAMの機能によって実現される。
大体どのAWSサービスを使っていても意識することになる重要なサービスなので、[Blackbelt](https://www.slideshare.net/AmazonWebServicesJapan/20190129-aws-black-belt-online-seminar-aws-identity-and-access-management-iam-part1)を読もう(提案)



## RAM(アールエーエム)

Resource Access Manager(リソースアクセスマネージャー)の略

自身で作成したAWSリソースを異なるAWSアカウント、AWS Organizations間で共有できるようにするサービス。
わざわざ共有したい外部の組織向けにIAMユーザ作成・設定を行わなくても、共有先はあたかも自分のアカウントが作成したリソースのように共有されたリソースを利用することができる。
2020年5月現在ではまだ[一部サービスしか対応](https://docs.aws.amazon.com/ram/latest/userguide/shareable.html)していない。



## Cognito(コグニート)

モバイル・Webアプリケーションでのユーザ作成・認証・データ同期・管理機能をフルマネージドで提供するサービス。(**Firebase Authentication** 的なサービス)
よく利用するユーザ登録・変更・管理機能といった一般的な機能からGoogle、Facebookなどのブロバイダと連携してソーシャルログインの機能などもコーディングなしで実現できる。
ログイン時にIAMロールのクレデンシャルをクライアントに提供して、特定のユーザがログインした場合のみ特定のAWSリソースにアクセスさせることも可能。

複雑な印象を受けがちなサービスだけど、活用できるとクッソめんどくさいユーザ認証周りの開発/運用負荷を下げられる素敵なサービス。
<font color="gray">Blackbelt、読もう！(提案)</font>



## Secrets Manager(シークレットマネージャー)

AWSリソースへのアクセスキー、DBのID/パスワードといったセキュアな情報を管理・取得できるサービス。
Secrets ManegerからAWSリソースへのアクセスキー、DBのID/パスワードといった情報を取得することで、それらの情報をハードコーディング -> Githubなどに公開して不正利用・アクセスといったインシデントを防止できる。

類似サービスとしてAWS Systems ManegerのParameter Storeもある。
内容を比較してくださっていた方の記事がわかりやすかったです。

[AWSのParameter StoreとSecrets Manager、結局どちらを使えばいいのか？比較](https://qiita.com/tomoya_oka/items/a3dd44879eea0d1e3ef5)

## Guard Duty(ガードデューティー)

AWSリソースの不正利用の自動検知を行ってくれるサービス。
CloudTrailのログをAWSが独自に学習させた機械学習モデルを利用したチェックをかけて、セキュリティ的によろしくない操作(※)などを驚異度別に通知(AWS SNS利用)してくれる。
意図せず行っているセキュリティリスクのある運用なども検知してくれて、利用料自体も大したことないので、とりあえず有効にするのが推奨っぽい。

※ 例：ルートアカウントでのリソース操作、不自然なEC2の乱立(不正に入手されたクレデンシャルを利用したEC2を利用しての仮想通貨マイニングなどの検知) ... etc



## Inspector(インスペクター)

運用しているAWS EC2インスタンスへの脆弱性診断を提供するサービス。
EC2に専用のエージェントをインストールして、[CVE](https://www.nic.ad.jp/ja/basics/terms/cve.html)、[CIS](https://www.manageengine.jp/solutions/cis_controls/lp/)、セキュリティのベストプラクティス...etcの観点で診断して改善案を提供してくれる。



## Macie(メイシー)

AWS S3に保存されている機密データをAWSが独自に訓練させた機械学習モデルを利用して自動的に検出・分類・保護・監視するサービス。
監視はAWS CloudTrailを利用して検出した機密情報に対して普段アクセスが行わないユーザが高頻度でアクセスを行っている...などの疑わしい操作を検出して、通知してくれる。
なお2020年5月現在では対応言語は英語のみで、日本語の文書などから個人情報などの機密データを自動検出・分類・保護・監視は行うことができないみたい。



## Single Sign-On(シングル・サインオン)

SSOと略される

ActiveDirectory(AWS Directory Service)の既存のID・PASSで別のAWSアカウントや[SAML](https://www.cybernet.co.jp/onelogin/function/saml.html)に対応したクラウドサービス(Box, Slack, Office365...etc)へのシングルサインオン機能を提供するサービス。
[対応状況](https://aws.amazon.com/jp/about-aws/global-infrastructure/regional-product-services/)を確認すると2020年5月現在はまだ東京リージョンでサポートはされていないみたい。



## Certificate Manager(サーティフィケート マネージャー)

ACMと略される(AWS Certificate Manager)

AWSリソースで利用するSSL/TLS証明書の発行・管理を行う。
AWS ELB, AWS CloudFront, AWS API GatewayはACMに統合されており、無料でドメイン認証(DV)証明書を発行・利用することができる。
手動での証明書発行、更新(※)、デプロイ関連のトラブルを防止することができる。

※ ACMが発行した証明書は自動更新に対応しているが、別の機関で発行してインポートした証明書は自動更新に対応していないので注意。



## KMS(ケーエムエス)

Key Management Service(キーマネージメントサービス)の略

フルマネージドな暗号鍵の作成、管理を行うサービス。
様々なAWSサービスと統合されており、ユーザが管理する暗号鍵でのデータ暗号化を簡単に実現する。



## CloudHSM(クラウドエッチエムエス)

HMSは[HardwereSecurityModule](https://www.cyberware.co.jp/2018/03/26/hsm/)(ハードウェアセキュリティモジュール)の略

フルマネージドなHSMを提供するサービス。
期待される役割としてはKMSと同じ暗号鍵の管理であるが、物理的に遮断された領域で暗号鍵を保存するためより厳密な管理となる。(KMSは安全性は保証されているがマルチテナント方式での鍵管理)
業務・契約内容によってマルチテナント方式であるAWS KMSではコンプライアンスを遵守できない場合に利用するのが推奨されている。



## Directory Service(ディレクトリ サービス)

色々なディレクトリサービスを提供するサービス。
サポートされているディレクトリサービスは、以下表を参照。



| サービス名                                           | 詳細                                                         |
| ---------------------------------------------------- | ------------------------------------------------------------ |
| Amazon Cloud Directory(アマゾンディレクトリサービス) | クラウドネイティブかつフルマネージドなディレクトリサービス。 |
| Cognito Your User Pool(コグニートユアユーザプール)   | AWS Cognitoを参照。                                          |
| Microsoft AD(マイクロソフト アクティブディレクトリ)  | AWSリソースでマネージドなActiveDirectory環境を提供するサービス。 |
| Simple AD(シンプルアクティブディレクトリ)            | AWSリソースでマネージドなSamba4搭載のActiveDirectory互換の環境を提供するサービス。 |
| AD Connector(アクティブディレクトリコネクター)       | オンプレミスのActiveDirectoryサーバと連携するサービス。      |



## WAF(ワフ)

 WAFはWebApplicationFirewall(ウェブアプリケーションファイアウォールの略)

フルマネージドなWAFを提供するサービス。
適用対象はAWS CloudFront or AWS ALBの2サービスのみ。
L7層(Webアプリ)に対しての攻撃(XSS、SQLインジェクション...etc)をサーバ運用なしで簡単なルール定義を行うだけで実装できる。



## Shield(シールド)

AWSリソースをDDoS攻撃から守る盾(シールド)を提供するサービス。
Shieldには2種類存在し、Standard(スタンダード)は無料で外部に公開されるAWSリソースに対して常時有効になっており、よくあるL3/L4の攻撃(SYN/UDPフラッド、リフレクション..etc)を自動検知して防ぐ。(L7層へのDDoS攻撃は非対応。後述するAdvancedを利用するか、自主的にWAFを入れる必要あり)
Advanced(アドバンスド)は有料だがELB、CloudFront、Route53に対して更に手厚いセキュリティサポートがついてくる。(AWSが擁するDDoS攻撃専門チームのサポート、L7層のサポート...etc)



## Firewall Manager(ファイアウォール マネージャー)

AWS Organizationsで管理される複数のAWSアカウントを跨いでAWS WAFルールを設定・管理を行えるようにするサービス。
組織間でAWS WAFを一括で指定したい場合に有用。

 

##Artifact(アーティファクト) 

AWSサービスに対してのコンプライアンス監査結果のレポートをダウンロードできるサービス。
ISO、PCIなどの第三者機関によるAWSへの監査結果を誰でも入手できる。
これからAWSに移行したいが、最終決定権を持つ上司や役員を説得する材料として使えそう。



## Security Hub(セキュリティハブ)

CIS AWS Foundation Benchmark(※)に基づいた自動チェック機能の提供と、他のセキュリティ関連のAWSサービスとサードパーティー製のアラートの一元管理機能を提供するサービス。
後者のサービスで対応しているAWSサービスはAWS Guad Duty, AWS Inspecter, AWS Macie。これらのアラートを検出して一元管理する。(サードパーティーアプリの対応状況は[こちら](https://aws.amazon.com/jp/security-hub/partners/))
複数のセキュリティサービスのアラートを集約できるため、管理が用意になるのが嬉しいところ。

※ セキュリティ促進を目的とする非営利団体CISが策定したAWSを利用する上で必要となるセキュリティ設定のベンチマーク



## Detective(ディテクティブ) 

各種AWSリソースのログデータをAWSがトレーニングした機械学習モデル、統計分析...etcで潜在的なセキュリティ問題、不審な操作の根本原因を分析・調査してくれるサービス。
AWS VPC Flow Logs, AWS CloudTrail, AWS GuardDuty, AWS Securtity Hubなどのデータソースから分析を行う。



# モバイル

モバイルアプリ開発に関するサービス群。



##  Amplify(エンプリファイ)

モバイル・ウェブアプリケーションの開発を効率化・高速化するためのツール群を提供するサービス。
提供するサービスは大きく分けて モバイル・ウェブアプリケーション開発でよく使われるAWSリソース(※)に簡単にアクセスするためのライブラリ・AWSリソースを構築するためのCLI・よく使うUIコンポーネント の3つ。



※ 以下機能に対応するAWSサービスに対して簡単にアクセスできる

| 機能                   | 対応サービス                 |
| ---------------------- | ---------------------------- |
| 認証                   | AWS Cognito                  |
| 分析                   | AWS Pinpoint                 |
| サーバ処理(REST API)   | AWS Lambda + AWS API Gateway |
| データ同期             | AWS AppSync                  |
| リソースのホスティング | AWS S3 + AWS CloudFront      |
| ストレージ             | AWS S3                       |



##Mobile Hub(モバイルハブ)

AWS Amplifyの前身サービス。
新しく利用を始めようとすると、AWS Amplifyに誘導される。


##App Sync(アップシンク) 

フルマネージドなGraphQL(※)を利用したリアルタイムでのデータ同期サービス。
オンライン・オフラインでも利用することが可能。
対応するフィールドの取得元(データソース)としてAWS DynamoDB、AWS Lambda....etcが利用できる。

※ Facebook社によって開発されたREST APIの欠点を解決するために生まれたAPI規格。
   エンドポイント管理の複雑さ、目的以外の余計なデータがついてくることがある...といった問題を解決する。
   またデータ更新時にリアルタイム同期のサポートする。

## Device Farm(デバイスファーム)

フルマネージドでモバイルデバイスの実機を利用したテスト環境(自動テスト、リモートアクセス、リモートデバック)を提供するサービス。
最新の端末から、数年前の端末まで利用可能(※1)。しかもセキュリティを考慮して、デバイスの専有契約も可能。
必要に応じて必要な端末を従量課金(※2)で使用できるため、わざわざ実機端末を買わなくても特定の端末でしか再現しない問題などの検証にも活用ができそう。



※1 利用可能な端末リスト > http://awsdevicefarm.info/
※2 2020年5月時点で月1000分まで無料で利用可能、ただし専有契約の場合は月々固定の支払いが発生する。



# 拡張現実 (AR) とバーチャルリアリティ (VR)

AR、VR開発に関するサービス群。



## Sumerian(シュメール)

Webブラウザ上でAR、VR、MRコンテンツの開発が行えるフルマネージドな環境を提供するサービス。
WebGL(※)が利用できるブラウザであれば、利用可能。

※ ウェブブラウザで3Dグラフィックを表示させるための標準仕様。大体の主要ブラウザでは対応している。



# アプリケーション統合

複数のサービスを疎結合に統合するためのサービス群。



##  Step Function(ステップ ファンクション)

フルマネージドでいくつかの要素に細分化できる一連の処理をワークフローとして管理することができるサービス。
最も細かい単位をステートと呼び、その単位で各種処理(AWS Lambda, ECS/Fargate, DynamoDB...etc)を呼び出すことができる。

- ステート1:データの取得(DynamoDB) 
- ステート2 : データの加工(Lambda)
- ステート3 : データの保存(DynamoDB) 

みたいなマイクロサービスの組み合わせで一連の処理を構築することが可能。

AWS LambdaやAWS Batchでワークフローを完結させればいいのでは？と思われるが、各マイクロサービス間の連携用のコードの記述が不要であること、各ステートの追跡・監視・リトライ・ロールバックなどの機能が提供されているため、エラー・デバック対応が簡単なことなどを考慮した上で処理の複雑度、規模感などで使い分けができる。

##  Event Bridge(イベントブリッジ)

AWSリソース、Event Bridgeに対応したSaaS、独自のサービスを連携してAWS Cloud Watch Eventsのよう(※)にイベント駆動の仕組みを提供するサービス。
自前でイベント駆動に関するコードを実装せず、他サービスを呼び出し、連携することが容易になる。

※ というかAWS Event Bridge自体がAWS CloudWatch Eventsから独立したサービス。内部のイベント通知の仕組みも同じAPIを利用している。
AWSリソース以外のイベントも集約してイベント駆動として利用できるように機能追加されて独立した。
そのうち元のAWS CloudWatch EventsもEvent Bridgeとして完全独立する予定らしい。



## MQ(エムキュー)

MQはMesseageQueue(メッセージキュー)の略

Apache ActiveMQ(※)向けのフルマネージドなメッセージキューを提供するサービス。
ActiveMQと互換性が存在するため、オンプレミスではActiveMQを利用していたエコシステムをAWSにマイグレーションする際にはコードの変更を伴わずに行うことができる。
類似サービスにAWS SQSが存在するが、新規開発時にはAWS SQS、既存のActiveMQのエコシステムをマイグレーションするときはAWS MQといった使い分けが推奨されている。

※ オープンソースのメッセージ関連を処理するミドルウェア。



## SNS(エスエヌエス)

SNSはSImple Notification Service(シンプルノーティフィケーションサービス)の略

フルマネージドなPush型のメッセージ配信サービス。
Topicという単位でメッセージ配信管理が行われ、パブリッシャー(配信者)がTopicに対してメッセージの送信を行うと、対象のTopicを購読している全サブスクライバー(購読者)に対してパブリッシャーが送信したメッセージを配信する。
サポートされているサブスクライバーは2020年5月現在 HTTP/S、EMail、Email-JSON、AWS SQS、AWS Lambda、SMS、AWS SNSをサポートしているプッシュ通知プラットフォーム(APNS、FCM...etc)。

イベントに応じてメッセージを送るワークロードで活用される。
AWS CloudWatchEventと連携して、EC2インスタンスのCPU利用率が80%を超えた時にSlackとメーリングリストに通知...など。



## SQS(エスキューエス)

SQSはSimple Queue Serviceの略。

フルマネージドなPull型のメッセージキューサービス。
Queueという単位でメッセージ配信管理が行われ、プロデューサー(配信者)がQueueに対してメッセージの送信を行うとキューにスタックされ、コンシューマー(取得者)が手動でメッセージを取得する。
スタンダードキューとFIFOキューの2種類のキューが提供されており、前者は重複配信(2回以上キューから配信される可能性有)や配信順序を保証しないが高速、後者はその反対の性質を持つ。

システム間のやり取りに利用することでシステム連携の疎結合化、分散処理などを実現できるシンプルながら強力なサービス。



## SWF(エスダブリューエフ) 

SWFはSimple Workflow Service(シンプルワークフローサービス)の略

フルマネージドでいくつかの要素に細分化できる一連の処理をワークフローとして管理することができるサービス。
AWS Step Functionsと似たサービスだが、実装が複雑になりがちなため現在は新規実装であればAWS Step Functionsを利用することを推奨(※)しているみたい。

※ [こちら](https://aws.amazon.com/jp/swf/faqs/)の`Q: Amazon SWF と AWS Step Functions はどのように使い分ければよいですか?`を参照

# AWS コスト管理

AWSサービス利用に伴う料金管理に関するサービス群。

## Cost Explorer(コスト エクスプローラー)

全AWSサービスの利用料金、及び利用状況のレポートを作成できるサービス。
過去13ヶ月分のAWS利用料金を予め用意されたビュー(※)で確認することででき、更にフィルターやグルーピングで分析も行うことができる。
AWS BillingConsoleはざっくり利用した料金を確認できるが、AWS Cost Explorerは詳細な情報を確認することが可能。

※ AWSサービスの利用状況を可視化する単位。構築済みのものとしてサービス別の月額利用料金や、日次コストなどがある。もちろん自分でビューを定義することも可能。



## Budgets(バジェット)

日、週、月次のレポートを自動作成・送信してAWS用の予算の状況をモニタリングできるサービス。
AWSサービスごとに予算を設定して超過したら、アラートの発報(Email, SNSをサポート)を行わせることで使いすぎや不正利用の検知に利用することができる。
実コストだけではなく、予測コストが超過する場合にもアラート発報が可能。



## Marketplace Subscriptions(マーケットプレース サブスクリプションズ)

AWS Marketplace上で各ベンダーが提供しているソフトウェアなどがセットアップされたAMIで、購入(サブスクライブ)したコンテンツの管理を行うサービス。



# カスタマーエンゲージメント

エンドユーザのサービスに対してのエンゲージメント(愛着・思い入れ)を強めるためのサービス群。



## Connect(コネクト)

フルマネージドでクラウド型のコールセンターを提供するサービス。
これまではコールセンターを立ち上げたいとなった場合は、自前で回線を引いたりシステムの構築が必要だったが、構築済みのコールセンター環境を従量課金で利用することができる。
ACD機能(自動振り分け機能)やIVR機能(自動音声再生機能)、リアルタイムでの履歴確認といった機能も利用可能。



##  Pinpoint(ピンポイント)

ユーザエンゲージメントを促進するためのフルマネージドなCRM的サービス。
論理的なセグメントを設定してユーザの分類、セグメント別のプッシュ配信やキャンペーンの発行といった機能を備える。



## Simple Email Service(シンプルイーメールサービス)

SES(エスイーエス)と略される。

クラウドベースでフルマネージドなEメール送受信サービス。
AWS SESのWebコンソール、AWS SES API(HTTP ,SDK, CLI)、SMTPを利用してメールを送信することが可能。
利用にあたってはスパム利用ではないことを証明するためバウンス率(※1)、苦情率(※2)などを低く抑えてメールの信用を確保する必要がある。
そのためSESのコンソールから都度メトリクスを確認したり、バウンス、苦情時の仕組み(※3)を用意する必要がある。

※1 宛先不在のメールを送って差し戻された
※2 送信先からスパム認定をされた(メールクライアントのスパムとして報告ボタンを押下された)
※3 バウンス、苦情発生時にメール・Slackへの通知やLambdaを利用して送信NGリストに追加してアプリから再度メールを送らないようにする...など



# ビジネスアプリケーション

ビジネスシーンで業務をサポートするサービス群。

 

## Alexa for Business(アレクサフォービジネス)

会社などの組織規模でAlexaを利用するための管理機能やスキルを提供するサービス。
会議室の予約やカレンダーサービスとの連携や、共有Alexaに対して利用可能なスキル一覧設定などの一斉配信などが可能となる。



## Chime(チャイム)

大規模コミュニティ向けのビデオ、音声、テキストコミュニケーションツール。(SlackとかMicrosoft Teamsに近い感じ)
最大100人での同時通話など大規模なコミュニティで利用するのに適している。



## WorkMail(ワークメール)

フルマネージドでWebクライアントからアクセス可能なWebメールとカレンダーを提供するサービス。(G-SuiteのGmail, Googleカレンダー的なサービス)
AD連携、独自ドメイン利用といった機能も備えており、モバイルデバイスからの利用も可能であるためビジネスツールを全てAWSサービスに統一して支払い、管理を楽にしたいケースなどでとても有効。



# エンドユーザコンピューティング

エンドユーザにマシン・アプリケーション環境などを提供するサービス群。



## WorkSpaces(ワークスペースズ)

クラウド経由の仮想デスクトップ環境を提供するサービス(Azure Virtual Desktop的な...)
2020年5月現在、Windows, Linuxの2OSをサポートしている。
アクセス用のクライアントソフトが利用できれば、モバイル、デスクトップ問わずどこからでも同じ環境を利用することが可能であるため、リモートワークでの作業環境として活用することができる。
AWS WorkSpacesの環境構築時に自動でAWS WorkDocsの環境も構築、50GBまで無料で利用できるため、チームメンバー間でのドキュメント共有なども可能。



## App Stream2.0(アップストリーム 2.0)

フルマネージドでデスクトップアプリケーションを配信するサービス。
配信サーバとしてWindowsServerを起動して、その中にインストールされたアプリ内から配信するアプリを設定、許可されたクライアントがアクセスすることで配信許可されたアプリの利用がブラウザ経由で行える。
類似サービスであるAWS WorkSpacesはデスクトップ環境をまるごと提供するのに対して、AWS AppStream2.0は特定のアプリ環境のみを配信するという点が異なる。



## WorkDocs(ワークドックス)

フルマネージドなオンラインストレージサービス。(AWS版GoogleDrive、DropBox的な...)
ユーザ認証にはAWS Directory Service(Simple AD or AD Connector)を利用しており、グループの定義なども可能。
Webブラウザ、クライアントアプリからの利用が可能で1ユーザ/月7\$で1TBまで利用可能。AWS WorkSpacesを利用しているユーザは無料で50GBまで利用可能(3$追加で1TB利用可能)。



## WorkLink(ワークリンク)

AWS上のプライベートなWebサイト、アプリに対してモバイルデバイスから安全にアクセスする仕組みを提供するフルマネージドサービス。
動作の仕組みとしてはSAML2.0に対応したIdPを利用して認証成功後、WorkLink用のインスタンスが代理で対象のプライベートサイトにアクセスを行ってその内容をレスポンスすることで実現。



# IoT

Internet of Things(モノのインターネット化)に関連するサービス群。



## IoT Core(アイオーティーコア)

IoTデバイス群とAWSサービスをセキュアに双方向接続・管理するプラットフォームを提供するサービス。
大きく大別して5つのコンポーネントから構成されたサービスであり、それぞれのコンポーネントを活用してIoTデバイスをAWSリソースと連携させる。
AWS Kinesisと比較してMQTTのサポートやデバイスシャドウを利用したアプリ構築などでデバイスの種類が増えても柔軟な対応が行えるため、AWS IoT Coreから AWS Kinesisに繋ぐ構成が推奨されている。



| コンポーネント       | 詳細                                                         |
| -------------------- | ------------------------------------------------------------ |
| デバイスゲートウェイ | 接続されたIoTデバイス、AWSサービス間でMQTT、HTTPを利用した通信環境を提供するメッセージブローカー。 |
| 認証・アクセス許可   | IoTデバイスとデバイスゲートウェイの間でセキュアに接続するための仕組み群。 |
| ルールエンジン       | SQLライクな構文で接続されたIoTデバイスデータを処理して別のデバイスやAWSリソースとの接続を行えるようにする。 |
| デバイスレジストリ   | 接続されたIoTデバイスに対してユニークなIDの付与、メタ情報の管理を行う。 |
| デバイスシャドウ     | 接続されたIoTデバイスの最新のステータスを保持する。外部からIoTデバイスのステータスを参照・取得する際に高いコストを掛けてIoTデバイスに接続しなくてもデバイスシャドウを参照すればよい。 |



##Amazon FreeRTOS(アマゾン フリーアールティーオーエス)

RTOSはReal-time Operating Systemの略。

FreeRTOSという組み込みシステム用RTOSを大規模なIoTデバイス運用に耐えるようにするため、「プログラミング」「デプロイ」「保護」「接続」「管理」などの機能を追加で提供するRTOS。
元々FreeRTOSはデバイス単独で動作させることを考慮していたため、「ローカルネットワーク接続機能」や「クラウド接続機能」といった外部と接続するための機能が設けられていなかったがIoTアプリ開発という需要に対応するために開発された<font color="gray">らしい</font>。
AWS IoT Coreに統合されており、そちらから利用することが可能。



## IoT 1-Click(アイオーティーワンクリック)

[こんな感じのデバイス](https://soracom.jp/products/gadgets/aws_button/)を押下したときAWS Lambdaを実行する仕組みを提供するサービス。
AWS IoT 1-Clickに対応したデバイスを登録して、押下時に呼び出すAWS Lambdaの関数を紐付けるだけですぐに利用が可能。
AWS Lambdaは好きな処理を実行できるので、ボタンクリック１つでAWS Batchを呼び出してバッチ処理の実行、エンドユーザにプッシュ通知の発行...なんてこともできる。

昔「トイレットペーパー取ってくれ！」というメッセージを送るIoT 1-Clickボタンを作ってトイレに置いてました。



## IoT Analytics(アイオーティーアナリティクス)

フルマネージドでAWS IoT CoreはもちろんAWS Kinesisなどの外部サービスからIoT Analytics専用の分析用データストアにデータを格納してSQLライクな言語で分析を行えるようにするサービス。(IoTデータを対象としたAWS Athenaのようなサービス)
分析結果はCSVなどの形式でのダウンロードやAWS QuickSightなどのBIツールと連携して可視化させることも可能。



## IoT Device Defender(アイオーティーデバイスディフェンダー)

AWSに接続されているIoTデバイスの設定・動作をセキュリティ的に問題があるかを監視してくれるフルマネージドなサービス。
IoTデバイスに対して以下の機能を提供する。
本サービス自体はAWS IoT Coreのダッシュボードに統合されており、そちらから利用することが可能。

| 機能                               | 詳細                                                         |
| ---------------------------------- | ------------------------------------------------------------ |
| デバイス設定がセキュアであるか監視 | IoTデバイスの設定(証明書、アクセスポリシー)がベストプラクティスに沿っているかを自動で監視する。 |
| 異常な振る舞いの検知               | セキュリティ関連のメトリクスに手動でチェック条件を設定して監視する。 |
| アラートの生成                     | 上記2点の問題検知時に生成されるアラート。トリガーとして何らかの処理を実行することも可能。 |
| 問題への対応方法の通知             | 問題検知に対して推奨される対応方法を提供。                   |



##IoT Device Management(アイオーティー デバイス マネージメント)

IoTデバイスの登録・編集・削除・監視・リモート管理...といったデバイス管理機能をフルマネージドで提供するサービス。
大量のデバイスの一括登録、リモート経由での設定管理機能、実行ログの監視、各地に設定しているデバイスをリモート管理で可能。
本サービス自体はAWS IoT Coreのダッシュボードに統合されており、そちらから利用することが可能。



## IoT Events(アイオーティー イベント)

IoTデバイスから発生したデータ、アプリ上で発生したイベントを検出するサービス。(IoT用のAWS EventBridgeみたいなもの)
自由にイベント発生条件を定義することが可能で、例えば温度データが80度を超えた場合に過熱状態に移行のイベントを発行して、60度を三回連続で下回った場合は通常状態に移行のイベントを発行。。。といった具合にできる。
イベント発行時にAWS SNS、AWS Lambdaに渡すことも可能。



## Greengrass(グリーン グラス)

AWS IoT Coreの主要コンポーネントをローカル環境で利用可能にするソフトウェア。
IoTデバイスが常時ネットワークと接続できない、クラウドへのデータ転送のレイテンシが遅すぎる、セキュアなIoTデータであるためクラウドにアップロードできない、事前にIoTデータを加工して通信費を抑えたい...といった要件がある場合に、Greengrassをインストールしたゲートウェイを用意してAWS IoT CoreのようにIoTデバイスと接続することでローカル環境でデータ収集が可能となる。(いわゆるエッジコンピューティング)

AWSクラウド側で記述したAWS LambdaのコードをローカルなGreengrass上で動作させるLocal Lambdaという機能がエッジ処理のキモらしい。



## SiteWise(アイオーティー サイトワイズ)

複数の産業施設から取得できる何千ものセンサーデータを収集、構造化、可視化するサービス。
複数施設で発生するデータを俯瞰的にモニタリングが可能であるため、どの点がボトルネックになっているか...といった気づき・改善に繋がる。
IoT SiteWiseデータ収集用のソフトウェアをゲートウェイにインストールして稼働させることでデータ収集を行う。(AWS Snowball Edgeなどもゲートウェイとして利用可能)



## IoT Things Graph(アイオーティー ティングス グラフ)

フルマネージドでIoTデバイスとウェブサービス(AWS Rekognationなど)とGUIで簡単に接続するサービス。
IoTデバイスは接続規格の整備などが十分に進んでおらず、接続のためにデバイスごとに独自の設定を加えたり接続用のコードを記述する必要があった。
本サービスを利用することで本質的ではないデバイスとアプリの接続などの処理を実施せず、本質的なアプリ開発の作業に集中できるようになる。



# ゲーム開発

ゲーム開発に関連するサービス群。



## GameLift(ゲームリフト)

マルチプレイ用のゲームサーバをデプロイ・管理・スケーリングするためのサービス。
FPS、格闘ゲームなどの低レイテンシーを要求するジャンル向けのカスタムゲームサーバと、数行のスクリプトで利用できるが複雑なネットワーク処理を必要としないジャンル(カードゲーム、ターンベースのゲーム...etc)に向いたリアルタイムサーバの二種類が提供されている。

# コンテナ

コンテナサービスに関連するサービス群。


## Elastic Container Registry(エラスティック コンテナ レジストリ)

略してECR(イーシーアール)と呼ばれる。

フルマネージドでDockerイメージの管理するリポジトリを提供するサービス。(いわゆる自前で管理するDockerHub的な感じ)
Push, Pull, バージョン管理はもちろんのこと、Pullのみを許可...などの詳細なアクセス権限設定なども可能。
AWSサービス内でクローズドかつセキュアに業務用Dockerイメージを管理したい場合に適している。



## Elastic Container Service(エラスティック コンテナ サービス)

略してECS(イーシーエス)と呼ばれる。

フルマネージドでAWSリソース上へのDockerコンテナのオーケストレーションを実現するサービス。
デプロイ、コンテナの自動スケール、タスク配置...etcといった機能を提供してくれるため、デプロイするサーバ１つ１つにログインして設定...みたいなことを行わなくても数クリックで自動スケーリングするクラスタ構成のデプロイなどが可能になる。
通常のEC2コンテナにデプロイする方法と、完全にDockerコンテナのみを起動させるだけのAWS Fargateを利用方法が選択できる。(Fargateは自前でセキュリティパッチの適用といった運用作業が不要だが少しお高い)


##Elastic Kubernetes Service(エラスティック クーべネティス サービス)

正式名称はAmazon Elastic Container Service for Kubernetes。
略してEKSと言われる。

フルマネージドでKubernetes(※)を提供するサービス。
Kubernetesを利用して構築されたエコシステムを簡単にAWS環境にマイグレーションができる。
ECSと同様にデプロイ先にAWS EC2とAWS Fargateを選択可能。

※ クーべネティスと呼んでいるんですが、あっているんだろうか...。
めちゃくちゃ多くのサーバでDockerコンテナを動作させる際に各サーバにログインして実行...みたいなことを行わなくてすむようコンテナの自動デプロイ、スケーリングなどのオーケストレーション機能を提供するオープンソースのプラットフォーム。


# まとめ
嘘みたいだろ...？これ、まだ書いてないサービスがあるんだぜ...？
<font color="gray">AWS Import/Export, AWS Elastic Load Balancing...などなど</font>

でも概要だけでも知っておけば、仕組みを作ったり、フルスクラッチで実装する前にAWSのサービスを使って楽をする。という選択肢を選ぶことができて、車輪の再発明的なことを防止できそうなので頑張って覚えようと思います。

記載内容に誤りがありましたら、~~優しく~~編集リクエストやコメントいただけますと嬉しいです。

# 更新履歴
- 2020/05/20 ... 誤字脱字修正, AWS CodeStarの記載内容が適切ではなかったため修正