SlideShare a Scribd company logo
1 of 18
AWS × Serverless Framework
×QuickSightで
IoTデータを可視化する
Author: Masaki Suzuki
@makky12
本日お話しすること
• きっかけ~作成アプリ~サーバーレスアプリの問題点(の一例)
• サーバーレスアプリの問題点の解決
• Infrastructure as Code(IaC)
• Serverless Framework
• AWSでの収集データの分析・可視化
• Amazon Athena & Amazon QuickSight(※)
• Amazon Neptune(参考資料) (※)
• 自己紹介&告知
※以後、製品名の「Amazon」は省略して記載します
資料&サンプルアプリ
• 本日の発表資料&作成アプリは、以下の場所で公開してます
• 登壇資料
• https://www.slideshare.net/MasakiSuzuki3/
• 作成アプリ(GitHub)
• https://github.com/smt7174/nature-remo
きっかけ
• 大平さんのツイート(→)
• 大平さんはAzureで実行
• じゃあ、僕はAWSでやってみよう!
• AWSなら、Athena→QuickSightに
流してグラフ表示したら、BIっぽくて
いい感じじゃない?
作ったアプリの構成
LambdaCloudWatch
DynamoDB
Simple Storage Service(S3) Athena
QuickSight
Lambda Lambda
リソースが多い…
API Gateway
※今回は未使用
サーバーレスアプリの問題点(の一例)
• リソース作成が大変
• コンソール上で1つ作るだけでも、結構手間
• コンソールの使い勝手が不十分…などの問題も
• コンソールでは完結できない…という場合も
• 管理はもっと大変
• 作成リソース/作業手順/設定などを覚えなければならない
• 手順書を残すにしても、その作成が手間だったり…
• 作成担当者=作成経験者とは限らない
• 人為的ミスが発生しやすくなる
• 過去リソース作成担当者でも、時間が経てばミスが発生しやすくなる
• (作業者により)品質が変わる/作業の俗人化などの問題
→リソース作成を楽にできる機能が欲しい!
Infrastructure as Code(IaC)とは
• インフラ構成・定義・構築を、コードから行うプロセスのこと
• 「インフラ」とあるが、実際は各種リソースの作成・設定も合わせて実施
• コード(=定義ファイル)を作成し、デプロイするだけでOK
• CloudFormation(AWS)/Azure Resource Manager(Azure) など
• IaCを導入することで、下記のメリットがある
• 安定した品質の保証
• 結果は毎回同じ(=冪等性(※)の確保)
• 作業者の知識・スキル・経験に依存しない(=属人化解消)
• 管理コストの削減
• 定義はすべて定義ファイル内で完結
• 細かい作業も不要(デプロイを行うだけ)
• 開発者が「開発」にのみ注力できる
※冪等性(べきとうせい):「ある作業を何度行っても、毎回必ず同じ結果が得られる」性質のこと
Serverless Frameworkとは
• サーバーレスアプリの構築・開発・運用管理をサポートするOSS
• 公式URL: https://serverless.com/
• IaCによるリソースデプロイにも対応
• AWS/Azure/GCPを始め、数多くのクラウドに対応
• 一番サポートが手厚いのはAWS
• その他、テスト/CI・CD/モニタリングなども対応
• 特に、テストはCloudWatchログを出力出来たりと便利
• 各クラウドでの定義ファイルを共通のフォーマットで書ける
• クラウドごとにフォーマットを覚え直す必要がない(=学習コストが少ない)
• JSON/YAMLに対応
• その他、JavaScriptでの(動的な)値の設定なども可能
IaC(Serverless Framework)を使うと…
Lambda
DynamoDB
Simple Storage Service(S3) Athena
QuickSight
Lambda Lambda
ここまでServerless Frameworkで作成できる!
※Athenaは「保存クエリ」の作成のみ対応
CloudWatch
API Gateway
※今回は未使用
Athenaついて
• S3のファイル内の大量データの分析を簡易化するツール
• S3ファイル内のデータを、RDBのようにテーブル/SQLで扱える
• QuickSightと統合することで、データを簡単に可視化できる
• QuickSightを始め、各種BI(※)ツールとの相性がいい
• BIツール以外にも、ログファイルなどの解析にも便利
• JSON/CSVを始め、多くのファイル形式に対応
• JSONは一手間かかる。手っ取り早く行うならCSVがおすすめ
• 正確には「ネスト」「構造体」などのデータがあると少々面倒
※BI:Business Intelligence(企業が膨大な蓄積データを分析し、その結果を経営意思決定に活用する事)
QuickSightについて
• AWSのクラウド駆動BIツール
• 分析データなどの各種データをグラフなどで可視化できる
• 企業などの迅速な意思決定などをサポートする
• 堅牢なインメモリエンジン(SPICE)を使用
• 容量制限あり。不要なら無理に使わなくてもよい
• 分析データのソースはAthena・RDS・S3など多岐にわたる
• GitHub/Twitterなどにも対応
• BI用途でなくても、収集データの可視化などが容易に行える
• (例)ログ解析/集計データの可視化… etc
• まさに今回がコレ
QuickSightで表示した結果
• 色々あったけど、無事QuickSightでグラフ表示することができた
まとめ
• サーバーレスアプリのリソース管理には、IaCが便利
• リソースの管理コストの削減
• 冪等性による、属人化・スキル依存の解消
• IaCのツールとして、Serverless Frameworkが便利
• 複数のクラウドに対応
• 特にAWSはサポートが手厚い
• Athenaを使うと、収集データをRDBのように扱えて便利
• テーブル/ビュー/SQL etc.
• QuickSightで、収集データをグラフで可視化できる
• BIツールとして、容易に導入しやすい
• BI用途以外にも、ログ解析など
【参考】Neptuneについて
• フルマネージドなグラフ型データベース
• 「ノード・エッジ型」の構造を持つ(右下図)
• 「テーブル型」が弱い「データ間の関係性/依存性」の保持も可能
• Twitterの「フォロー/フォロワー」
• ECサイトの「一緒に買われてる商品(サジェスチョン)」etc.
• 今回は下記の理由で利用せず
• 収集データ間に具体的な「関係性/依存性」がない
• コストの問題(「無料枠」がない)
• AWS公式URL:https://aws.amazon.com/jp/neptune/
本1
作者:A
ジャンル:IT
本2
作者:B
ジャンル:IT
本3
作者:A
ジャンル:ゲーム
作者が同じジャンルが同じ
一緒に
買われてる
自己紹介
• 名前:鈴木 正樹 (Masaki Suzuki)
• 在住:愛知県半田市
• 職業:フリーランスエンジニア(4月に法人化予定)
• 業務:サーバーレスアプリのアーキテクチャ構築/設計/開発 など
• 技術:
• AWS/Azure/Serverless Framework/IaC全般
• 各種イベント・SNS・ブログでのクラウド普及活動(個人的に)
• Power Platform(Power Apps/Power Automate)/MS系全般
• SNS
http://makky12.hatenablog.com/
https://github.com/smt7174
@makky12 (Masaki Suzuki@フリーランスクラウドエンジニア)
名古屋市
豊橋市
中部国際空港
(セントレア)
半田市
【おまけ】愛知県半田市について
• 有名なもの
• 「ごんぎつね」の作者、新美南吉の生誕地
• お酒(日本酒。「國盛」「半田郷」など)
• お酢(「ミツカン」の本社があるのが半田市)
• 山車
• 市内で合計31台の山車がある
• 5年に一度、「はんだ山車まつり」という市内の山車が勢揃いする祭りがある
• 知多半島全体が「知多娘」という萌えキャラで町おこしをしている
• 公式URL: http://www.chita-musume.com/character/
• 半田市にはキャラクターが2人いる
• 半田 酔子(左)
• 広小路 クララ(右)
告知(Serverless Meetup Nagoyaについて)
• Serverless Meetup Nagoyaを開催します!
• 日時:2020/4/11(土) 13:00~ (予定)
• 場所:ワンダープラネット株式会社様 名古屋本社
※オンライン開催になる可能性あり
• 私がオーガナイザーを担当します
• 今のところ、5名のスピーカーが登壇予定です
• 大平 かつみさん/私も登壇します!
• 参加お待ちしてます!
…と言ってもなかなか難しいと思うので、知人やSNSで拡散お願いします
※イベントURL(まだ未公開): https://connpass.com/event/168807/
以上です
ご清聴ありがとうございました

More Related Content

More from Masaki Suzuki

Node.js version16の新機能
Node.js version16の新機能Node.js version16の新機能
Node.js version16の新機能Masaki Suzuki
 
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールAWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールMasaki Suzuki
 
Serverless Framework Pluginで行うLambdaテスト
Serverless Framework Pluginで行うLambdaテストServerless Framework Pluginで行うLambdaテスト
Serverless Framework Pluginで行うLambdaテストMasaki Suzuki
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能Masaki Suzuki
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能Masaki Suzuki
 

More from Masaki Suzuki (7)

Editorlt
EditorltEditorlt
Editorlt
 
Node.js version16の新機能
Node.js version16の新機能Node.js version16の新機能
Node.js version16の新機能
 
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールAWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツール
 
Serverless Framework Pluginで行うLambdaテスト
Serverless Framework Pluginで行うLambdaテストServerless Framework Pluginで行うLambdaテスト
Serverless Framework Pluginで行うLambdaテスト
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能
 
Vscodemeetup6
Vscodemeetup6Vscodemeetup6
Vscodemeetup6
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能
 

AWS × Serverless Framework ×QuickSightで IoTデータを可視化する