Más contenido relacionado
AWS勉強会20160223
- 3. EC2 Run Command
EC2インスタンス上で任意のコマンドを実行できる
インスタンスは複数同時指定可
実行結果の標準出力がキャプチャされてS3に入る
コンソールでも閲覧可(※ただし数が多いと面倒)
シェルスクリプト・PowerShellが実行できるので、やりたいことは大抵で
きる
Windows Update
任意のアプリケーションのインストール
サーバー監視
まことに遺憾ながらロール割り当てが必要
インスタンス作成時にロールを割り当てる必要がある
つまり既存インスタンスでは使えない(残念!!)
2©sanwa systems co.,ltd. all rights reserved.
- 4. S3 (Simple Storage Service)
みんなご存知ストレージサービス
料金は3項目
データ容量×データ保持期間
データ転送量
リクエスト回数(出し入れした回数)
格納してから長時間過ぎたデータは自動的にGlacierに移動するように設定
できる
取り出すのに数時間かかるようになる
料金は1/3
3©sanwa systems co.,ltd. all rights reserved.
- 5. S3 (Simple Storage Service)
イベント通知ができる
ファイルが更新されたとき、SNSへ通知を送ることができる
SNSからLambdaを起動して別の処理を自動実行することが可能
Web APIを叩くとか、データをDynamoDBに入れるとか
アクセス制御ができる
パブリックに公開→簡易的なWebサーバーみたいに使える
IPアドレスでアクセス制御→社内のみに公開できる
IAMユーザー単位でアクセス制御→個人・プロジェクト単位の領域
バージョン管理ができる
上書き・削除したファイルの履歴が保存できる
完全な削除はrootユーザーだけができるように設定可
MFA認証
4©sanwa systems co.,ltd. all rights reserved.
- 6. SQS (Simple Queue Service)
メッセージを入れたり出したりするキューを提供する
メッセージ……任意のテキストデータ。 1件あたり最大256KB
件数には制限なし
システムを疎結合にするために使える
ユーザーが予約を登録する→予約データをキューに入れる
別システムがキューから予約データを処理する
…とか
5©sanwa systems co.,ltd. all rights reserved.
メッセージ
キュー
APIを通じてキューに投入
APIを通じてキューから取得&削除
- 7. SQS (Simple Queue Service)
SQSが提供するもの
メッセージは一定時間ロックがかけられる。排他処理ができる
ロングポーリング(commet的なアレ)機能があり、タイムリーな処
理が可能
安価
SQSが提供しないもの
メッセージの順番は保証されない
メッセージは同じものが重複して取得される可能性がある
だいたい順番通りだし、2回以上配信されることは稀
6©sanwa systems co.,ltd. all rights reserved.
- 8. SNS (Simple Notification Service)
メッセージを渡すと、別の場所に転送するサービス
メッセージ……任意のテキストデータ。 1件あたり最大256KB
転送先は任意に設定可能
AWS SQS
AWS Lambda
Eメールアドレス
モバイルプッシュ通知(スマホアプリ)
AWSのサービスが利用することが多い
CloudWatch, S3, Config, CloudTrailなど
CloudWatch→SNS→Lambda→Slackみたいな連携が可能
複数のSQSキューにメッセージを同時配信するのに使われるケースも多
いっぽい
7©sanwa systems co.,ltd. all rights reserved.
- 9. Lambda
任意のコードをアップロードして実行できるサービス
言語はJavaScript(Node.js), Python, Java
JS, Pythonならブラウザ上で直接コードが書ける
起動タイミングはいろいろ
手動起動、SNS、Cron、API Gateway
負荷を気にしないで良い
処理時間単位で課金される
できることもいろいろ
AWSのサービスを叩く
EC2のスナップショットを作る、 DynamoDBにデータを登録する、……
外部サービスを叩く
Slackにメッセージを送信する、Webサイトの死活監視を行う、……
8©sanwa systems co.,ltd. all rights reserved.
- 10. DynamoDB
9©sanwa systems co.,ltd. all rights reserved.
マネージドNoSQL
JSONドキュメントを容量無制限で投入できる
課金はストレージ使用量+最大読み書き速度
read/writeごとに秒間I/Oレートを事前に設定しておき、その速度に
対して課金が発生
これを超えると読み書きが失敗する
整合性はないかも
レコードを更新した直後(通常1秒以内)に再度読み込みを行うと、
更新前の状態が取得できてしまう可能性がある。読み込みI/Oを2倍
消費して最新の状態を取得するオプションもある
検索条件は貧弱
NoSQLなので!!
- 11. API Gateway
Web APIを作るためのマネージドサービス
https://**.execute-api.ap-northeast-1.amazonaws.com/.. と
いったエンドポイントが準備される
AWS Lambda(=リクエストパラメーターを引数とした任意のコー
ド)を実行して結果を返すことができる
他のWeb APIを叩くことも可能(プロクシみたいになる)
Lambdaと組み合わせるとWeb APIをサーバーレスで実現できる
リクエストをDynamoDBに格納したり、SNS→SQSへ送信したりで
きる
10©sanwa systems co.,ltd. all rights reserved.
API Gateway
Lambda
EC2既存Web API
- 12. API Gateway
保護機能がある
独自のAPIキーを生成して認証をかけることができる
APIキーの設定をした場合、クライアントはキーをHTTPヘッダに入れて
リクエストを送る必要がある
同時アクセスの上限値を設定できる
超えた分はAPI Gatewayがエラーを返す
無効なリクエストはバックエンドのサーバーに到達しないため安全。
負荷も一定範囲内に抑えられる
キャッシュ機能がある
同じパラメーターに対してはキャッシュを返すように設定できる
パラメーターの変換機能がある
既存のWeb APIを使いやすくしたりできる
GETでパラメーターを受け取り、JSON形式でBODYに入れてPOSTで呼
び出す、HTTPヘッダに入れて呼び出すなど
11©sanwa systems co.,ltd. all rights reserved.
- 13. CloudFormation
VPC, EC2, ELB, EBS, RDS...といったリソースを自動作成するための
サービス
最終的に必要な状態を記述したテンプレートを用意する
JSON形式のテキスト
以前は一度書いたらものすごく読みづらくて再利用が難しかった。今
はコンソールで読み込めるので楽
EC2にメタデータをセットしたりできる。この
Chefなどと併用可
完全なInfrastructure as Codeが実現できる
12©sanwa systems co.,ltd. all rights reserved.
- 14. Config / CloudTrail
Config
リソースに変更を加えた履歴が自動的に保存される
JSON形式のテキストファイルがS3にたまってゆく
一部リソースでは差分をグラフィカルに表示することもできる
CloudTrail
全ての操作履歴(=API呼び出し履歴)が自動的に保存される
JSON形式のテキストファイルがS3にたまってゆく
権限が足りないために失敗した履歴も保存される
Configでは変更履歴なので対象外
機能に重複したところもある
13©sanwa systems co.,ltd. all rights reserved.