私的 re:Invent 2015 総まとめ

# 私的 re:Invent 2015 新サービス 総まとめ

クラスメソッドさんのブログを参考に完全主観でまとめてます。

[参考] [re:Invent 2015で発表された21個のAWSアップデートを140文字でまとめる #reinvent](http://dev.classmethod.jp/cloud/aws/reinvent2015-new-services/)

また、プレビューやベータなどの未リリースサービスも面倒なので全て過去形で記載しています。
１つ１つ裏を取ったわけではないので突っ込みどころ満載かと思われますがとりあえず自分の整理のためあげておきます。

# 新サービス

## AWS IoT (フルマネージドMQTTサービス)

MQTTのフルマネージドサービスです。自動でスケールし、AWSの各サービスに連携することができます。
MQTTプロトコルはクライアントとTCPセッションを貼り続けることで双方向の通信を可能としますが、
負荷分散させるためには接続デバイスの情報をサーバ側で管理する必要があり、スケールアウトが難しかったので、
このサービスを導入することで運用・構築費用は10分の1以下になると言われています。

## AWS Mobile Hub (フルマネージドMBaaS)

AWSの各サービスをつなぎあわせたフルマネージドなMBaaSです。AWSの真骨頂のようなサービスです。
とても大きなサービス群のためここでの説明は割愛します。

## Amazon Kinesis Firehose (ストリームデータ連携サービス)

KinesisのストリーミングデータをS3やRedshiftに連携するサービスです。
従来のKinesisではEC2のワーカーインスタンスを用意してS3やRedshiftにストリームデータを流しこむ
処理を実装する必要がありましたが、それらが不要になります。
むしろ今まで出来なかったのが不思議なくらい、できて当然なサービスですが、活用範囲は広いと思われます。

## AWS WAF (Web Application Firewall)

CloudFront上で動作するWeb Application Firewallのサービスです。
イメージ的にはAkamaiのSiteDefenderと同様なサービスに見えますが、よりアドホックなルール定義ができそうです。
その分、ルールの運用は高度なセキュリティ知識が要求されると思われますが、AWSなのですぐにエコシステム的な
ルールセットのリポジトリができるのではないかと踏んでいます。
個人的にはHashiCorpのOttoと組み合わせてアプリケーションの形態により自動的にルールセットが展開されるような
仕組みがあると嬉しいな。

## Amazon QuickSight (フルマネージドBIサービス)

DWHのデータベースサービスとしてRedshiftがありましたが、BIのフロントエンドは別途用意する必要がありました。
QuickSightはフルマネージドなBIサービスです。SPICEというAWS独自のインメモリDBに自動的にデータを集約し
グラフなどのダッシュボードを提供します。
AWS内にあるデータソースを自動的に検知し、データを集約するとかしないとか。オンプレとの接続も可能です。

## Amazon Inspector (EC2設定内容自動診断サービス)

EC2インスタンスにエージェントをインストールすると自動的に脆弱性レポートを作成してくれるサービスです。
例えば、EC2にApacheがインストールされている場合は/etc/httpd/conf/httpd.confをチェックして、
推奨されない設定などを検出して通知してくれます。
どこまで対応してくれるのかは現状ではわからないため、セキュリティ担保の補助的なサービスとして捉えるのが
いいと思われます。

## Amazon Elasticsearch Service (フルマネージドElasticsearch)

オープンソース検索エンジンであるElasticsearchのフルマネージドサービスです。
Elasticsearchは主にログ分析、全文検索に用いられます。
ElasticsearchはHadoopやSpark同様、JVMの特性を理解していないと最適な運用は難しいのですが、
フルマネージドのため泥臭いJVMチューニングを行う必要はなさそう。逆に、JVMチューニングが
必要な場合はEC2上にElasticsearchを構築するべき？(Elasticsearchに限った話ではないですが)

## AWS Database Migration Service (オンプレからのデータベース移行サービス)

オンプレのデータベースからAWSのRDSにデータベースオブジェクトを移行するサービスです。
ダウンタイムなしのオンラインで移行が可能なようですが詳細は不明です。
また、異なるRDBMS同士でのオブジェクトの自動変換も行われますが、精度は85%と微妙で、
残り15%に泣くことになるでしょう。

# 機能追加・拡張

## AWS Lambda の大量機能追加

Lambdaはサーバレスでコードを実行することができるスケーラブルなマネージドサービスです。
サーバサイドロジックをすべてLambdaで実装することにより2-Tired Architectureが実現可能です。

- Lambdaの実行トリガとしてスケジュール実行がサポートされました。
- LambdaがVPCリソースにアクセスできるようになりました。
- Function実行時のタイムアウトが最大1分から最大5分になりました。
- LambdaのFunctionをバージョン管理でき、バージョン指定で実行可能になりました。
- LambdaのFunctionにエイリアスを指定することができるようになりました。
- (Node.js/Javaに次いで) 3つ目の言語サポートとしてPythonが追加されました。

## AWS Config Rules (AWS構成変更フック処理)

AWSの構成管理サービスであるAWS Configの拡張機能で、AWS Lambdaを利用してAWS構成変更に対する
ルールベースのフック処理を実装できるようになりました。

## Amazon EC2 Container Registry (フルマネージドDocker Registory)

Amazon EC2 Container Service(ECS)のためのフルマネージドDocker Registoryです。
従来のDocker RegistoryはDocker Registoryイメージを自前で運用する必要がありましが、
フルマネージドで提供されるため運用負荷が大幅に軽減されます。
海外ではECSローンチ後、爆発的に利用が増えており、国内でも今後DockerやECSの利用が増えるのは
目に見えていますので、出るべくして出たサービスの1つです。

## Amazon EC2 X1インスタンス, T2.nanoインスタンス

新しくハイスペックとロースペックの両極端なインスタンスタイプが追加されました。
X1は大容量メモリと100以上のvCPU、大きなL3キャッシュを搭載したモンスターマシンです。
T2.nanoは512MB、1vCPUという低スペックなバースト可能インスタンスです。
その分安いのでスポットインスタンスでオートスケールと組み合わせて使うといいですね。
ただ、T2.nano使うくらいならECS使ったほうがリソース効率もスケーラビリティもいいような？

## AWS Import/Export Snowball (オンプレからの大量データ高速インポート)

オンプレのペタバイトオーダーデータを高速にAWSに移行するハードウェアアプライアンスです。
通常、50TBのデータをネットワーク経由でAWS上にアップロードしようとすると、DirectConnectを
利用した専用線接続でも数日かかるのが当たり前でした。
Snowballの利用を申し込むとアタッシュケースみたいな形のハードウェアアプライアンスが送付され、
そいつにデータを投入してAWSに返送することで高速なデータ移行を実現します。
アプライアンスは1個あたり50TBのデータを格納でき、50TBを超える場合は複数購入することで
配送（！）から並列処理されます。
Amazonならではの他社では絶対に真似できないサービスですが、東京リージョンでサポートされる
日が来るのかは謎です。

## 東京リージョンに Amazon RDS for Aurora (フルマネージドなクラウドRDBMS)

従来のRDBMSよりも圧倒的に高速、かつディスクの自動拡張や自動スケールアウトなどの
数々の機能を持ったMySQL完全互換なAWS謹製RDBMSであるAuroraが東京リージョンに来ました。
MySQLやMariaDBと比較してのデメリットは利用料金がかかることぐらいで、
MySQLを利用したクリティカルなアプリケーションではAuroraで運用がとてつもなく楽になります。

## 東京リージョンに Amazon API Gateway (フルマネージドAPI Gateway)

WebのAPIを変換してくれたり、インタフェースに合わせたSDKを自動生成してくれたり、認証してくれたりする
至れり尽くせりなフルマネージドAPI Gateway(Proxy)サービスです。
Android、iOS、ブラウザ向けに同一インタフェースでそれぞれの環境に合わせたSDKを自動生成してくれるので
同一APIをデバイスごとに個別に実装する必要がなくなり非常にエコです。

## Amazon RDS for MariaDB (フルマネージドMariaDB)

RDSにMariaDBが追加されました。MariaDBはMySQL5からフォークされたMySQL互換RDBMSです。
MySQLとの違いは、スレッドプールがサポートされ、レプリケーション速度が高速化されています。
また、Nested Loop結合しか使えなかったMySQLと違い、Hash JoinやMerge Sort Joinに対応しているとか
してないとか（未調査）。
また、デフォルトのストレージエンジンがInnoDBからフォークしたXtraDBになっており（本当？）、
マルチコアプロセッサ環境での性能が向上しています。価格はRDS for MySQLと同額です。

## Amazon Kinesis Analytics (ストリーミングデータリアルタイム分析サービス)

Kinesisのストリーミングデータに対してリアルタイムクエリを実行することができるサービスです。
こちらは詳細がまだ見えていませんが、使いようによってはあらゆるリアルタイムモニタリングに適用できそうです。

## Amazon EC2 Dedicated Hosts (BYOL補助ハードウェア専有インスタンス)

従来からハードウェア専有インスタンスというものがありましたが、これはライセンス管理に特化した
ハードウェア専有インスタンスです。
よくわかってないですが、サーバライセンスやCPUライセンスのソフトウェアを扱いやすくなるとか。

## その他、細かい機能拡張

### Amazon Kinesis Streams Extended Retention

Kinesisのデータ保持期間を最大7日間まで拡大できるようになりました。今までは固定で24時間でした。

### Amazon ECSの拡張

CLIがdocker-compose互換になりました。ECSがAZを意識してスケジュールされるようになりました。

### Amazon CloudWatch Dashboards

CloudWatchのダッシュボードを独自で定義できるようになりました。運用者にとっては非常に便利。