$30 off During Our Annual Pro Sale. View Details »

serverless.pdf

Makky12
February 27, 2020

 serverless.pdf

Makky12

February 27, 2020
Tweet

More Decks by Makky12

Other Decks in Programming

Transcript

  1. AWS × Serverless Framework
    ×QuickSightで
    IoTデータを可視化する
    Author: Masaki Suzuki
    @makky12

    View Slide

  2. 本日お話しすること
    • きっかけ~作成アプリ~サーバーレスアプリの問題点(の一例)
    • サーバーレスアプリの問題点の解決
    • Infrastructure as Code(IaC)
    • Serverless Framework
    • AWSでの収集データの分析・可視化
    • Amazon Athena & Amazon QuickSight(※)
    • Amazon Neptune(参考資料) (※)
    • 自己紹介&告知
    ※以後、製品名の「Amazon」は省略して記載します

    View Slide

  3. 資料&サンプルアプリ
    • 本日の発表資料&作成アプリは、以下の場所で公開してます
    • 登壇資料
    • 登壇資料URL(SpeakerDeck or SlideShare)
    • 作成アプリ(GitHub)
    • https://github.com/smt7174/nature-remo

    View Slide

  4. きっかけ
    • 大平さんのツイート(→)
    • 大平さんはAzureで実行
    • じゃあ、僕はAWSでやってみよう!
    • AWSなら、Athena→QuickSightに
    流してグラフ表示したら、BIっぽくて
    いい感じじゃない?

    View Slide

  5. 作ったアプリの構成
    Lambda
    CloudWatch
    DynamoDB
    Simple Storage Service(S3) Athena
    QuickSight
    Lambda Lambda
    リソースが多い…
    API Gateway
    ※今回は未使用

    View Slide

  6. サーバーレスアプリの問題点(の一例)
    • リソース作成が大変
    • コンソール上で1つ作るだけでも、結構手間
    • コンソールの使い勝手が不十分…などの問題も
    • コンソールでは完結できない…という場合も
    • 管理はもっと大変
    • 作成リソース/作業手順/設定などを覚えなければならない
    • 手順書を残すにしても、その作成が手間だったり…
    • 作成担当者=作成経験者とは限らない
    • 人為的ミスが発生しやすくなる
    • 過去リソース作成担当者でも、時間が経てばミスが発生しやすくなる
    • (作業者により)品質が変わる/作業の俗人化などの問題
    →リソース作成を楽にできる機能が欲しい!

    View Slide

  7. Infrastructure as Code(IaC)とは
    • インフラ構成・定義・構築を、コードから行うプロセスのこと
    • 「インフラ」とあるが、実際は各種リソースの作成・設定も合わせて実施
    • コード(=定義ファイル)を作成し、デプロイするだけでOK
    • CloudFormation(AWS)/Azure Resource Manager(Azure) など
    • IaCを導入することで、下記のメリットがある
    • 安定した品質の保証
    • 結果は毎回同じ(=冪等性(※)の確保)
    • 作業者の知識・スキル・経験に依存しない(=属人化解消)
    • 管理コストの削減
    • 定義はすべて定義ファイル内で完結
    • 細かい作業も不要(デプロイを行うだけ)
    • 開発者が「開発」にのみ注力できる
    ※冪等性(べきとうせい):「ある作業を何度行っても、毎回必ず同じ結果が得られる」性質のこと

    View Slide

  8. Serverless Frameworkとは
    • サーバーレスアプリの構築・開発・運用管理をサポートするOSS
    • 公式URL: https://serverless.com/
    • IaCによるリソースデプロイにも対応
    • AWS/Azure/GCPを始め、数多くのクラウドに対応
    • 一番サポートが手厚いのはAWS
    • その他、テスト/CI・CD/モニタリングなども対応
    • 特に、テストはCloudWatchログを出力出来たりと便利
    • 各クラウドでの定義ファイルを共通のフォーマットで書ける
    • クラウドごとにフォーマットを覚え直す必要がない(=学習コストが少ない)
    • JSON/YAMLに対応
    • その他、JavaScriptでの(動的な)値の設定なども可能

    View Slide

  9. IaC(Serverless Framework)を使うと…
    Lambda
    DynamoDB
    Simple Storage Service(S3) Athena
    QuickSight
    Lambda Lambda
    ここまでServerless Frameworkで作成できる!
    ※Athenaは「保存クエリ」の作成のみ対応
    CloudWatch
    API Gateway
    ※今回は未使用

    View Slide

  10. Athenaついて
    • S3のファイル内の大量データの分析を簡易化するツール
    • S3ファイル内のデータを、RDBのようにテーブル/SQLで扱える
    • QuickSightと統合することで、データを簡単に可視化できる
    • QuickSightを始め、各種BI(※)ツールとの相性がいい
    • BIツール以外にも、ログファイルなどの解析にも便利
    • JSON/CSVを始め、多くのファイル形式に対応
    • JSONは一手間かかる。手っ取り早く行うならCSVがおすすめ
    • 正確には「ネスト」「構造体」などのデータがあると少々面倒
    ※BI:Business Intelligence(企業が膨大な蓄積データを分析し、その結果を経営意思決定に活用する事)

    View Slide

  11. QuickSightについて
    • AWSのクラウド駆動BIツール
    • 分析データなどの各種データをグラフなどで可視化できる
    • 企業などの迅速な意思決定などをサポートする
    • 堅牢なインメモリエンジン(SPICE)を使用
    • 容量制限あり。不要なら無理に使わなくてもよい
    • 分析データのソースはAthena・RDS・S3など多岐にわたる
    • GitHub/Twitterなどにも対応
    • BI用途でなくても、収集データの可視化などが容易に行える
    • (例)ログ解析/集計データの可視化… etc
    • まさに今回がコレ

    View Slide

  12. QuickSightで表示した結果
    • 色々あったけど、無事QuickSightでグラフ表示することができた

    View Slide

  13. まとめ
    • サーバーレスアプリのリソース管理には、IaCが便利
    • リソースの管理コストの削減
    • 冪等性による、属人化・スキル依存の解消
    • IaCのツールとして、Serverless Frameworkが便利
    • 複数のクラウドに対応
    • 特にAWSはサポートが手厚い
    • Athenaを使うと、収集データをRDBのように扱えて便利
    • テーブル/ビュー/SQL etc.
    • QuickSightで、収集データをグラフで可視化できる
    • BIツールとして、容易に導入しやすい
    • BI用途以外にも、ログ解析など

    View Slide

  14. 【参考】Neptuneについて
    • フルマネージドなグラフ型データベース
    • 「ノード・エッジ型」の構造を持つ(右下図)
    • 「テーブル型」が弱い「データ間の関係性/依存性」の保持も可能
    • Twitterの「フォロー/フォロワー」
    • ECサイトの「一緒に買われてる商品(サジェスチョン)」etc.
    • 今回は下記の理由で利用せず
    • 収集データ間に具体的な「関係性/依存性」がない
    • コストの問題(「無料枠」がない)
    • AWS公式URL:https://aws.amazon.com/jp/neptune/
    本1
    作者:A
    ジャンル:IT
    本2
    作者:B
    ジャンル:IT
    本3
    作者:A
    ジャンル:ゲーム
    作者が同じ
    ジャンルが同じ
    一緒に
    買われてる

    View Slide

  15. 自己紹介
    • 名前:鈴木 正樹 (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@フリーランスクラウドエンジニア)
    名古屋市
    豊橋市
    中部国際空港
    (セントレア)
    半田市

    View Slide

  16. 【おまけ】愛知県半田市について
    • 有名なもの
    • 「ごんぎつね」の作者、新美南吉の生誕地
    • お酒(日本酒。「國盛」「半田郷」など)
    • お酢(「ミツカン」の本社があるのが半田市)
    • 山車
    • 市内で合計31台の山車がある
    • 5年に一度、「はんだ山車まつり」という市内の山車が勢揃いする祭りがある
    • 知多半島全体が「知多娘」という萌えキャラで町おこしをしている
    • 公式URL: http://www.chita-musume.com/character/
    • 半田市にはキャラクターが2人いる
    • 半田 酔子(左)
    • 広小路 クララ(右)

    View Slide

  17. 告知(Serverless Meetup Nagoyaについて)
    • Serverless Meetup Nagoyaを開催します!
    • 日時:2020/4/11(土) 13:00~ (予定)
    • 場所:ワンダープラネット株式会社様 名古屋本社
    ※オンライン開催になる可能性あり
    • 私がオーガナイザーを担当します
    • 今のところ、5名のスピーカーが登壇予定です
    • 大平 かつみさん/私も登壇します!
    • 参加お待ちしてます!
    …と言ってもなかなか難しいと思うので、知人やSNSで拡散お願いします
    ※イベントURL(まだ未公開): https://connpass.com/event/168807/

    View Slide

  18. 以上です
    ご清聴ありがとうございました

    View Slide