Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Cognito + SNS + Zabbixでサーバー監視アプリを作ってみた -...

Amazon Cognito + SNS + Zabbixでサーバー監視アプリを作ってみた - JAWS DAYS 2015

JAWS DAYS 2015
トラック[Aceに聞け]で発表させて頂きました
スライドになります。
slideshare版: https://www.slideshare.net/hikaruashinon/jawsdays2015

Hikaru Ashino

March 23, 2015
Tweet

More Decks by Hikaru Ashino

Other Decks in Programming

Transcript

  1. 自己紹介 ¤ 芦野 光 ¤ 宮城県仙台市在住 ¤ 専門学生 ¤ JAWS-UG山形、仙台

    ¤ AWS歴:6ヶ月 ¤ 専門学校 ¤ 東北電子専門学校 高度ITエンジニア科 所属(4年課程) ¤ 株式会社エスツー ¤ サーバーエンジニア(アルバイト勤務) ¤ 最近のできごと ¤ AWS麻雀はじめました
  2. Amazon Cognitoとは ¤ Amazon Cognito ¤ AWSのモバイルサービス、2014年7⽉にリリース ¤ 提供している内容は⼤きく2つ ¤

    Sync ¤ クラウド上にモバイルと同期できるデータストアを提供。 ¤ Identity Broker ¤ モバイルからAWS上へのリソースのアクセス認証と制御。 ¤ 提供しているリージョン ¤ US East (N. Virginia) ¤ EU (Ireland) ¤ AWS Mobile SDKサポート
  3. Amazon Cognitoとは ¤ Sync Identitypool Identity Identity Identity Dataset… key

    value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White Dataset… key value 1 Blue 2 Red 3 White
  4. Amazon Cognitoとは ¤ Sync – ⽤語 ¤ Identitypool ¤ アプリケーションのユーザアイデンティティを整理するコンテナ。

    ¤ AWSアカウント1つにつき60個作成可能。 ¤ Identity ¤ ユーザアイデンティティ ¤ 複数のデバイスで共有可能。 ¤ 複数のDatasetを持つ。 ¤ Dataset(Key/Valueのテーブル,同期ストア) ¤ Dataset1つあたり、1MBまでのデータが保存可能 ¤ Key/Value形式、Keyの数は最⼤1024個 ¤ 保存できるデータ ¤ 英数字の⽂字列 ¤ バイナリデータはBase64でエンコードすることで保存可能。 ¤ 1ユーザーあたり、Datasetの合計サイズの上限は20MB
  5. Amazon Cognitoとは ¤ Sync Identity Pool…(App) Dataset… key value 1

    Apple 2 Watermelon 3 Orange Identity…(Device) Dataset… key value 1 Apple 2 Watermelon 3 Orange App Pull Push synchronize
  6. Amazon Cognitoとは ¤ Sync Identity Pool…(App) Dataset… key value 1

    Apple 2 Watermelon 3 Orange Identity…(Device) Dataset… key value 1 Apple 2 Watermelon 3 Orange App Dataset… key value 1 Apple 2 Watermelon 3 Strawberry Put Get
  7. Amazon Cognitoとは ¤ Sync Identity Pool…(App) Identity…(Device) Dataset… key value

    1 Apple 2 Watermelon 3 Orange App Pull Push synchronize Dataset… key value 1 Apple 2 Watermelon 3 Strawberry Conflict Dataset… key value 1 Apple 2 Watermelon 3 Strawberry
  8. Amazon Cognitoとは ¤ Identity Broker ¤ モバイルからAWS上のリソースへのアクセス認証と制御。 ¤ AWS上のリソースをモバイルから直接利⽤できる。 (2

    tier architecture)EC2なし構成ができる︕ ¤ アクセス認証 ¤ OpenID Connect対応アイデンティティプロバイダーが利⽤可能 ¤ Facebook,Googleなどのアカウントを⽤いて認証可能 ¤ ⾃前の認証基盤を利⽤することも可能 ¤ Developer Authenticated Identities ¤ アクセス制御 ¤ 認証あり、認証なし(ゲスト)ユーザにそれぞれのアクセス制御を IAMのRoleで割り当てができる。
  9. Amazon Cognitoとは ¤ 活⽤事例 ¤ 株式会社ガリバー 様 ¤ クルマとの双⽅向コミュニケーションサービス 「DRIVE+」にてCognitoを認証基盤として採⽤。

    ¤ Concrete Software,Inc ¤ NHLホッケーターゲットスマッシュ(スマホアプ リ)にて、ゲームデータの保存と認証に採⽤。
  10. Amazon Cognitoとは ¤ Cognitoの便利な機能 ¤ Cognitoストリーム(Kinessis連携) ¤ 同期ストアの同期、更新情報をKinessisで取り扱うことが可能に。 ¤ Push

    synchronization(SNS連携) ¤ 複数デバイスで使っている同期ストアが更新されると AmazonSNSからサイレントプッシュ通知され、 複数デバイスがクラウド上の同期ストアと同期を⾏う。
  11. Dataset… key value 1 Apple 2 Watermelon 3 Orange Dataset…

    key value 1 Apple 2 Watermelon 3 Strawberry Amazon Cognito new! Amazon SNS Dataset… key value 1 Apple 2 Watermelon 3 Orange Pull Push synchronize synchronize Push synchronization Mobile Push Dataset… key value 1 Apple 2 Watermelon 3 Strawberry Dataset… key value 1 Apple 2 Watermelon 3 Strawberry
  12. 料⾦(2015年3⽉22⽇ 現在) ¤ 同期と容量に対して課⾦ ¤ 容量 ¤ 同期ストアの容量 1 GB

    につき毎⽉ 0.15ドル ¤ 同期 ¤ 同期オペレーション 1 万回につき 0.15ドル
  13. Amazon SNSとは ¤ Amazon Simple Notification Service ¤ AWSのモバイルサービス ¤

    クラウド上からモバイルへのメッセージ配信サービス ¤ 特徴 ¤ マルチプロトコル対応 ¤ クロスプラットフォーム対応(プッシュ配信) ¤ シンプル・スケーラブル ¤ AWS Mobile SDKサポート
  14. Amazon SNSとは ¤ マルチプロトコル対応 ¤ プッシュ ¤ Apple、Google、Fire OS、Windows デバイス対応

    ¤ SMS, E-mail ¤ テキストメッセージ ¤ HTTP/s ¤ 任意の HTTP エンドポイントに配信 ¤ SQS(Amazon Simple Queue Service) ¤ SNSからキューを登録
  15. Amazon SNSとは ¤ SNSの便利な機能 ¤ メッセージの配信結果の確認(CloudWatch連携) ¤ CloudWatch上で配信結果の確認が可能に ¤ イベントの通知

    ¤ 登録したアプリケーションに、エンドポイントが追加、削除、更 新された際にイベント通知。
  16. 機能紹介 ¤ アラートの⼀覧表⽰機能 ¤ アラートの状況、ホスト名、トリガー名を表⽰。 ¤ プッシュ受信と共にリアルタイムで表⽰。 ¤ エスカレーション通知機能(少し実装) ¤

    ※Zabbixのエスカレーション機能は使⽤しません。 ¤ エスカレーション発⽣時に、メンバーに通知、状況を共有。 ¤ Slackへの投稿(未実装) ¤ エスカレーション発⽣状況を⾃動でSlackに投稿。 ¤ アラート状況をクラウドと複数端末間での同期(Cognito) ¤ SNSでプッシュが受信できなかった時の対策として ¤ 定期的にクラウドの同期ストアと同期。
  17. 参考サイト ¤ Cognito ¤ http://techlife.cookpad.com/entry/2014/07/29/173726 ¤ http://dev.classmethod.jp/cloud/aws/ ¤ http://aws.amazon.com/jp/cognito/ ¤

    http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt- tech-amazon-cognito-amazon-mobile-analytics ¤ http://blog.takuros.net/entry/2015/01/20/070824 ¤ http://mobile.awsblog.com/ ¤ http://221616.com/gulliver/news/press/20140930-13992.html ¤ http://media.amazonwebservices.com/jp/csd20140909/KEY-01-03.pdf ¤ http://mobile.awsblog.com/post/Tx3LC2Y5I3MXF0K/Concrete-Software- uses-Amazon-Cognito-for-NHL-Hockey-Target-Smash ¤ SNS ¤ http://www.slideshare.net/AmazonWebServicesJapan/20130917-aws- meisterregenerateextrasnsmobilepushpublic?related=1 ¤ http://aws.amazon.com/jp/sns/