AWS とは何か & AWS 全サービスを 3行で

AWS とは何か

AWS とは「Amazon Web Services」の略で、Amazon 社が提供するクラウドサービスです。 「エーダブリュエス」とか「アマゾン・ウェブ・サービス」などと言います。 日本人が「アマゾン・ウェブ・サービシズ」と言うのは聞いたことはありませんが、 別に間違いではありません。

もともとは Amazon 社が自身の EC サイト amazon.com のために構築した仕組みであり、 それを 2006年に Amazon 社外にも公開したものです。

当時は「Amazon Web Service」というのは Amazon のサイトの商品データや価格データを取得するための API のことを指していたのですが、S3 と EC2 を発表し、 「オンラインの本屋がストレージと時間貸しレンタルサーバ?」 「ボタンひとつで構築ってすごいけど、高くない?」 「海外にしかサーバないし、レスポンス遅くない?」 と言っていたような記憶がありますが、 そのうち皆がスケールアップやリーン開発との相性の良さに気づき、 あれよあれよという間に機能がどんどん増えていき、 日本リージョンも立ち上がりました。

2017年現在、クラウドサービスとして間違いなく世界トップシェアを誇り、 機能的にも最先端を走っています。

そもそもクラウドサービスを広めたのは AWS でありますし、 CloudFront で CDN を身近にしたり、 Redshift でデータウェアハウスの価格破壊を起こしたり、 Lambda でサーバレスアーキテクチャを広めたり、 クラウドコンピューティングにおいて大きな功績があります。

AWS のリージョン

AWS は世界で16リージョン、43アベイラリビティゾーンあります。 リージョンは地域的に大きく離れた場所にあり、具体的には

  • 米国東部(バージニア北部)
  • 米国東部 (オハイオ)
  • 米国西部 (北カリフォルニア)
  • 米国西部 (オレゴン)
  • 米国政府/契約企業専用 (GovCloud)
  • カナダ (中部)
  • 欧州 (アイルランド)
  • 欧州 (フランクフルト)
  • 欧州 (ロンドン)
  • アジアパシフィック (東京)
  • アジアパシフィック (ソウル)
  • アジアパシフィック (シンガポール)
  • アジアパシフィック (シドニー)
  • アジアパシフィック (ムンバイ)
  • アジアパシフィック (中国(北京))
  • 南米 (サンパウロ)

です。米国政府用の GovCloud と、中国(北京) は、普通の人は使うことはできません。

それぞれのリージョンは複数の「アベイラビリティゾーン」で構成されています。 例えば東京リージョンは、3つのアベイラビリティゾーンがあります。

どこにあるのかは当然非公開ですが、2ch 情報としては、 「Amazonは千葉ニュータウンのKVHテレコムにサーバを置いてる。一部は秋葉原の富士ソフト。」 だそうです。本当かどうかは知りません。

2018年に大阪にローカルリージョンという新たな概念のリージョンが登場予定とのこと。 東京を補完する役割らしい。

AWS 全サービスを 3行で

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

詳細は こちら

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

詳細は こちら

Amazon CloudWatch
Amazon CloudWatch Events
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 ログ
Amazon Cognito
アカウント管理基盤。モバイルアプリまたは Web アプリから使える。一意な ID の管理、オフライン機能、オンライン復帰時のデータ同期、ゲスト時に一時ID発行。Facebook・Twitter・Google・Amazon などを利用した認証が可能。複数アプリや、モバイルアプリと Web アプリ間でのアカウント情報やセッション情報の共有など。
Amazon Comprehend
Amazon Connect
IVR (自動電話応答) 機能を備えた、コールセンター・カスタマセンターのシステム。 「ご注文は 1 を、商品に関するご質問は 2 を、返品については 3 を、担当者との通話をご希望の方は 9 を押してください」 みたいな自動音声・ボタン入力・フロー分岐を設定可能。 人間の担当者と通話させることもできる。 ブラウザベースの通話ツールがあり、マイク・イヤホンのヘッドセットを用意しておけば通常の PC で通話が可能 (人間の担当者を雇用するなりして通話を受けられるようにしておくのはあなたの仕事であるわけだが、 Amazon に相談すればアウトソース可能なパートナー企業を紹介してくれると思う)。

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

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

Amazon DynamoDB
NoSQL・スキーマレスなデータベース。高速・大量データ可。基本的にはキー値を指定し、1行だけ取得する。SQL のように複雑な WHERE 句で検索するようなことは向かない。
Amazon DynamoDB Accelerator (DAX)
DAX は DynamoDB とクライアントの間に位置するキャッシュクラスタ。 インメモリなキャッシュで、クライアントからの Read 時に DynamoDB にアクセスせずにキャッシュしておいた値を返す。 そもそも DynamoDB は高速な DB であるが、それでも間に合わない場合に DAX を使うとよい。
Amazon Elastic Container Registry (ECR)
自分で作った Docker イメージを登録できる。 外部に公開することも、非公開とすることも可能。 Docker Hub などのサービスを、Amazon が AWS 上に持ってきたもの、と考えるとよい。 CircleCI などの AWS パートナーが提供するサービスと連携し、継続的デリバリーを行うことができる。 Docker イメージは実際は S3 に配置されるため、 利用料はその分のストレージやネットワーク料金のみである。 元は Amazon EC2 Container Registry だったのが、いつのまにか EC2 → Elastic に名称が変わったようである。
Amazon EC2 Container Service (ECS)
Amazon EC2 Systems Manager
Amazon ElastiCache
オンメモリなキャッシュサービス。内部エンジンは memcached か Redis を選択可能。 Redis の場合、複数台でのクラスタ構成が可能。さらに Redis の場合、バックアップとリストアも可能。 "Elastic Cache" (エラスティック・キャッシュ) ではなく、"ElastiCache" (エラスティ・キャッシュ)。
Amazon Elastic Block Store (EBS)
EC2 に接続するストレージ。HDD・SDD 選択可能。同時に複数の EC2 とつなげることはできない。
Amazon Elastic Compute Cloud (EC2)
仮想マシン。いわゆる IaaS。 Linux や Windows サーバを立ち上げることができる。

詳細は こちら

Amazon Elastic File System (EFS)
NFS でマウントして使えるストレージ。複数 AZ で冗長化可能 (EBS では単一 AZ での冗長化)。複数の EC2 から同時に使える (EBS では同時に使える EC2 はひとつだけ)。S3 とは違い、普通のファイルにように扱える。事前の容量確保は不要で、使った分だけ請求。ただ、料金は S3 の 10倍くらい。
Amazon Elastic MapReduce (EMR)
Amazon Elasticsearch Service
全文検索エンジン。Lucene を基盤として、Elastic 社が主に開発しているものを AWS 上に PaaS として乗っけたもの。楽して運用したい場合は CloudSearch を検討すべし。
Amazon Elastic Transcoder
動画変換サービス。これを使えば、あなたも Youtube や Netflix のような動画配信サービスを運営できる。ビットレートを指定できたり、H.264 などの圧縮をかけたり、DRM で暗号化したり、HLS、SS、MPEG-DASH などのプレイリスト生成ができる。サムネイルの切り出しや、透かしマークの付加、キャプションの合成などもできる。
Amazon GameLift
Amazon Glacier
S3 で、あまりアクセスしないファイルを低価格で保存しておけるサービス。 古いログやバックアップファイルなどを置くのに使う。 頻繁にアクセスするファイルは S3 に配置する。
Amazon GuardDuty
ログを分析し、異常と思われる挙動がある場合警告を行う仕組み。例えば以下のような警告例がある。
  • EC2 インスタンスがポート 25 でリモートホストと通信して通常と異なる動作を示しています。
  • EC2 インスタンスが通常と異なるポートでリモートホストと通信しています。
  • API が通常とは異なる ISP の IP アドレスから呼び出されました。
2018/1 現在、EC2 と IAM のみが警告対象。 実際の挙動としては、VPC フローログ・DNS ログ・CloudTrail イベントを調査し、 通常とは異なる挙動が見つかった場合警告する。
Amazon Inspector
EC2 の脆弱性自動チェックサービス。対象範囲はネットワーク・OS・ミドルウェアで、あらかじめ AWS が CVE などを元に準備したチェック項目に従い、不正アクセスができたりしないかなどを実際にチェックする。EC2 に専用のエージェントをインストールする必要あり。対象 OS は Windows または Linux 系 OS。EC2 以外に対して脆弱性チェックを行うことはできない。自作の Web アプリケーションの脆弱性チェックをしてくれるわけではない。
Amazon Kinesis Analytics
Amazon Kinesis Firehose
Amazon Kinesis Streams
Amazon Lex
音声やテキストを使用したチャットボットを構築できる。 例えば、飲食店の予約サービスとして、「何名」「コース」「日時」の入力を受け付けることで「予約が完了」と 設定画面で定義する感じ。テキストでもいいし、音声をテキストに変換するエンジンもあるので、それを使ってもよい。 細かなロジック制御 (例えば予約が一杯でないか) などは Lambda 等と連携して実現する。
Amazon Lightsail
一言でいうなら「カンタンでシンプルな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
Amazon Mobile Analytics
Amazon MQ
詳細は こちら
Amazon Neptune
グラフデータベースサービス。 業界標準である Property Graph (ノード・リレーションシップ・プロパティからなる) を作れて、 クエリ言語として Gremlin と SPARQL をサポート。 推奨エンジン、不正検出、知識グラフ、創薬、ネットワークセキュリティなどで使えるらしい。
Amazon Pinpoint
Amazon Polly
テキスト読み上げサービス。文字列を渡すと音声 (mp3等) で返してくれるサービス。 日本語可。SSML という形式でタグ表記をすることで、読み上げ速度・音程・強弱・文章間の休止時間などを指定できる。 質については Youtube 等に動画が上がっているので聞いてみてほしい。個人的には「悪くない」と思った。 実用例としては Amazon Connect を参照。
Amazon QuickSight
BIツール。多量のデータについて GUI 上で集計・抽出・分類したり、グラフや表形式にして、レポートや分析を行うことができる。
Amazon Redshift
データウェアハウス (DWH) エンジン。DWH とは「データ倉庫」の意味で、数千万件や数億万件の売上データをどーんと突っ込んで、 年齢層や地域層ごとの分析ができたりする。その場その場で切り口を変えても動作するよう、いちいちインデックスなどを張ったりしなくても、 それなりに高速に動くようになっている。 Redshift のベースは Matrix という製品であるが、そこに Amazon が PostgreSQL 互換のインタフェースを追加したので、PostgreSQL と似たような感じで操作ができる。 また Amazon QuickSight のような BI ツール経由で操作することもできる。Redshift は「赤方偏移」の意味の英単語で、 オンプレからクラウドにデータがどんどん遠ざかっている的なことらしい。

詳細は こちら

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

詳細は こちら

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

詳細は こちら

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

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

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

詳細は こちら

Amazon Simple Storage Service (S3)
AWS の根幹を支えるストレージサービス。容量無制限。自動的にバックアップを生成。専用 SDK や専用 API にて操作する。ログファイルやデータファイル保存置き場とするのが一般的。 S3 に配置しておけば Web 上で一般に公開することができるため、 画像ファイルや HTML・CSS 等の置き場所として使うこともできる。 S3 に配置してある CSV・TSV 等のファイルを SQL で検索するには S3 Select を使う。 S3 に配置してあるファイルに対して Redshift でデータ分析するには Redshift Spectrum を使う。 あまりアクセスしないファイルは Amazon Glacier に置いておくと費用の節約になる。 詳細は こちら
Amazon Simple Workflow Service (SWF)
Amazon Time Sync Service
AWS の各リージョンにある原子時計を使った時刻同期サービス。 と言っても単なる NTP サーバであるので、Linux なり Windows なりで時刻同期先をこの NTP サーバに指定すればよい。 パブリックネットワークに接続できない環境でも利用可能なのが特徴。 うるう秒は平準化される。
Amazon Translate
多言語への翻訳サービス。 リアルタイム翻訳 (逐次翻訳) と、一括のバッチ翻訳両方に対応。 2018/1 現在ベータであるが、日本語は未対応。
Amazon Transcribe
音声を元に文字起こしを行う。 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)
Amazon WorkDocs
エンタープライズ向けの、ストレージ・ファイル共有サービス。コメントを付けられたり、 編集中としてロックできたりする。 PC・スマホ・タブレット用のファイル同期ツールあり。 Dropbox 的なものだろうか。
Amazon WorkMail
一言でいうなら「Gmail と Google カレンダー」。 ブラウザ上でメール送受信やカレンダーでのスケジュール管理が行える。 Outlook やスマホ等、ブラウザ以外からの連携も可能。 Google の Gsuite よりちょっと安い。
Amazon WorkSpaces
クラウド上で Windows デスクトップ環境が使える。OS は Windows7・10。Office 利用可能なオプションもある。Windows・Mac・iOS・Android 向けに接続用のクライアントがあるので、それを実行して使う。ブラウザ上での接続や、リモートデスクトップも使用可能。
Auto Scaling
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 Batch
AWS でバッチ処理を自動的に、並列分散しつつ行うための仕組み。 まず開発者は、ジョブ処理を Docker コンテナ上で実装する必要がある。 そして入り口となるジョブキューを定義し、キューイングされたらどのジョブが動くべきか、 そのジョブが終わったら後はどのジョブが動くべきか、といった依存関係を定義する。 AWS Batch は、クラスタ管理、ジョブキュー、ジョブスケジューラの管理を行ってくれて、 必要なときに必要なだけのクラスタを自動構築して、コンテナをデプロイしてくれる。 処理が終わったらクラスタはなくなる。 インスタンスサイズや、クラスタの CPU・メモリなどのリソースのことをあまり考えなくて良いというサービス (各コンテナの vCPU とメモリ量は指定しないといけないので全く考えなくてよいわけではない)。 デメリットとしては、Docker コンテナ化が必須 (EC2 や Lambda との連携はできない)、 分岐などの複雑なジョブフローは定義できない。
AWS Certificate Manager (ACM)
ELBCloudFrontAPI GatewayElastic Beanstalk 向けの SSL/TLS 証明書の発行を行う。 SSL/TLS 証明書は無料で、ACM 自体も無料 (ELB や CloudFront の費用に含まれるため)。 EC2 単体には使えないし、秘密鍵等を持ち出して AWS 外で使うこともできないことに注意。
AWS CloudFormation
CloudFormation は、JSON または YAML で記述されたテンプレートファイルを元に、 EC2 や RDS 等のインスタンスを生成することができる仕組みである。 管理画面でマウスをポチポチしなくてもいいので、 複数環境構築時の操作ミス防止であったり、 スケールアウトで台数を増やしたり、 サーバの設定変更を出来る限り避けるために毎回インスタンスを作り直したり (つまり Immutable Infrastructure)、 Infrastructure as Code が実現できるので git で履歴管理したり、 等々がメリット。 「AWS CloudFormation デザイナー」を使うとブラウザ上で GUI で AWS の構成を設計し、 CloudFormation テンプレートを生成できる。 「CloudFormer」を使うと、既に存在するインスタンスを元にテンプレートファイルを作ってくれる。 CloudFormation 自体は無料。
AWS CloudHSM
HSM とは「ハードウェアセキュリティモジュール」のこと。物理的な耐タンパー性を持った暗号モジュールが AWS のデータセンタ内に用意されており、そこに鍵を入れておくと安心できますよ、という話。CloudHSM 自身に暗号化・復号・署名等の機能がある。Oracle や SQL Server などの TDE (Transparent Data Encryption=透過的データ暗号化) の鍵を置いておくこともできる。2013年発表当時は初期費用 $5,000(!) という、クラウドっぽくない価格設定であったが、2018/1 現在では 1.4〜2.0USD/時間 程度で利用可能な模様。
AWS CloudTrail
AWS コンソール操作や API 呼び出しを記録する。例えば「この EC2 インスタンスを消したのは誰だ!」的なことが追跡可能となる。直近7日分については、AWS コンソールで検索が可能。設定を有効にすることで、7日超のデータを S3 にログとして残すことが可能。
AWS Cloud9
AWS CodeBuild
AWS CodeCommit
マネージドなソース管理サービス。一言でいうと「GitHub のようなもの」。 GitHub や BitBucket などの Git ホスティングサービスを利用していた人は、 使いたい機能が CodeCommit に存在するか確認したほうがよいと思う。 ちなみに CodeCommit は 2015/7 にサービスインして、トリガ (WebHook) が実装されたのが 2016/3。 プルリクエストを実装したのが 2017/11。機能追加に結構時間がかかっているイメージではある。
AWS CodeDeploy
AWS CodePipeline
AWS CodeStar
実行環境 (EC2・Lambda など)、言語 (Java・Node.js・PHP・Python 等)、ソース管理 (CodeCommit・GitHub) などの基本情報を選択すると、 CodePipeline, CodeBuild, CodeDeploy などをよい感じに設定してくれて、 コミット → 自動デプロイ という環境を構築してくれるサービス。
AWS Config
AWS の設定変更、例えば EC2 インスタンス作成や、S3 バケットの作成などの履歴を保存し、 変更が行われたら SNS 経由で通知する。 また、「EBS は暗号化必須とする」「SSH ポートを開放しない」などのルールを設定することができ、 このルールに反した場合は通知が行われる。 防止できるわけではないが、監査・コンプライアンス・証跡 という観点からの要望なのだろう。 しかしこのサービス名はあまりにもわかりづらいと思うがどうか。
AWS Database Migration Service
AWS Data Pipeline
定期的な汎用データ処理ツール。定期的なデータ集計とか、ファイルコピーとか、バックアップとか、レポートとかいろいろ。入出力可能なデバイスは DynamoDBS3RDSRedshift 等。1日1回、1時間に1回などのスケジューリング機能も備える。
AWS Device Farm
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 と接続したい場合に使う。InternetVPN を使ってもいいが、InternetVPN の不安定さを回避したい、高速に接続したい、セキュリティ的にインターネット経由にしたくない、安定的な速度を保証したい、といった場合に使う。 日本では東京・大阪に接続ポイントがあり、そこにラックスペースを借りるか、そこにすでに接続済の通信事業者と契約する。
AWS Directory Service
早い話が「マイクロソフトの 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 が提供する PaaS。アプリをデプロイするだけでよく、サーバ管理不要で、 オートスケールなどよい感じに自動でやってあげます、という触れ込みであるが、 実態としては EC2 をラップしたものなので、普通にログインもできる。 なお、Beanstalk は "Beans Talk" ではなく "Bean(豆) の Stalk (茎)"。 なので、「ビーンズ・トーク」ではなく「ビーンスターク」。1単語である。 ちなみに童話の「ジャックと豆の木」は "Jack and the Beanstalk" である。
Amazon Elastic Container Service(ECS)
Amazon Elastic Container Service for Kubernetes (EKS)
AWS Fargate
AWS Glue
AWS Greengrass
AWS IoT
AWS Key Management Service
AWS Lambda
サーバレスでのプログラム実行。EC2 のようにサーバを確保しなくても、 あらかじめ関数を定義しておけばプログラムが実行される。必然的にインフラ管理が不要となる。 関数で使える言語は、Node.js、Python、Java、C#。 データのインプットは Amazon S3、Kinesis、DynamoDBAPI GatewaySNS など。 内部実装は Amazon Linux で動くコンテナであるため、Linux コマンドが使えたりする。 また、Lambda 内部のファイルシステムは永続化されない。 永続化したいデータは S3 なり何なりに保存しておくこと。 実行は300秒以内という上限がある。 典型的な使い方は、「画像が S3 にアップされたら、複数サイズのサムネイルを作る」。 AWS Step Functions にて、Lambda のフロー制御を行える。
Amazon Lumberyard
AWS Managed Services
AWS Marketplace
マーケットプレイスは「市場」のこと。Amazon が市場を整備し、そこに Amazon とは関係ない第三者が商品を出店し、利用者は自由に購入することができる、という関係性。料金は一括して Amazon に支払う。ファイアウォール・NAS・VPNサーバ等が主力と思われるが、FreeBSD・CentOS など、無料のものもある。EC2 上にデプロイして利用する形と、SaaS としての「利用権」という形式の 2通りある。
AWS Mobile Hub
AWS OpsWorks Stacks
AWS OpsWorks for Chef Automate
AWS Organizations
AWS Personal Health Dashboard
AWS Service Health Dashboard は全リージョン・全サービスの情報であるが、 AWS Personal Health Dashboard は自分が使っているリージョン・サービスの情報のみが表示される。 また、メンテナンス予定の情報も表示される。 過去 7日分の情報しか表示されないのはなんとかしてほしい。
AWS Server Migration Service
AWS Service Catalog
AWS Service Health Dashboard
EC2 や RDS など、AWS が提供する各サービスについて、現在トラブルが発生しているかを表示しているページのこと。 URL は https://status.aws.amazon.com/ である。 また、直近 1年間のトラブル履歴についても参照可能であるが、見づらいにもほどがある。

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

AWS Shield Standard
AWS WAF に付属する、DDoS からの保護機能。具体的には SYN flood や UDP リフレクタ等の攻撃を防ぐことができる。 無料であり、AWS WAF にて最初からで ON になっている (OFF にはできないっぽい)。 AWS Shield Advanced も参照。
AWS Shield Advanced
AWS Shield Standard に加え、下記のようなより高度な防御を行う。 さらなる DDos 緩和、L7 トラフィックの監視、攻撃に関するレポート、AWS のDDoS 対応チームのサポート (主体的に動いてくれるらしい)、ELB/CloudFront/Route 53 について DDoS 攻撃に起因する料金上昇時の調整)。 なお、1年間契約 + 3,000 USD/月 + ELB/CloudFrontデータアウト料金に上乗せ なので、 それなりの規模のサービスを前提としているのであろう。
AWS Snowball
データセンタなどに置いてあるペタバイト程度の大量データを AWS に物理的に転送するためのもの。 AWS から 80TB の HDD が郵送で送られてくるので、 データセンタなどにあるオンプレミスからデータを HDD にコピーして、 AWS へ HDD を送り返すと、AWS が AWS 内にデータを上げてくれる感じ。 AWS Snowball EdgeAWS Snowmobile も参照。
AWS Snowball Edge
AWS Snowball の進化版。 Snowball は 80TB であったが、Snowball Edge は 100TB。 Snowball はディスクのみであるが、Snowball Edge はディスク + コンピュータであるため、 NFS 接続・Lambda 実行・Snowball Edge 複数台でのクラスタリング等、より賢いことができる。
AWS Snowmobile
Snowball のもっとデカい版。 長さ 13m、高さ 3m のコンテナに、ストレージが詰め込まれている。1つあたり容量 100PB。 トラックで運ばれてくるので、既存データセンタに接続し、データを吸い上げる。 トラックが帰って、そのうち S3 あたりにファイルがドンと置かれる感じ。 AWS SnowballAWS Snowball Edge も参照。
AWS Step Functions
AWS Lambda の処理フロー、例えば順次処理・分岐・エラー判定・ループなどを定義する。 個々の Lambda 関数は小さなマイクロサービスとしておいて、それぞれのつながりを AWS Step Functions で定義することで、各 Lambda 関数は次に何を実行するのかを知らなくてよくなるので、 疎結合を実現できる。 Lambda 以外で使うことも可能だが、push 型ではなく pull 型にはなる (自分で Step Functions の API を叩いて、タスクがあるかポーリングする)。
AWS Storage Gateway
AWS サポート
AWS WAF
Web アプリケーションファイアウォール。対象は CloudFront と ALB (EC2 につなげることはできないみたい)。たとえば「このページは "?id=英数字" というパラメータしか受け付けない」と定義することで、記号を含むリクエストが届くとエラーにしたりする。これにより SQL インジェクションなどの攻撃を防御しやすくなる。また、「5分以内で〜をしたIPアドレスをブロック」なども可能。AWS WAF に付属している AWS Shield StandardAWS Shield Advanced も参照。
AWS X-Ray
Elastic Load Balancing (ELB)
ロードバランサ。Classic Load Balancer (CLB) と Application Load Balancer (ALB) の 2種類ある。Class の方は、EC2 にトラフィックを振り分ける。負荷分散とフェイルオーバーが目的。HTTPS 対応。複数 AZ には対応しているが、複数リージョンには対応していない。パスでの振り分けはできない。一方、ALB は…
VM Import/Export
S3 Select
S3 に置いてある CSV, TSV, JSON などの形式のファイルの内容を、SQL で検索できる。 ファイルをまるごと手元に持ってくる時間と転送量を節約できる。 ファイルが gzip や LZO 等で圧縮されていても検索可能。 類似サービスとして Amazon Athena があるが、S3 Select はテーブルを事前定義する必要はないため、 ログ検索などで簡単に使用できる。 2017/12 現在、プレビュー。少なくともプレビュー時においては order by や group by は使えない模様。
メモ: IAM がない。