AWS 全サービスを 3行で説明

前へ << AWS とは何か & AWS 全サービスを 3行で Azure とは何か >> 次へ

AWS 全サービスを 3行で

Amazon Athena とは | AWS ドキュメントへ
S3 に置いてある CSV, TSV, JSON などの形式のファイルの内容を、SQL で検索できる。 ファイルをまるごと手元に持ってくる時間と転送量を節約できる。 まず CREATE TABLE 文を発行し、S3 上にあるファイル群と対応づけたテーブルを作成する。 そうすると、そのテーブルに対して SELECT することができる。WHERE 句や、GROUP BY なども普通に使える。 Athena を使うにはコンソール上で SQL を実行する。API もある。 JDBC/ODBC 経由でのアクセスも可能であるため、一般的な SQL クライアントも利用できる。 Athena は「アテナ」と読む (多分)。 同類のサービスとして S3 Select がある。
Amazon Aurora とは | AWS ドキュメントへ
Amazon が作ったデータベースエンジン。MySQL 互換ながら、MySQL より高速で、耐障害性が高い。 Amazon RDS のラインナップのひとつ。

詳細は こちら

Amazon Aurora Serverless とは | AWS ドキュメントへ
インスタンスを立ち上げる必要がない Amazon Aurora。2017/12 現在、プレビュー。
Amazon API Gateway とは | AWS ドキュメントへ
世の中の API 全般を考えた上で、「API にあると便利な仕組み」を盛り込んだフレームワーク。 API Gateway 自体が何かしてくれるわけではなく、API Gateway が外部からリクエストを受け、 別のモノを呼び出し、結果を返すという考え方。 提供機能として、バージョン管理 (ステージング環境の提供や前バージョンへのロールバック)、 認証、監視、集計 (呼び出し回数/結果/レスポンスタイムなど)、キャッシュ機能などがある。 また、リクエストやレスポンスの内容を、テンプレートを使って変更する機能があるので、 例えば XML でデータのやりとりを行う既存 API が存在するが、呼び出し側は REST でいきたい場合など、 API Gateway が間に入って変換を担当することができる。 API Gateway が呼び出せるのは下記。
  • AWS Lambda
  • AWS サービス (S3・DynamoDB・SES・SNS・SQS・EC2・ECS・ELB 等々まだまだたくさん)
  • 外部の http/https API
Lambda を起動する方法は DynamoDB・S3・SNS・Kinesis 等があるが、 API Gateway からの呼び出しが最も一般的な方法と考える。 また、S3 等の AWS サービスはそもそも REST API を持っているが、API Gateway を使うと 上記に記載した提供機能が使える上、統一的な API 設計が可能になる。
Amazon AppStream 2.0 とは | AWS ドキュメントへ
ブラウザ上で、Excel・Word や、その他好きな Windows デスクトップアプリケーションを利用できるサービス。 ブラウザ上で動作するリモートデスクトップのような感じだが、 管理者によってあらかじめ定められたアプリケーションしか使うことができない。

管理者は Image Builder という機能を使い、アプリケーションを追加できる。 使い所としては、下記のような感じではなかろうか。

  • コールセンターや窓口業務で数千人の社員がいて、ある業務アプリが使えればそれで仕事ができる環境があるとして、 手元にはブラウザが動く程度の安い PC を準備し、全員 AppStream で仕事をし、各自 PC の OS 管理や業務アプリの配信管理の手間を省く
  • 3D モデリングのような CPU/GPU リソースが必要なアプリを AppStream 経由で操作する

お試しの場合、Excel, Word , Visio, Eclipse, MS-Project, Firefox などが使える。 実体としては EC2 上で Windows Server 2012 R2 64 ビット が稼働しており、 その画面が手元のブラウザに転送されている、という仕組み。

ちなみに 2.0 ではない AppStream というものもあったが、SDK での開発が必須だったりして、 フルリニューアルしたのが AppStream2.0 である。元の AppStream はもう使うことはできない。

普通のクラウドデスクトップを使いたい場合は Amazon WorkSpaces を使うとよい。

Amazon Chime とは | AWS ドキュメントへ
複数人でのテキスト・音声・ビデオチャットサービス。スクリーン共有や録音機能も備える。 Windows、macOS、iOS、Android で利用可能。 Chime は「チャイム」のこと。
Amazon Cloud Directory とは | AWS ドキュメントへ
フルマネージドなディレクトリサービス。 AWS Directory Service はユーザ管理に特化しているが、 Amazon Cloud Directory はより汎用的な使い方を想定しているのと、 何億という大規模データにも対応可能なのがウリ。 ユースケースとしては、人事アプリケーション・フリート管理システム・学習管理システムがおすすめだそうだが、 当ページ管理人はこういうミドルウェアを使ったことがないのでよくわからない。
Amazon CloudSearch とは | AWS ドキュメントへ
フルマネージドな全文検索エンジン。例えば EC サイトなら商品検索ができる。 ソーシャルネットワークならメッセージ検索ができる。Wikipedia なら全ページ検索ができる。 内部は Apache Solr。 あいまい検索・表示順重み指定・日付検索・ファセット・ヒット部分の強調表示・独自の辞書等、 それなりに充実している。自動スケール機能あり。 より低レイヤの制御をしたい場合は Elasticsearch
Amazon CloudFront とは | AWS ドキュメントへ
AWS の CDN サービス。主に画像等の静的なファイルを配置することで、 レスポンスタイム向上・サーバ負荷軽減が実現できる。

詳細は こちら

Amazon CloudWatch とは | AWS ドキュメントへ

CloudWatch は AWS サービスについてリソースを監視し、通知するサービスである。 各サービスごとに様々なメトリック (指標値) が定められており、 例えば EC2 であれば、CPU 使用率・ディスクIO回数・1分以内の生存チェック。 Lambda であれば呼び出し回数・失敗回数。 SQS であれば処理中メッセージの数、最も古いメッセージの経過秒数など。

メトリックがあるルールに合致した場合、通知・SQS・SNS・EC2操作・Auto Scaling を発動するようなルールを定めておくことができる。

例えば EC2 の CPU 使用率が 80% を超えている状態が 10分間以上継続したら Auto Scaling で 1インスタンス増やしたり、 生存チェックが失敗したら該当インスタンスを再起動したり、 SQS で 1時間処理されないメッセージがあれば SNS 経由でメール通知する、などなど。

請求額が一定額を超えたら通知、というのもできる。

なお、カスタムメトリクスというものがあり、あらかじめ準備されているメトリクス以外に、 好きなメトリクスを追加し、CloudWatch で監視ができる。 例えば EC サイトであれば、直近 1時間の受注数をカスタムメトリクスとして送信し、 一定数以下になった場合、何がトラブルがあって受注ができない状態かもしれないので通知する、といったことができる。

Amazon CloudWatch Events とは | AWS ドキュメントへ

AWS の様々な「イベント」を起点とし、任意の「アクション」を実行するための仕組み。 「イベント」とは、例えば EC2 の running・shutting-down・stopped 等の状態変更、AutoScale の変動、 S3 操作、AWS API 呼び出しなど。 「アクション」とは、EC2 操作・Lambda 関数実行・SSM 経由でのコマンド実行等・Amazon SQS キュー・Amazon SNS など。 これを組み合わせることで実現できることは、 「EC2 が停止したときに SNS でエラーメール通知」 「AutoScale 時の通知」 「S3 操作のログ記録」 「AWS コンソールログイン時のログ記録」など。

CloudWatch Events 登場以前は、1分に一度など定期的なポーリングで現在の状態を取得し、 過去の状態と比較した上で状態変化判定をする、といった仕組みを自分で構築する必要があったが、その部分を簡素化できる。

また、アクションとして「cron 式でのスケジュール起動」もあるため、 「定期的な Lambda 関数の実行」「定期的な EBS のバックアップ」 「毎日 09:00 にインスタンスを起動」 「毎日 04:00 にデイリービルド実行」 「毎日 23:00 にインスタンスを停止」 などが実現できる。

Amazon CloudWatch Logs とは | AWS ドキュメントへ
EC2 や AWS CloudTrail のログを収集し、管理画面で閲覧することができる。 ログは日付や文字列での検索が可能。 ログメッセージ内に特定文字列 (例えば "ERROR" など) を見つけるとメールなどのアラートを出すことができる (Amazon SNS 経由)。 "ERROR" "Database" など複数文字列検索はできるが、正規表現はつかえない (ログ解析を Amazon Kinesis に渡せば可能)。ログ保存期間は 1日・3日・5日などと設定できるが、無制限 (削除しない) も可能。保存ログのサイズに応じて課金される。 EC2 からログを収集する場合、EC2 インスタンスに CloudWatch Logs Agent というものをインストールする必要がある。Agent は Linux・Windows など各種 OS 用が用意されている。
Amazon Cognito とは | AWS ドキュメントへ
アカウント管理基盤。モバイルアプリまたは Web アプリから使える。一意な ID の管理、オフライン機能、オンライン復帰時のデータ同期、ゲスト時に一時ID発行。Facebook・Twitter・Google・Amazon などを利用した認証が可能。複数アプリや、モバイルアプリと Web アプリ間でのアカウント情報やセッション情報の共有など。
Amazon Comprehend とは | AWS ドキュメントへ
自然言語処理サービス。 2018/1 現在、対応言語は英語とスペイン語。 文章を渡すと、単語抽出とカテゴリ分析、言語推測、感情推測を行う。 ドナルド・トランプのあるツイート "It was my great honor to welcome Mayor’s from across America to the WH. My Administration will always support local government - and listen to the leaders who know their communities best. Together, we will usher in a bold new era of Peace and Prosperity!" を処理させてみると下記のようになった。「トランプ大統領が全米市長とホワイトハウスで会談」という内容なので、この結果は大変微妙である。
  • 単語抽出
    • 単語: Mayor、カテゴリ: Person、出現回数:1、信頼度: 49%
    • 単語: America、カテゴリ: Location、出現回数:1、信頼度: 98%
    • 単語: WH、カテゴリ: Organization、出現回数:1、信頼度: 66%
  • 言語推測: English、信頼度: 98%
  • 感情推測
    • Positive: 信頼度 93%
    • Netural 信頼度 6%
    • Negative: 信頼度 0%
    • Mixed: 信頼度 0%
Amazon Connect とは | AWS ドキュメントへ
IVR (自動電話応答) 機能を備えた、コールセンター・カスタマセンターのシステム。 「ご注文は 1 を、商品に関するご質問は 2 を、返品については 3 を、担当者との通話をご希望の方は 9 を押してください」 みたいな自動音声・ボタン入力・フロー分岐を設定可能。 人間の担当者と通話させることもできる。 ブラウザベースの通話ツールがあり、マイク・イヤホンのヘッドセットを用意しておけば通常の PC で通話が可能 (人間の担当者を雇用するなりして通話を受けられるようにしておくのはあなたの仕事であるわけだが、 Amazon に相談すればアウトソース可能なパートナー企業を紹介してくれると思う)。

電話番号は日本のもの (050-*-*) が取得可能。 音声は、録音済みの wave ファイル等でもいいし、Amazon Polly にてテキストから読み上げさせることもできる。 通話を録音し、S3 に保存することが可能。 AWS Lambda への連携も可能なので、「テンキーで注文番号を入力 → 配送状況を読み上げ」といったプログラム連携も可能。

2018/1 現在、Amazon Connect 利用開始より 12ヶ月使える無料枠あり。

Amazon DynamoDB とは | AWS ドキュメントへ
NoSQL・スキーマレスなデータベース。高速・大量データ可。基本的にはキー値を指定し、1行だけ取得する。SQL のように複雑な WHERE 句で検索するようなことは向かない。
Amazon DynamoDB Accelerator (DAX) とは | AWS ドキュメントへ
DAX は DynamoDB とクライアントの間に位置するキャッシュクラスタ。 インメモリなキャッシュで、クライアントからの Read 時に DynamoDB にアクセスせずにキャッシュしておいた値を返す。 そもそも DynamoDB は高速な DB であるが、それでも間に合わない場合に DAX を使うとよい。
Amazon Elastic Container Registry (ECR) とは | AWS ドキュメントへ
自分で作った Docker イメージを登録できる。 外部に公開することも、非公開とすることも可能。 Docker Hub などのサービスを、Amazon が AWS 上に持ってきたもの、と考えるとよい。 CircleCI などの AWS パートナーが提供するサービスと連携し、継続的デリバリーを行うことができる。 Docker イメージは実際は S3 に配置されるため、 利用料はその分のストレージやネットワーク料金のみである。 元は Amazon EC2 Container Registry だったのが、いつのまにか EC2 → Elastic に名称が変わったようである。
Amazon Elastic Container Service (ECS) とは | AWS ドキュメントへ

Amazon ECS は、Docker コンテナのマネージドサービス。 元は Amazon EC2 Container Service だったのが、いつのまにか EC2 → Elastic に名称が変わったようである。

Docker は Linux 内で独立したコンテナというものを立ち上げて、 その中はプロセスも CPU もメモリも隔離されていますよというもの。 ある意味「それだけ」しかできないのが Docker。 例えば Web サービスを立ち上げるとして、複数マシンで同じコンテナを動かしたり、 複数コンテナにロードバランシングしたり、 リクエストが増えてきたらコンテナを増やしたり (オートスケール)、コンテナが死んだら再起動したり、 といった機能は Docker には一切ない。管理用プログラムを作り込めばできるけど、かなり大変。

そこで各社が、Docker に欠けている管理機能を開発した。これを「コンテナオーケストレーションサービス」と呼ぶ。 Amazon が開発したコンテナオーケストレーションサービスが ECS。 Google が開発したのが Kubernetes。Docker 社が開発したのが Docker Swarm。 いずれもできることは似ているが、コマンドや設定ファイルなどは全然違う。

2017年、AWS も、Azure も、Docker 社も Kubernetes に対応したので、 このままいくと Kubernetes がデファクトスタンダードになりそう。 今から使うなら ECS ではなく EKS の方がよいかもしれない。

ただ、2017/11 に AWS Fargate が発表された。これは ECS や Kubernetes が EC2 や Google Compute Engine などの「箱」としての仮想マシンを作成し、 それを複数組み合わせて「クラスタ」として定義し、 それぞれの仮想マシンにコンテナを配置するというものであった。 Fargate は「箱」としての仮想マシンやクラスタの管理が不要になる (勝手に裏側で自動管理してくれる) というもの。 これはこれで正常進化だと思うので、コンテナ界隈がどうなるか興味深い。

Amazon Elastic Container Service for Kubernetes (EKS) とは | AWS ドキュメントへ
AWS 上の Kubernetes サービス。詳細は ECS を参照。
Amazon EC2 Systems Manager とは | AWS ドキュメントへ
EC2 Systems Manager とは何かは非常にわかりづらいのだが、 EC2 やオンプレミスを管理するための下記のような機能を適当に寄せ集めたものだと思われる。
  • Run Command (実行コマンド) … ssh 等でログインせず、リモートから任意コマンドを実行できる。
  • State Manager (状態管理) … アンチウイルスソフトやアプリケーションの設定などを管理できる。
  • Maintenance Window (メンテナンスウィンドウ) … RDS のメンテナンスウィンドウのようにメンテ可能時間帯を定義し、Run Command の実行が可能。OS パッチあてを早朝時間帯に実施するなど。
  • Inventory (インベントリ) … OS やミドルウェア、ネットワーク設定、レジストリ等の情報を収集
  • Patch Manager (パッチ管理) … Windwos のパッチ管理
  • Automation (オートメーション) … AMI のパッチあてなどを自動化
  • Parameter Store (パラメータストア) … クレデンシャルや DB 接続の ID/パスワードなどを一元管理。Run Command や AWS CLI、Lambda、ECS などからも参照可能。AWS Key Management Service に暗号化して保存される。
Amazon ElastiCache とは | AWS ドキュメントへ
オンメモリなキャッシュサービス。内部エンジンは memcached か Redis を選択可能。 Redis の場合、複数台でのクラスタ構成が可能。さらに Redis の場合、バックアップとリストアも可能。 "Elastic Cache" (エラスティック・キャッシュ) ではなく、"ElastiCache" (エラスティ・キャッシュ)。
Amazon Elastic Block Store (EBS) とは | AWS ドキュメントへ
EC2 に接続するストレージ。HDD・SDD 選択可能。同時に複数の EC2 とつなげることはできない。
Amazon Elastic Compute Cloud (EC2) とは | AWS ドキュメントへ
仮想マシン。いわゆる IaaS。 Linux や Windows サーバを立ち上げることができる。

詳細は こちら

Amazon Elastic File System (EFS) とは | AWS ドキュメントへ
NFS でマウントして使えるストレージ。複数 AZ で冗長化可能 (EBS では単一 AZ での冗長化)。複数の EC2 から同時に使える (EBS では同時に使える EC2 はひとつだけ)。S3 とは違い、普通のファイルにように扱える。事前の容量確保は不要で、使った分だけ請求。ただ、料金は S3 の 10倍くらい。
Amazon Elastic MapReduce (EMR) とは | AWS ドキュメントへ
AWS 上で Hadoop や、Hive や、Apache Spark を簡単に使う仕組み。 何ができるかと言うと、Hadoop や Spark を使って、ビッグデータの分散処理が行える。 Hadoop は、複数マシンにデータを分散させて MapReduce ができる仕組み。 Hive は Hadoop を SQL で操作可能にする仕組み・ Spark は MapReduce 部分の代替品でオンメモリにより高速化するのが狙い。 向き不向きはあるものの、一般的には Amazon Redshift の方が高速かつ高額という評価らしい。
Amazon Elasticsearch Service とは | AWS ドキュメントへ
全文検索エンジン。Lucene を基盤として、Elastic 社が主に開発しているものを AWS 上に PaaS として乗っけたもの。楽して運用したい場合は CloudSearch を検討すべし。
Amazon Elastic Transcoder とは | AWS ドキュメントへ
動画変換サービス。これを使えば、あなたも Youtube や Netflix のような動画配信サービスを運営できる。ビットレートを指定できたり、H.264 などの圧縮をかけたり、DRM で暗号化したり、HLS、SS、MPEG-DASH などのプレイリスト生成ができる。サムネイルの切り出しや、透かしマークの付加、キャプションの合成などもできる。
Amazon GameLift とは | AWS ドキュメントへ
マルチプレイヤーゲームのサーバサイドのサービス。 デプロイ・オートスケール・バージョン管理・監視などが行える。 内部的には適切な数の EC2 インスタンスを作成し、そこにゲームアプリケーションをデプロイしてくれる。
Amazon Glacier とは | AWS ドキュメントへ
S3 で、あまりアクセスしないファイルを低価格で保存しておけるサービス。 古いログやバックアップファイルなどを置くのに使う。 頻繁にアクセスするファイルは S3 に配置する。
Amazon GuardDuty とは | AWS ドキュメントへ
ログを分析し、異常と思われる挙動がある場合警告を行う仕組み。例えば以下のような警告例がある。
  • EC2 インスタンスがポート 25 でリモートホストと通信して通常と異なる動作を示しています。
  • EC2 インスタンスが通常と異なるポートでリモートホストと通信しています。
  • API が通常とは異なる ISP の IP アドレスから呼び出されました。
2018/1 現在、EC2 と IAM のみが警告対象。 実際の挙動としては、VPC フローログ・DNS ログ・CloudTrail イベントを調査し、 通常とは異なる挙動が見つかった場合警告する。 類似サービスとして AWS Trusted Advisor がある。
Amazon Inspector とは | AWS ドキュメントへ
EC2 の脆弱性自動チェックサービス。対象範囲はネットワーク・OS・ミドルウェアで、あらかじめ AWS が CVE などを元に準備したチェック項目に従い、不正アクセスができたりしないかなどを実際にチェックする。EC2 に専用のエージェントをインストールする必要あり。対象 OS は Windows または Linux 系 OS。EC2 以外に対して脆弱性チェックを行うことはできない。自作の Web アプリケーションの脆弱性チェックをしてくれるわけではない。
Amazon Kinesis とは | AWS ドキュメントへ
ストリームデータを処理するデータ処理基盤。 ストリームデータとは、絶え間なくデータが流れてくるもので、例えばテレビの視聴データ、 家庭の電気・水道・ガス使用データ、SNS (ソーシャルネットワークサービス) での投稿・コメント・参照データ、 EC サイトの閲覧・カート操作・購入データなど、多種多様なものがある。 このような数十万・数百万件の大量データを、取りこぼしなく、遅延なく、順序を保ち、重複なく処理する。 ストリームデータを受け取る目的としては、課金・分析・不正検出・異常検出などを迅速に行いたい場合。

Amazon Kinesis Data Streams はストリームデータをアプリで処理する仕組み。 EC2 で、Kinesis API を叩いてデータを取得するアプリを動かしてもよいし、 Lambda につなげれば EC2 なしでもいける。数秒で処理可能。

Amazon Kinesis Data Firehose はアプリ構築なしで Amazon S3Amazon RedshiftAmazon Elasticsearch に自動的に格納する仕組み。データ保存・分析用途に使うとよい。数分の遅延あり。

Amazon Kinesis Data Analytics は、ストリームデータを SQL で処理することができる。 分析結果を S3 や Redshift に格納することができる。 また、SQL で一定条件のものを抽出し、再度 Kinesis Streams に流して、Lambda で処理し、通知したり DynamoDB や RDS に反映させたりすることができる。

Amazon Lex とは | AWS ドキュメントへ
音声やテキストを使用したチャットボットを構築できる。 例えば、飲食店の予約サービスとして、「何名」「コース」「日時」の入力を受け付けることで「予約が完了」と 設定画面で定義する感じ。テキストでもいいし、音声をテキストに変換するエンジンもあるので、それを使ってもよい。 細かなロジック制御 (例えば予約が一杯でないか) などは Lambda 等と連携して実現する。
Amazon Lightsail とは | AWS ドキュメントへ
一言でいうなら「カンタンでシンプルなAWS」。 プランの例をあげると、下記のとおり (実際は 1時間ごとの課金)。
  • メモリ512MB/1コア/20GB SSD/1TB 転送量で $5/月。
  • メモリ1GB/1コア/30GB SSD/2TB 転送量で $10/月。
  • メモリ2GB/1コア/40GB SSD/3TB 転送量で $20/月。
静的 IP アドレス・DNS管理・サーバ監視込み。シンプルな専用管理画面。 その分素の AWS と比べて、ネットワーク制限や VPC 設定等、できなくなっていることは多い。
Amazon Machine Learning とは | AWS ドキュメントへ
機械学習サービス。 例えば、1時間ごとの気温・風向きと、そのときの天気 (晴れ・曇など) を学習させると、 気温・風向きを入力すると想定される天気を出力、という天気予測システムができる (もちろん実際は、気温と風向きで天気が決まるほど話は単純ではない)。
Amazon Macie とは | AWS ドキュメントへ
S3 や CloudWatch にあるデータについて、不審と思われるアクションが行われた場合に通知する仕組み。 「不審」とは、例えば
  • 通常とは異なる IP アドレスから大量のダウンロードがあった
  • 通常機密コンテンツにアクセスしないユーザーが大量のソースコードをダウンロードした
など。なお、できることは通知のみで、遮断・保護はできない (検知したら Lambda 起動はできるので即時に権限変更やユーザ削除などはできなくはないが、実質的には難しいのでは?)。
Amazon Mobile Analytics とは | AWS ドキュメントへ
モバイルアプリの使用状況の分析ツール。 この機能は現在 Amazon Pinpoint に取り込まれているので、そちらを使うのがよろしいでしょう。
Amazon MQ とは | AWS ドキュメントへ
詳細は こちら
Amazon Neptune とは | AWS ドキュメントへ
グラフデータベースサービス。 業界標準である Property Graph (ノード・リレーションシップ・プロパティからなる) を作れて、 クエリ言語として Gremlin と SPARQL をサポート。 推奨エンジン、不正検出、知識グラフ、創薬、ネットワークセキュリティなどで使えるらしい。
Amazon Pinpoint とは | AWS ドキュメントへ
アプリケーションの使用状況し、分析したセグメント情報を利用してアプリへのプッシュ通知や、SMS、メール送信を行える。
Amazon Polly とは | AWS ドキュメントへ
テキスト読み上げサービス。文字列を渡すと音声 (mp3等) で返してくれるサービス。 日本語可。SSML という形式でタグ表記をすることで、読み上げ速度・音程・強弱・文章間の休止時間などを指定できる。 質については Youtube 等に動画が上がっているので聞いてみてほしい。個人的には「悪くない」と思った。 実用例としては Amazon Connect を参照。
Amazon QuickSight とは | AWS ドキュメントへ
BIツール。多量のデータについて GUI 上で集計・抽出・分類したり、グラフや表形式にして、レポートや分析を行うことができる。
Amazon Redshift とは | AWS ドキュメントへ
データウェアハウス (DWH) エンジン。DWH とは「データ倉庫」の意味で、数千万件や数億万件の売上データをどーんと突っ込んで、 年齢層や地域層ごとの分析ができたりする。その場その場で切り口を変えても動作するよう、いちいちインデックスなどを張ったりしなくても、 それなりに高速に動くようになっている。 Redshift のベースは Matrix という製品であるが、そこに Amazon が PostgreSQL 互換のインタフェースを追加したので、PostgreSQL と似たような感じで操作ができる。 また Amazon QuickSight のような BI ツール経由で操作することもできる。Redshift は「赤方偏移」の意味の英単語で、 オンプレからクラウドにデータがどんどん遠ざかっている的なことらしい。

詳細は こちら

Amazon Redshift Spectrum とは | AWS ドキュメントへ
S3 オブジェクトに対して Redshift
Amazon Rekognition とは | AWS ドキュメントへ
画像解析サービス。画像内の物体 (顔なのか自転車なのか家具なのか本なのか)、顔の位置・目/鼻/口などのパーツの位置、性別・表情 (笑っているかなど)、他の画像の顔の比較 (数万枚の画像の中から、特定の1人を探すなど) などなど。
Amazon Relational Database Service (RDS) とは | AWS ドキュメントへ
MySQL・MariaDB・PostgreSQL・SQL Server・Oracle などのデータベースエンジンを、簡単に立ち上げることができる。また、簡単に起動・終了したり、リプリケーションやリードレプリカ (読み取り専用の複製) を作成したり、定期的なバックアップや任意時点のデータ復旧も可能。EC2 を立ち上げてそこで DB を動かすことに比べると、インストール・設定・パッチ適用などの工数を削減できる。

詳細は こちら

Amazon Route 53 とは | AWS ドキュメントへ
DNS サービス。ドメインの AレコードやPTRレコードなどを設定する。 Route53 は定期的なヘルスチェック機能を持ち、失敗時にAレコードを別インスタンスにフェイルオーバーさせることも可能。

詳細は こちら

Amazon SageMaker とは | AWS ドキュメントへ
Amazon SageMaker は、「人間が」機械学習を学ぶためのトレーニングツール。 機械学習を学ぶにはかなりハードルが高いので、 Amazon SageMaker は、 あらかじめデータを集めておいたり、学習アルゴリズムを準備したり、 複数インスタンスでスケールする仕組みを準備しておいたり、 学習結果を S3 に配置して利用しやすくしたりして、 少ない労力で機械学習に慣れてもらおうという試み。 Sage とは「賢者」を意味する英単語なので、SageMaker は「賢者製造器」的な意味と思われる。
Amazon SimpleDB とは | AWS ドキュメントへ
NoSQL なデータベース。「ドメイン」という箱に「key-value」のペアを格納している形であるが、1ドメインは上限10GBであるなど制限が多い。DynamoDB が後継であるためそちらを使うとよい。SimpleDB は AWS のデータベース一覧ページからも外され、ゆくゆくは終了するであろうサービスと考えられれている。
Amazon Simple Email Service (SES) とは | AWS ドキュメントへ
メール送信サービス。メールマガジン等の大量メール送信用途に使われる。 SES は DKIM・SPF に対応している。 (他のメール送信サービスと同様に) バウンスメール率等を適切なレベルにするよう管理する必要がある。
Amazon Simple Notification Service (SNS) とは | AWS ドキュメントへ
Amazon SNS は、2つの側面があるサービスである。 ひとつは、スマートフォン等へのプッシュ通知・メール・SMS (ショートメール) などユーザへの通知サービス。 もうひとつは、ある処理が終わると後続処理として AWS LambdaSQS・http/https を実行するためのメッセージングサービス。

後者についての詳細は こちら

Amazon Simple Queue Service (SQS) とは | AWS ドキュメントへ
フルマネージドなメッセージキューイングサービス。 あるプログラムがキューにメッセージを送信し、それを別のプログラムで受信することができる。 使い所として、処理Aの後に処理Bを実行する場合、 もちろんそのまま実行してもよいのだが、このつながりを疎結合にしたい場合、 処理Bが時間がかかるなどの理由で非同期にしたい場合、処理Bを多重処理したい場合などの使用するとよい。 よくあるケースとしては、 ある処理の後にメール送信・PDF等のファイル生成・集計処理・データ削除・後続バッチ起動などを行いたい場合などなど。 キューの数・キューに入れるメッセージの数は無制限。 メッセージの保持期間は最大7日。メッセージはテキストで1メッセージあたり最大256KB。 標準キューと FIFO キューという 2種類があり、標準キューは順序性保持なし。 FIFO キューは順序性保持あり。 Amazon SQS においてメッセージを受信したい場合は Pull するしかない (Push はできない)。 Amazon SNS と組み合わせることで、Push 送信や、複数宛先への送信が可能となる。

詳細は こちら

Amazon Simple Storage Service (S3) とは | AWS ドキュメントへ
AWS の根幹を支えるストレージサービス。容量無制限。自動的にバックアップを生成。専用 SDK や専用 API にて操作する。ログファイルやデータファイル保存置き場とするのが一般的。 S3 に配置しておけば Web 上で一般に公開することができるため、 画像ファイルや HTML・CSS 等の置き場所として使うこともできる。 S3 に配置してある CSV・TSV 等のファイルを SQL で検索するには S3 Select を使う。 S3 に配置してあるファイルに対して Redshift でデータ分析するには Redshift Spectrum を使う。 あまりアクセスしないファイルは Amazon Glacier に置いておくと費用の節約になる。 詳細は こちら
Amazon Simple Workflow Service (SWF) とは | AWS ドキュメントへ
順次処理・分岐・エラー判定・ループといったワークフローを処理する仕組み。 個々のタスクを処理するモノ (Activity と呼ぶ) は SWF の API に接続し、処理開始の指示を待つ。 また、次に何をすべきかを決定するモノ (Decider と呼ぶ) があり、 こちらも SWF の API に接続し、何をすべきかを指示する。 Actvity は何をするかだけに集中し、Decider はタスク管理だけに集中するので、 疎結合が実現できるというわけである。また、Activity は複数存在してよいので、 全体としてスケールアウトできる作りになっている。 Activity と Decider は、AWS 外に存在する形態は可能なので、 オンプレミスとの連携も可能である。

SWF の API だけを使うこともできなくはないが、かなり複雑になってしまうのと、 リトライなどの処理をより簡単に行うため、SWF Flow Framework というフレームワークが準備されている。 これを使うことでより簡単に SWF を利用することができるが、 このフレームワークは Java と Ruby しか存在しない。

類似サービスとして AWS Step Functions がある。 Amazon は SWF よりも後発である AWS Setp Functions の使用を推奨している。

Amazon Sumerian とは | AWS ドキュメントへ
Amazon Time Sync Service とは | AWS ドキュメントへ
AWS の各リージョンにある原子時計を使った時刻同期サービス。 と言っても単なる NTP サーバであるので、Linux なり Windows なりで時刻同期先をこの NTP サーバに指定すればよい。 VPC でプライベートネットワークを構築した際は外部 NTP サーバに接続できなくなるが、 このような環境でも Amazon Time Sync Service には接続可能なのが特徴。 うるう秒は平準化される。
Amazon Translate とは | AWS ドキュメントへ
多言語への翻訳サービス。 リアルタイム翻訳 (逐次翻訳) と、一括のバッチ翻訳両方に対応。 2018/1 現在ベータであるが、日本語は未対応。
Amazon Transcribe とは | AWS ドキュメントへ
音声を元に文字起こしを行う。 WAVE・MP3 などに対応。 2018/1 現在、英語とスペイン語のみ。 解析結果のイメージは下記。文章全体と、 何秒目からどの単語が始まるかという情報が返ってくるので、 頭出しや音声とテキストの同期処理に活用できそうである。
         "transcripts":[
            {
               "transcript":" that's no answer",
            }
         ],
         "items":[
            {
               "start_time":"0.180",
               "end_time":"0.470",
               "word":"that's"
            },
            {
               "start_time":"0.470",
               "end_time":"0.710",
               "word":"no"
            },
            {
               "start_time":"0.710",
               "end_time":"1.080",
               "word":"answer"
            }
          ]
Amazon Virtual Private Cloud (VPC) とは | AWS ドキュメントへ
AWS におけるネットワーク管理の仕組み。 VPC を設定することで、パブリック・プライベートや、フロント・バックエンド・DB などネットワークセグメントを分割することができる。 VPC にインターネットゲートウェイというものを作ればインターネットに接続可能になるし、 作らなければインターネット接続不可になりセキュリティは向上する。

ややこしいのが、PaaS のサービスにおいて、「VPC 内部」のサービスと「VPC 外部」のサービスがあるということ。 例えば RDS は VPC 内部のサービスなので、プライベートネットワーク内に置くことができる。 一方、S3 は VPC 外部サービスなので、プライベートネットワーク内に置くことはできない (EC2 や RDS のように自分専用のインスタンスを自分で作成するものは VPC 内部に置ける、とも言える)。

S3 のような VPC 外のサービスに接続する場合、インターネットゲートウェイを作成する手もあるが、 VPC エンドポイントという IF を作ると、プライベートネットワークから AWS サービスに接続できる。

昔は VPC を使わない EC2 インスタンスを作ることができたが (EC2-Classic という)、 2013年頃 EC2 を作るときは VPC を使うのがデフォルトになったので、VPC だからこれができる/できない、というのを気にする必要はない。 今は自動的にデフォルト VPC やインターネットゲートウェイが作成されるため、 おそらくあなたは VPC を使っている可能性が高い。

余談だが、「VPC でのセグメントわけなんていらないじゃん」という人もいる。 例えば Lambda・S3・DynamoDB は全部「VPC 外」のサービスなので、 これを組み合わせて作ったシステムには VPC は出てこない。 VPC を使っていないから危険かと言うとそんなこともない。 「じゃあ VPC っていらないよね」 という話。

Amazon WorkDocs とは | AWS ドキュメントへ
エンタープライズ向けの、ストレージ・ファイル共有サービス。コメントを付けられたり、 編集中としてロックできたりする。 PC・スマホ・タブレット用のファイル同期ツールあり。 Dropbox 的なものだろうか。
Amazon WorkMail とは | AWS ドキュメントへ
一言でいうなら「Gmail と Google カレンダー」。 ブラウザ上でメール送受信やカレンダーでのスケジュール管理が行える。 Outlook やスマホ等、ブラウザ以外からの連携も可能。 Google の Gsuite よりちょっと安い。
Amazon WorkSpaces とは | AWS ドキュメントへ
クラウド上で Windows デスクトップ環境が使える。OS は Windows7・10。Office 利用可能なオプションもある。Windows・Mac・iOS・Android 向けに接続用のクライアントがあるので、それを実行して使う。ブラウザ上での接続や、リモートデスクトップも使用可能。 若干毛色は違うが、Amazon AppStream 2.0 というものもある。
Auto Scaling とは | AWS ドキュメントへ
CPU 使用率やリクエスト数など、様々な指標値を元に EC2 のインスタンスを起動したり削除したりする仕組み。 例えば「CPU 使用率が 80% 以上になったら、この AMI を元に新規インスタンスを作成する。 ただし上限は 10 インスタンスとする」といった定義を作っていくイメージ。 EC2 だけではなく、 Amazon ECS、 Amazon EC2 スポットフリート、 Amazon EMR クラスター、 AppStream 2.0 フリート、 Amazon DynamoDBAmazon Aurora レプリカ数 などの制御にも使える。 また、特定日時や cron 書式での繰り返し制御も可能なので、アクセスが多い夜はインスタンス数を多めに、 朝方は少なめに、といったことも可能。
AWS Application Discovery Service とは | AWS ドキュメントへ
オンプレミスから AWS の移行にあたり、 オンプレミスの OS種類・マシン名・CPU・メモリ・ディスク・カーネルモジュール・起動中プロセス情報・ネットワーク通信 (どの IP/ポートからどの IP/ポートへ) など調べ、そのデータを Application Discovery Service にアップロードする。 そのデータを分析することで、AWS でのインスタンスサイズやインスタンス数がどの程度必要かなどを分析するのが目的 (Application Discovery Service が行うのはデータ収集までで、分析は人が行う模様)。OS にエージェントをインストールして情報収集するエージェントベースと、VMware の機能を利用してエージェントなしで情報収集するエージェントレスの 2種類がある (エージェントレスは VMware 必須)。
AWS AppSync とは | AWS ドキュメントへ
AWS Artifact とは | AWS ドキュメントへ
AWS Artifact は、認証やセキュリティ基準について「第三者機関が AWS を監査したときのレポート」を閲覧できるサービス。 例えば Amazon は PCI DSS とか ISO 27001 準拠とうたっているが、本当に認証を受けたのかの証拠として活用できる。 たいそうな名前がついているが、単に数百ページの PDF が何個か置いてあるだけである。 「こんなのサイト上に PDF ファイルを置いておけばいいじゃん」と思うのだが、機密事項であり機密保持契約条件に同意が必要とのこと。
AWS Batch とは | AWS ドキュメントへ
AWS でバッチ処理を自動的に、並列分散しつつ行うための仕組み。 まず開発者は、ジョブ処理を Docker コンテナ上で実装する必要がある。 そして入り口となるジョブキューを定義し、キューイングされたらどのジョブが動くべきか、 そのジョブが終わったら後はどのジョブが動くべきか、といった依存関係を定義する。 AWS Batch は、クラスタ管理、ジョブキュー、ジョブスケジューラの管理を行ってくれて、 必要なときに必要なだけのクラスタを自動構築して、コンテナをデプロイしてくれる。 処理が終わったらクラスタはなくなる。 インスタンスサイズや、クラスタの CPU・メモリなどのリソースのことをあまり考えなくて良いというサービス (各コンテナの vCPU とメモリ量は指定しないといけないので全く考えなくてよいわけではない)。 デメリットとしては、Docker コンテナ化が必須 (EC2 や Lambda との連携はできない)、 分岐などの複雑なジョブフローは定義できない。
AWS Certificate Manager (ACM) とは | AWS ドキュメントへ
ELBCloudFrontAPI GatewayElastic Beanstalk 向けの SSL/TLS 証明書の発行を行う。 SSL/TLS 証明書は無料で、ACM 自体も無料 (ELB や CloudFront の費用に含まれるため)。 EC2 単体には使えないし、秘密鍵等を持ち出して AWS 外で使うこともできないことに注意。
AWS CloudFormation とは | AWS ドキュメントへ
CloudFormation は、JSON または YAML で記述されたテンプレートファイルを元に、 EC2 や RDS 等のインスタンスを生成することができる仕組みである。 管理画面でマウスをポチポチしなくてもいいので、 複数環境構築時の操作ミス防止であったり、 スケールアウトで台数を増やしたり、 サーバの設定変更を出来る限り避けるために毎回インスタンスを作り直したり (つまり Immutable Infrastructure)、 Infrastructure as Code が実現できるので git で履歴管理したり、 等々がメリット。 「AWS CloudFormation デザイナー」を使うとブラウザ上で GUI で AWS の構成を設計し、 CloudFormation テンプレートを生成できる。 「CloudFormer」を使うと、既に存在するインスタンスを元にテンプレートファイルを作ってくれる。 CloudFormation 自体は無料。

CloudFormation の管理対象は AWS サービスであって、例えば EC2 内部の Apache 等のミドルウェアやアプリケーションは対象外である (起動時のスクリプトでセットアップする)。ミドルウェア・アプリケーション領域は AWS OpsWorks での管理を検討するとよい

AWS CloudHSM とは | AWS ドキュメントへ
HSM とは「ハードウェアセキュリティモジュール」のこと。物理的な耐タンパー性を持った暗号モジュール (物理的な拡張カードのようなもの) が AWS のデータセンタ内に用意されており、あなた専用の暗号モジュールとして専有するので、そこに鍵を入れておくと安心できますよ、という話。 CloudHSM 自身に暗号化・復号・署名等の機能がある。 Oracle や SQL Server などの TDE (Transparent Data Encryption=透過的データ暗号化) の鍵を置いておくこともできる。 2013年発表当時は初期費用 $5,000(!) という、クラウドっぽくない価格設定であったが、2018/1 現在では 1.4〜2.0USD/時間 程度で利用可能な模様。 鍵管理は行いたいが、ハードウェアの専有は不要ということであれば、AWS Key Management Service を検討するとよい。
AWS CloudTrail とは | AWS ドキュメントへ
AWS コンソール操作や API 呼び出しを記録する。例えば「この EC2 インスタンスを消したのは誰だ!」的なことが追跡可能となる。直近7日分については、AWS コンソールで検索が可能。設定を有効にすることで、7日超のデータを S3 にログとして残すことが可能。
AWS Cloud9 とは | AWS ドキュメントへ

Cloud9 は 2つの機能がある。

1つ目は Cloud ShellCloud Shell と同じく、管理用・作業用インスタンスとしての機能。 環境を作成すると自動的に EC2 インスタンスが作成され、ブラウザ上で ssh でログインした状態になる (すでに EC2 インスタンスがある場合は、新規でインスタンスを作らずに、既存インスタンスを利用することもできる)。 EC2 インスタンスには AWS CLI 管理用コマンドや、Java・Python・PHP・Ruby 等の実行環境、 MySQL クライアントなど揃っているので、インスタンスの起動・停止・インスタンスサイズ変更や、 S3・RDS のデータ確認や更新など様々な作業が行える。

実体としては単なる Amazon Linux なので、vi・emacs・awk・sh スクリプト等も自由自在。 もちろん root になることもできる。

2つ目は開発環境。 ブラウザに IDE 機能があり、Java・Ruby・Python・PHP・Go・Node.js・C++ で開発ができる。 同じ AWS アカウントにぶら下がっているユーザ間であれば、チャットや開発画面共有ができる。 少なくとも Lambda アプリは作れたが、その他は作れるのだろうか?

AWS CodeBuild とは | AWS ドキュメントへ
フルマネージドなアプリケーションビルドのサービス。 ビルドサーバを自前で構築する場合、EC2 インスタンスを作成し、Jenkins をインストールすることになるが、OS などのメンテナンスの手間がかかる。 CodeBuild だとビルドサーバの管理を AWS に全部おまかせできる。

Circle CI や Travis CI などの外部サービスを利用する手もあるが、プラベートリポジトリかつ同時ビルド数をある程度確保すると、結構なお金がかかる。

CodeBuild のメリットは、ビルド時間によって課金が行われること(1分単位)。 また、並列ビルドができるので、ビルド待ちが起こらないこと (最大数20。上限緩和リクエスト可能)。 単体では毎日自動でビルドする機能はないが、AWS CodePipeline からキックさせることができる。 ソースは AWS CodeCommit や GitHub から取得できる。 プルリクエストからのビルドは、2018/1 現在では Pull Request → Amazon SNSAWS Lambda → CodeBuild とつながなければならない。 自前の Docker コンテナを使ってビルドすることもできるので、各種パッケージインストール済みのコンテナを用意しておくと、ビルド時間を短縮できる。

AWS CodeCommit とは | AWS ドキュメントへ
マネージドなソース管理サービス。一言でいうと「GitHub のようなもの」。 GitHub や BitBucket などの Git ホスティングサービスを利用していた人は、 使いたい機能が CodeCommit に存在するか確認したほうがよいと思う。 ちなみに CodeCommit は 2015/7 にサービスインして、トリガ (WebHook) が実装されたのが 2016/3。 プルリクエストを実装したのが 2017/11。機能追加に結構時間がかかっているイメージではある。
AWS CodeDeploy とは | AWS ドキュメントへ
EC2・オンプレミス・Lambda にアプリケーションをデプロイしてくれるサービス。 EC2・オンプレミスにデプロイする場合、単純に言うと Java なら WAR ファイルなり Python なら .py ファイルなりを配置したり、 git pull したりして、最新ファイルをサーバにアップロードすればよい。 しかしながら、もっと本格的に行うなら、途中でエラーにならないよう、 EC2 インスタンスを ELB から切り離し、デプロイし、ELB に再び接続するなどの工夫が必要になる。 また、インスタンスが数十・数百・数千になると単純に時間もかかり、どれが成功したかを管理するのも一手間である。

CodeDeploy を使うと、ELB 切り離し・復旧や、管理画面でのデプロイ状況確認やログ確認が容易に行える。

Auto Scaling と連携しており、新規インスタンスが作成されると CodeDeploy にて適切なアプリがデプロイされる。

EC2 へのデプロイでは、Blue/Green デプロイにも対応している。具体的には、 新しいインスタンス群を新規作成し、最新アプリをデプロイし、 動作確認後、ELB を新インスタンス群に切り替え、その後古いインスタンス群を全部削除することができる。

AWS CodePipeline とは | AWS ドキュメントへ
継続的デリバリーの管理サービス。 GitHub や AWS CodeCommit 等で管理するソースを、 Jenkins や AWS CodeBuild でビルドし、 テストをし、 AWS CodeDeploy 等でデプロイする、という一連のワークフローを設定・管理するものである。
AWS CodeStar とは | AWS ドキュメントへ
実行環境 (EC2・Lambda など)、言語 (Java・Node.js・PHP・Python 等)、ソース管理 (AWS CodeCommit・GitHub) などの基本情報を選択すると、 AWS CodePipeline, AWS CodeBuild, CodeDeploy などをよい感じに設定してくれて、 コミット → 自動デプロイ という環境を構築してくれるサービス。 CodeStar を使わず個別に設定しても全く問題ないが、CodeStar を使うと簡単・便利である、という位置づけ。
AWS Config とは | AWS ドキュメントへ
AWS の設定変更、例えば EC2 インスタンス作成や、S3 バケットの作成などの履歴を保存し、 変更が行われたら SNS 経由で通知する。 また、「EBS は暗号化必須とする」「SSH ポートを開放しない」などのルールを設定することができ、 このルールに反した場合は通知が行われる。 防止できるわけではないが、監査・コンプライアンス・証跡 という観点からの要望なのだろう。 しかしこのサービス名はあまりにもわかりづらいと思うがどうか。
AWS Database Migration Service とは | AWS ドキュメントへ
データベース移行ツール。 オンプレミス → RDS、オンプレミス → EC2上の DB、EC2 上の DB → RDS に対応。その逆もできる。 Oracle から MySQL、MySQL から Aurora など、異なるデータベースエンジンでも対応可能。 まずは初期移行し (全テーブルを 1万行ずつ SELECT する)、その後継続して差分移行も可能 (バイナリログや REDO ログから変更点を読み取る)。 DB を止めなくてもよいのが特徴。 AWS 内に DMS インスタンスという EC2 インスタンスを立てて、DMS インスタンスが移行元 DB からデータを取得し、 移行先 DB にデータを突っ込み、移行が完了すれば DMS インスタンスを削除する、というイメージ。 逆に言うと、同じ DB で、移行時の停止が許容されるのであれば、停止→ダンプ→新DBにリストア でよい。

DB 移行経験がある人なら想像できると思うが、なんでも自動でやってくれるかというとそうではなく、 プライマリキーがないと差分更新できないとか、Oracle で LOB 列のみ更新は反映されないとか、Truncate は反映されないとか、MySQL の AUTO_INCREMENT 属性は移行されないなど制限事項は山ほどあるので、結局は十分な検証と試験が必要になる。

AWS Data Pipeline とは | AWS ドキュメントへ
定期的かつ簡易的な汎用データ処理ツール。 用途としては定期的なデータ集計とか、ファイルコピーとか、ファイルから DB への取り込みとか、バックアップとか、レポートとかいろいろ。 入出力可能なデバイスは DynamoDBS3RDSRedshift 等で、 例えば RDS で SQL を実行した結果を S3 に保存する、といったことができる。 また、AWS CLI の結果や、任意のシェルスクリプトを実行させることもできる。 1日1回、1時間に1回などのスケジューリング機能も備える。 Data Pipeline では複雑なデータ変換などの処理は行えない。 そのような用途には AWS Glue の使用を検討してほしい。
AWS Device Farm とは | AWS ドキュメントへ
iOS/Android/Fire OS のリモートテストツール。 アプリの apk 等と、JUnit/TestNG/Calabash/UI Automation/UI Automator/XCTest などで記述したテストコードを登録することで、 テストの繰り返し実行が可能となる。 さらに、一部端末についてはリモートでの画面操作が可能である (当ページ管理人は Remote TestKit のようなリモート操作が出来るのが普通だと思っていたのだが、 AWS Device Farm はリモート操作ができるのは一部端末のみで、 しかもサービスイン当初はリモート操作自体できなかったようで、かなりびっくりしてしまった)。 対応端末については、Sharp も Fujitsu も Panasonic も Kyocera もない。 日本市場に弱いと言うべきか、相手にされないくらいの弱小メーカーになってしまったと言うべきか。
AWS Direct Connect とは | AWS ドキュメントへ
専用線接続。自前のデータセンタがあり、AWS と接続したい場合に使う。InternetVPN を使ってもいいが、InternetVPN の不安定さを回避したい、高速に接続したい、セキュリティ的にインターネット経由にしたくない、安定的な速度を保証したい、といった場合に使う。 日本では東京・大阪に接続ポイントがあり、そこにラックスペースを借りるか、そこにすでに接続済の通信事業者と契約する。
AWS Directory Service とは | AWS ドキュメントへ
早い話が「マイクロソフトの Active Directory (以下 AD)」である。AWS マネージメントコンソール (管理画面)、WorkDocs、WorkSpaces、WorkMail、EC2 のユーザ管理を AD 化することができる (EC2 の場合、EC2 Simple Systems Manager (EC2 SSM) の事前導入が必要)。 いくつかのプランがあり、「Microsoft AD」はそのまんま Windows Server 2012 R2 で動く AD。「Simple AD」は Samba を用いた AD。「AD Connector」は外部のドメインコントローラに proxy 経由で接続する構成。 より一般的なディレクトリサービスは Amazon Cloud Directory を参照。
AWS Elastic Beanstalk とは | AWS ドキュメントへ
AWS が提供する PaaS。アプリをデプロイするだけでよく、サーバ管理不要で、 オートスケールなどよい感じに自動でやってあげます、という触れ込みであるが、 実態としては EC2 をラップしたものなので、普通にログインもできる。 なお、Beanstalk は "Beans Talk" ではなく "Bean(豆) の Stalk (茎)"。 なので、「ビーンズ・トーク」ではなく「ビーンスターク」。1単語である。 ちなみに童話の「ジャックと豆の木」は "Jack and the Beanstalk" である。
AWS Elemental MediaConvert とは | AWS ドキュメントへ
AWS Elemental MediaLive とは | AWS ドキュメントへ
AWS Fargate とは | AWS ドキュメントへ
サーバ・クラスタ管理が不要なコンテナ実行の仕組み。 位置づけは Amazon ECS にまとめて書いたので、そちらを読んでほしい。
AWS Glue とは | AWS ドキュメントへ

マネージドな ETL サービス。 ETL とは抽出 (Extract)、変換 (Transform)、ロード (Load) を指す一般的な用語で、 ファイル等のデータからデータベースにデータを格納する際、どのようなデータ・システムであっても、たいていは抽出・変換・ロードが必要になってくるため、その部分をフレームワーク化した考え方である。

AWS Glue の抽出は、RDS・S3・EC2 上の DB などからデータを取得できる。 変換は、取得対象カラムの選択、カラムの分割、値の変換 (Man を 1に、Woman を 2 に、など)、日付フォーマット変換、タイムゾーン変換、通貨変換、行の集約、行と列の置換、などを定義できる。 ロードは、Redshift・S3 等にデータを格納することができる。

AWS Glue はバッチ指向であり、最短で 5分単位の起動しかできない。 リアルタイム性が必要なストリームデータ処理については Amazon Kinesis の使用を検討してほしい。 また、複雑性のないデータコピー程度の作業については、よりシンプルな AWS Data Pipeline の使用を検討してほしい。

AWS Greengrass とは | AWS ドキュメントへ

IoT デバイス上で AWS 環境 (の一部) を動かす仕組み。 デバイスで AWS Lambda が動くようになっている。2018/1 現在で言語は Python・Node・Java に対応。 また、データを AWS に簡単に同期することができる (そのとき接続不可であっても、接続状態が回復したらまとめて送信してくれる)。 さらに機械学習モデルを利用した推論が可能。Amazon Machine Learning で学習した機械学習モデルを IoT デバイス上に持ち込むことで、 例えば掘削装置のダイヤモンドヘッドに関する予測モデルを Amazon Machine Learning 上で構築し、それを IoT デバイス上に持ち込むことで、クラウド接続のない地下でもダイヤモンドの摩耗と消費を予測することができる。

なんのためにこれが必要かと言うと、例えば数千万台の IoT デバイスで Lambda 実行・データ送信・機械学習推論をするとして、毎回クラウドに通信しているとレスポンスが遅くなるし、クラウド側リソースが大量に必要だし、通信不可の状態だとどうしようもない。 そこで IoT デバイスでできることはなるべく IoT デバイス上でやってしまいましょうという考え方がある (「エッジコンピューティング」と呼ばれる)。例として、計測したデータをクラウドに送る場合、毎分データを送るのではなく、サマリデータを 1時間に一度送りましょう、といったことである。Greengrass では IoT デバイスに特化した OS・言語を使うのではなく、クラウドと同じような環境を準備するので学習コストを抑える効果がある。

AWS Identity and Access Management (IAM) とは | AWS ドキュメントへ

AWS におけるアカウントの権限管理の仕組み。 AWS で最初に作る「AWS アカウント」は何でもできるいわば root 権限なので、これで運用することは非常に危険である。 IAM を適切に使うことで、情報秘匿・情報漏えい対策・操作ミスによる事故防止につなげることができる。

IAM ユーザを作成し、ロールを付与することで、そのユーザが何をできるのかの権限を管理する。 ロールとは、例えば EC2 インスタンスを作成可能とか、S3 のファイルを閲覧可能、など。

IAM ユーザ単体での管理は煩雑なので、グループを作成し複数ユーザをたばねて管理することも可能。 プログラムが AWS の API を使うときは、アクセスキーID・シークレットアクセスキーという情報を使う。 2つまで設定可能なので、3ヶ月ごとに更新するなどのキーローテーションが実現できる。

IAM は「アイアム」と発音する。

AWS IoT とは | AWS ドキュメントへ

AWS の IoT 基盤。IoT とは、「モノのインターネット」と訳されるが、身の回りのあらゆるもの、 例えば車・エアコン・テレビ・カメラ・農地・電気水道ガスメーターなど、何でもアリである。 下記のように多くのサービスがある。

  • AWS IoT Core … IoT デバイスから Lambda・Kinesis・S3・DynamoDB 等、AWS サービスを利用しやすくするための基盤。
  • AWS IoT ボタン … Amazon Dash Button という、ボタンを押すとオムツやお茶が届くというボタンが販売されている。 このようなボタン押下で何かが起こるサービスを自分でも作れるのが AWS IoT ボタンである。ただし、 2018/1 現在、日本では技適マーク未認証と思われるので利用できないと思われる。
  • AWS IoT 1-Click … 任意のデバイスに AWS Lambda トリガーをワンクリックで作成する。
  • AWS IoT Analytics … IoT から受信したデータを分析するサービス。SQL を使うこともできる。 メッセージのタイムスタンプが自動的に保存されるため時系列分析が簡単であるとか、タイムスタンプとデバイス ID でパーティショニングされるなど、IoT 向けな内容になっている。
  • AWS IoT Device Management … IoT デバイスのデバイス名・種類・製造年等を一元管理でき、デバイス上で再起動・システム更新などをリモートから行うことができる。
  • AWS IoT Device Defender … IoT デバイスのセキュリティ管理を行う。デバイス上にエージェントを仕込んでおくことで、証明書期限切れ・オープンしているポート数・データ転送量等を AWS に送信する。AWS では、AWS にIoT Device Defner が各種データを見て異常検知を行い、AWS CloudWatchAmazon SNS にて通知を行う。
  • Amazon FreeRTOS … 組み込み用のデバイス用オープンソース OS である FreeRTOS を Amazon がカスタマイズし、AWS IoT Core や AWS Greengrass などと簡単に連携できるようにしたもの。
AWS Key Management Service とは | AWS ドキュメントへ
鍵の生成、鍵のインポート、鍵の無効化・削除が行えるサービス。各種操作についてログを記録可能。 RDS・S3・SES・EBS・Redshift など、データストレージ系のサービスにおいて暗号化するきの鍵の保管庫として KMS を使用できる。 もっとしっかり鍵管理を行いたい場合、ハードウェア専有タイプである AWS CloudHSM を検討するとよい。
AWS Lambda とは | AWS ドキュメントへ

サーバレスでのプログラム実行。EC2 のようにサーバを確保しなくても、 あらかじめ関数を定義しておけばプログラムが実行される。必然的にインフラ管理が不要となる。 関数で使える言語は、Node.js、Python、Java、C#。 データのインプットは Amazon S3Amazon KinesisDynamoDBAPI GatewaySNS など。

内部実装は Amazon Linux で動くコンテナであるため、Linux コマンドが使えたりする。 また、Lambda 内部のファイルシステムは永続化されない。 永続化したいデータは S3 なり何なりに保存しておくこと。 実行は300秒以内という上限がある。 典型的な使い方は、「画像が S3 にアップされたら、複数サイズのサムネイルを作る」。

AWS Step Functions にて、Lambda のフロー制御を行える。

Amazon Lumberyard とは | AWS ドキュメントへ
3D ゲームエンジン・開発ツール。無料。 対象環境は PC・Xbox One・PlayStation 4・iOS・Android。 開発ツールは Windows で動作する。 Lumberyard は「材木置場」という意味の英単語。 AWS 連携がやりやすくはなっているが、AWS 接続が必須というわけではない (オンプレミスサーバと接続してもよい)。 しかしながら AWS の代替ウェブサービスを使用するのは NG とのこと (他のクラウドはダメらしい)。
AWS Managed Services とは | AWS ドキュメントへ
AWS パートナー会社 (SIer とか) が、運用管理を手助けしてあげますよというサービス。 OS パッチの管理、自動バックアップ、マルウェア対策・侵入検知・侵入保護などのセキュリティ管理、 障害管理、レポートなど。 「詳細はお問い合わせください」だそうで、詳細も価格も不明。
AWS Marketplace とは | AWS ドキュメントへ
マーケットプレイスとは「市場」のこと。Amazon が市場を整備し、そこに Amazon とは関係ない第三者が商品を出店し、利用者は自由に購入することができる、という関係性。料金は一括して Amazon に支払う。ファイアウォール・NAS・VPNサーバ等が主力と思われるが、FreeBSD・CentOS など、無料のものもある。EC2 上にデプロイして利用する形と、SaaS としての「利用権」という形式の 2通りある。
AWS Mobile Hub とは | AWS ドキュメントへ
AWS と連携するスマホアプリの雛形ソースを自動生成してあげますよ、というサービス。 AWS と連携する部分は、例えば認証は Amazon Cognito、プッシュ通知は Amazon SNS、サーバサイドロジックは AWS Lambda を呼び出すようになっている。 もちろん自分のつくりたいアプリになるようにカスタマイズは必要だが、基盤部分は自動生成されるのでゼロから開発するよりは大変ラクである。 生成したソースは Android Studio や Xcode でビルドする。
AWS OpsWorks とは | AWS ドキュメントへ
OpsWorks は、Chef や Puppet をベースにした OS・ミドルウェアの構成自動管理ツールである。 例えば Apache をインストールする際に、Apache パッケージのインストールや設定ファイル修正を自動化することができる。 AWS OpsWorks for Chef Automate は、マネージドな Chef サーバで、Chef レシピを使って環境構築を自動化することができる。 AWS OpsWorks for Puppet Enterprise も同様に、Chef と同種である Puppet を使って環境構築を自動化することができる。 AWS OpsWorks スタックは、EC2・RDS・EBS・オンプレミス等にレイヤ等の抽象概念を持ち込み、統一的に環境構築ができるものである (と思うがよくわからない)。
AWS Organizations とは | AWS ドキュメントへ
組織内で複数のユーザが AWS を利用するにあたり、 複数の AWS アカウントを統合して管理して共通ポリシーを設定したり、 請求を一本化させることができるサービス。 無料。
AWS Personal Health Dashboard とは | AWS ドキュメントへ
AWS Service Health Dashboard は全リージョン・全サービスの情報であるが、 AWS Personal Health Dashboard は自分が使っているリージョン・サービスの情報のみが表示される。 また、メンテナンス予定の情報も表示される。 過去 7日分の情報しか表示されないのはなんとかしてほしい。
AWS Schema Conversion Tool とは | AWS ドキュメントへ
AWS Schema Conversion Tool は AWS Database Migration Service の一部の機能で、 異なるデータベースでスキーマ定義を変換するツールである (要は Oracle の DB を参照し、 MySQL 用の CREATE TABLE などの DDL を作成したり、Oracle 向け SQL 文を MySQL 向けに変換するツールということ)。

対応しているパターンは下記。

  • SQL Server → RDS の Aurora・MySQL・PostgreSQL・SQL Server
  • MySQL → RDS の Aurora・MySQL・PostgreSQL
  • Oracle → RDS の Aurora・MySQL・PostgreSQL・Oracle・Redshift
  • PostgreSQL → RDS の Aurora・MySQL・PostgreSQL

すべて自動で変換できるわけではないが、 変換できない部分はその旨レポートが出力されるので、 後は手動で頑張ることになる。

AWS Secrets Manager とは | AWS ドキュメントへ
AWS Server Migration Service とは | AWS ドキュメントへ

オンプレミスにて VMware を使っている場合、 AWS Server Migration Service を使うことで EC2 用の仮想マシンイメージを作成できる。 増分レプリケーションにも対応。

VM Import/Export の後継的な機能。

AWS Service Catalog とは | AWS ドキュメントへ

組織内で使用可能な AWS サービスのカタログを定義できる。 具体的には組織全体の管理者が、制約を踏まえつつ、雛形となる EC2・ELB・セキュリティグループ等を決め、 AWS CloudFormation や AMI として定義する。制約とは例えばテスト環境ならインスタンスタイプは t2.micro か t2.small のみ、など。

利用者は、与えられたカタログを使って EC2 などのインスタンスを作成する。

率直に言って、これがマッチする組織形態が全くイメージできない。ガバナンス重視な大企業向けだと思うが、 全社的に適用したい制約なんて果たして存在するのか?

AWS Service Health Dashboard とは | AWS ドキュメントへ
EC2 や RDS など、AWS が提供する各サービスについて、現在トラブルが発生しているかを表示しているページのこと。 URL は https://status.aws.amazon.com/ である。 また、直近 1年間のトラブル履歴についても参照可能であるが、見づらいにもほどがある。

詳細は こちらAWS Personal Health Dashboard も参照のこと。

AWS Shield Standard とは | AWS ドキュメントへ
AWS WAF に付属する、DDoS からの保護機能。具体的には SYN flood や UDP リフレクタ等の攻撃を防ぐことができる。 無料であり、AWS WAF にて最初からで ON になっている (OFF にはできないっぽい)。 AWS Shield Advanced も参照。
AWS Shield Advanced とは | AWS ドキュメントへ
AWS Shield Standard に加え、下記のようなより高度な防御を行う。 さらなる DDos 緩和、L7 トラフィックの監視、攻撃に関するレポート、AWS のDDoS 対応チームのサポート (主体的に動いてくれるらしい)、ELB/CloudFront/Route 53 について DDoS 攻撃に起因する料金上昇時の調整)。 なお、1年間契約 + 3,000 USD/月 + ELB/CloudFrontデータアウト料金に上乗せ なので、 それなりの規模のサービスを前提としているのであろう。
AWS Single Sign-On とは | AWS ドキュメントへ
自組織が利用している既存の認証と連携し、複数の AWS アカウントにログインを可能とする仕組み。 AWS に加え、Office 365 や Slack など、外部アプリケーションへのログインも可能。
AWS Snowball とは | AWS ドキュメントへ
データセンタなどに置いてあるペタバイト程度の大量データを AWS に物理的に転送するためのもの。 AWS から 80TB の HDD が郵送で送られてくるので、 データセンタなどにあるオンプレミスからデータを HDD にコピーして、 AWS へ HDD を送り返すと、AWS が AWS 内にデータを上げてくれる感じ。 AWS Snowball EdgeAWS Snowmobile も参照。
AWS Snowball Edge とは | AWS ドキュメントへ
AWS Snowball の進化版。 Snowball は 80TB であったが、Snowball Edge は 100TB。 Snowball はディスクのみであるが、Snowball Edge はディスク + コンピュータであるため、 NFS 接続・Lambda 実行・Snowball Edge 複数台でのクラスタリング等、より賢いことができる。
AWS Snowmobile とは | AWS ドキュメントへ
Snowball のもっとデカい版。 長さ 13m、高さ 3m のコンテナに、ストレージが詰め込まれている。1つあたり容量 100PB。 トラックで運ばれてくるので、既存データセンタに接続し、データを吸い上げる。 トラックが帰って、そのうち S3 あたりにファイルがドンと置かれる感じ。 AWS SnowballAWS Snowball Edge も参照。
AWS Step Functions とは | AWS ドキュメントへ
AWS Lambda の処理フロー、例えば順次処理・分岐・エラー判定・ループなどを定義する。 個々の Lambda 関数は小さなマイクロサービスとしておいて、それぞれのつながりを AWS Step Functions で定義することで、各 Lambda 関数は次に何を実行するのかを知らなくてよくなるので、 疎結合を実現できる。 Lambda 以外で使うことも可能だが、push 型ではなく pull 型にはなる (自分で Step Functions の API を叩いて、タスクがあるかポーリングする)。 類似サービスとして Amazon SWF があるが、Amazon は後発である AWS Setp Functions の使用を推奨している。
AWS Storage Gateway とは | AWS ドキュメントへ
Storage Gateway を使うと、オンプレミスのデータを S3 や EBS に転送することができる。 バックアップや DR (災害対策) 用。
AWS サポート とは | AWS ドキュメントへ
AWS のサポートには、ベーシック・開発者・ビジネス・エンタープライズの 4つのプランがある。 上位プランほど、問い合わせ時間・初回応答時間・電話やチャット可能・設計レビュー可否・担当エンジニアアサインなどの優遇措置があるが、 もちろん上位プランのほうが金額が高い (それぞれのプランの月額サポート費用: 無料・$29〜・$100〜・$15,000〜)。
AWS Trusted Advisor とは | AWS ドキュメントへ
コスト・セキュリティ・対障害性・パフォーマンスの観点で、現在の AWS 設定をチェックし、 改善候補を教えてくれるサービス。誰もでも使えるが、AWS サポートのプランが「ベーシック」 「開発者プラン」の場合は 4項目のみ。「ビジネス」「エンタープライズ」の場合は全項目利用可。 具体的には、この EC2 や EBS は使っていないんじゃないかとか、逆にこの EC2 は CPU 使用率が高すぎるのでインスタンスサイズの見直しをしたほうがよいとか、このポートが開放されているとか、RDS のバックアップ期間が 0日になっているがこれでよいか、とかそういう感じ。 メールでの通知も可能。 類似サービスとして Amazon GuardDuty がある。
AWS WAF とは | AWS ドキュメントへ
Web アプリケーションファイアウォール。対象は CloudFront と ALB (EC2 につなげることはできないみたい)。たとえば「このページは "?id=英数字" というパラメータしか受け付けない」と定義することで、記号を含むリクエストが届くとエラーにしたりする。これにより SQL インジェクションなどの攻撃を防御しやすくなる。また、「5分以内で〜をしたIPアドレスをブロック」なども可能。AWS WAF に付属している AWS Shield StandardAWS Shield Advanced も参照。
AWS X-Ray とは | AWS ドキュメントへ
アプリケーションのデバッグ・分析ツール。レントゲンの「X線 (X-ray)」のように、中身を見通すから X-Ray という名前になった。 近年のアプリケーションは、フロント・API を分離するなどマイクロサービス化したり、Lambda・S3・DynamoDB など PaaS を利用する傾向にあるが、 登場人物が増えた分、つながりを追いづらくなっている。例えば、ある Web ページが遅い場合、どこで時間がかかっているかを調査するのは難しい。 AWS X-Ray は、ユニークな追跡 ID を含む情報を受け取り、同じ追跡 ID をひとつながりのリクエストとして表示する。イメージとしては下記。
  • 2018/01/27 18:55:12.000 63ms [Front EC2] request
  • 2018/01/27 18:55:12.063 60ms [API EC2] request
  • 2018/01/27 18:55:12.123 219ms [API EC2] request
  • 2018/01/27 18:55:12.332 5121ms [Lambda] functions get_user_info start
  • 2018/01/27 18:55:17.483 151ms [DynamoDB] search uid=123
  • 2018/01/27 18:55:17.532 49ms [DynamoDB] update uid=123
  • 2018/01/27 18:55:18.311 789ms [S3] store file [/foo/bar/uid/123/xxxx]

また、平均レスポンスなどの統計情報の表示や、日時での絞り込みが可能。

Lambda 等、簡単に設定変更で X-Ray 対応が可能なサービスもあるが、 おおむね自作アプリケーションに若干のコード追加が必要。

Elastic Load Balancing (ELB) とは | AWS ドキュメントへ
ロードバランサ。Classic Load Balancer (CLB) と Application Load Balancer (ALB) の 2種類ある。Class の方は、EC2 にトラフィックを振り分ける。負荷分散とフェイルオーバーが目的。HTTPS 対応。複数 AZ には対応しているが、複数リージョンには対応していない。パスでの振り分けはできない。一方、ALB は…
VM Import/Export とは | AWS ドキュメントへ
VMware・Hyper-V・Citrix Xen にて仮想マシンイメージを取得し、EC2 にインポートすることができる機能。 VM Import で作成した EC2 インスタンスであれば、逆に EC2 からエクスポートして VMware 等にインポートすることもできる。 後継サービス AWS Server Migration Service の方が使いやすく機能も多いので、まずはそちらを検討してほしい。
S3 Select とは | AWS ドキュメントへ
S3 に置いてある CSV, TSV, JSON などの形式のファイルの内容を、SQL で検索できる。 ファイルをまるごと手元に持ってくる時間と転送量を節約できる。 ファイルが gzip や LZO 等で圧縮されていても検索可能。 類似サービスとして Amazon Athena があるが、S3 Select はテーブルを事前定義する必要はないため、 ログ検索などで簡単に使用できる。 2017/12 現在、プレビュー。少なくともプレビュー時においては order by や group by は使えない模様。
前へ << AWS とは何か & AWS 全サービスを 3行で Azure とは何か >> 次へ