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

serverless.pdf

Makky12
February 27, 2020

 serverless.pdf

Makky12

February 27, 2020
Tweet

More Decks by Makky12

Other Decks in Programming

Transcript

  1. 本日お話しすること • きっかけ~作成アプリ~サーバーレスアプリの問題点(の一例) • サーバーレスアプリの問題点の解決 • Infrastructure as Code(IaC) •

    Serverless Framework • AWSでの収集データの分析・可視化 • Amazon Athena & Amazon QuickSight(※) • Amazon Neptune(参考資料) (※) • 自己紹介&告知 ※以後、製品名の「Amazon」は省略して記載します
  2. サーバーレスアプリの問題点(の一例) • リソース作成が大変 • コンソール上で1つ作るだけでも、結構手間 • コンソールの使い勝手が不十分…などの問題も • コンソールでは完結できない…という場合も •

    管理はもっと大変 • 作成リソース/作業手順/設定などを覚えなければならない • 手順書を残すにしても、その作成が手間だったり… • 作成担当者=作成経験者とは限らない • 人為的ミスが発生しやすくなる • 過去リソース作成担当者でも、時間が経てばミスが発生しやすくなる • (作業者により)品質が変わる/作業の俗人化などの問題 →リソース作成を楽にできる機能が欲しい!
  3. Infrastructure as Code(IaC)とは • インフラ構成・定義・構築を、コードから行うプロセスのこと • 「インフラ」とあるが、実際は各種リソースの作成・設定も合わせて実施 • コード(=定義ファイル)を作成し、デプロイするだけでOK •

    CloudFormation(AWS)/Azure Resource Manager(Azure) など • IaCを導入することで、下記のメリットがある • 安定した品質の保証 • 結果は毎回同じ(=冪等性(※)の確保) • 作業者の知識・スキル・経験に依存しない(=属人化解消) • 管理コストの削減 • 定義はすべて定義ファイル内で完結 • 細かい作業も不要(デプロイを行うだけ) • 開発者が「開発」にのみ注力できる ※冪等性(べきとうせい):「ある作業を何度行っても、毎回必ず同じ結果が得られる」性質のこと
  4. Serverless Frameworkとは • サーバーレスアプリの構築・開発・運用管理をサポートするOSS • 公式URL: https://serverless.com/ • IaCによるリソースデプロイにも対応 •

    AWS/Azure/GCPを始め、数多くのクラウドに対応 • 一番サポートが手厚いのはAWS • その他、テスト/CI・CD/モニタリングなども対応 • 特に、テストはCloudWatchログを出力出来たりと便利 • 各クラウドでの定義ファイルを共通のフォーマットで書ける • クラウドごとにフォーマットを覚え直す必要がない(=学習コストが少ない) • JSON/YAMLに対応 • その他、JavaScriptでの(動的な)値の設定なども可能
  5. IaC(Serverless Framework)を使うと… Lambda DynamoDB Simple Storage Service(S3) Athena QuickSight Lambda

    Lambda ここまでServerless Frameworkで作成できる! ※Athenaは「保存クエリ」の作成のみ対応 CloudWatch API Gateway ※今回は未使用
  6. Athenaついて • S3のファイル内の大量データの分析を簡易化するツール • S3ファイル内のデータを、RDBのようにテーブル/SQLで扱える • QuickSightと統合することで、データを簡単に可視化できる • QuickSightを始め、各種BI(※)ツールとの相性がいい •

    BIツール以外にも、ログファイルなどの解析にも便利 • JSON/CSVを始め、多くのファイル形式に対応 • JSONは一手間かかる。手っ取り早く行うならCSVがおすすめ • 正確には「ネスト」「構造体」などのデータがあると少々面倒 ※BI:Business Intelligence(企業が膨大な蓄積データを分析し、その結果を経営意思決定に活用する事)
  7. QuickSightについて • AWSのクラウド駆動BIツール • 分析データなどの各種データをグラフなどで可視化できる • 企業などの迅速な意思決定などをサポートする • 堅牢なインメモリエンジン(SPICE)を使用 •

    容量制限あり。不要なら無理に使わなくてもよい • 分析データのソースはAthena・RDS・S3など多岐にわたる • GitHub/Twitterなどにも対応 • BI用途でなくても、収集データの可視化などが容易に行える • (例)ログ解析/集計データの可視化… etc • まさに今回がコレ
  8. まとめ • サーバーレスアプリのリソース管理には、IaCが便利 • リソースの管理コストの削減 • 冪等性による、属人化・スキル依存の解消 • IaCのツールとして、Serverless Frameworkが便利

    • 複数のクラウドに対応 • 特にAWSはサポートが手厚い • Athenaを使うと、収集データをRDBのように扱えて便利 • テーブル/ビュー/SQL etc. • QuickSightで、収集データをグラフで可視化できる • BIツールとして、容易に導入しやすい • BI用途以外にも、ログ解析など
  9. 【参考】Neptuneについて • フルマネージドなグラフ型データベース • 「ノード・エッジ型」の構造を持つ(右下図) • 「テーブル型」が弱い「データ間の関係性/依存性」の保持も可能 • Twitterの「フォロー/フォロワー」 •

    ECサイトの「一緒に買われてる商品(サジェスチョン)」etc. • 今回は下記の理由で利用せず • 収集データ間に具体的な「関係性/依存性」がない • コストの問題(「無料枠」がない) • AWS公式URL:https://aws.amazon.com/jp/neptune/ 本1 作者:A ジャンル:IT 本2 作者:B ジャンル:IT 本3 作者:A ジャンル:ゲーム 作者が同じ ジャンルが同じ 一緒に 買われてる
  10. 自己紹介 • 名前:鈴木 正樹 (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@フリーランスクラウドエンジニア) 名古屋市 豊橋市 中部国際空港 (セントレア) 半田市
  11. 【おまけ】愛知県半田市について • 有名なもの • 「ごんぎつね」の作者、新美南吉の生誕地 • お酒(日本酒。「國盛」「半田郷」など) • お酢(「ミツカン」の本社があるのが半田市) •

    山車 • 市内で合計31台の山車がある • 5年に一度、「はんだ山車まつり」という市内の山車が勢揃いする祭りがある • 知多半島全体が「知多娘」という萌えキャラで町おこしをしている • 公式URL: http://www.chita-musume.com/character/ • 半田市にはキャラクターが2人いる • 半田 酔子(左) • 広小路 クララ(右)
  12. 告知(Serverless Meetup Nagoyaについて) • Serverless Meetup Nagoyaを開催します! • 日時:2020/4/11(土) 13:00~

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