Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IoTとServerlessの世界 Jawsfesta_1103

236 views

Published on

JAWS Festa 2018の登壇資料

Published in: Internet
  • Be the first to comment

  • Be the first to like this

IoTとServerlessの世界 Jawsfesta_1103

  1. 1. IoTとServerlessの世界 〜アプリケーションとバッチ処理のServerless化〜 株式会社KYOSO 泉 亮輔 2018/11/03 JAWS FESTA 2018
  2. 2. 2 自己紹介 名前 = 泉 亮輔 会社 = 株式会社KYOSO お仕事 = IoT.kyoto (https://iot.kyoto) AWS歴 = 約2.5年 好きなAWSのサービス = Lambda, DynamoDB, AppSync
  3. 3. 3 名前 = 西田侑平 会社 = 株式会社KYOSO お仕事 = IoT.kyoto(https://iot.kyoto) 好きなAWSのサービス = ECS, AWSBatch 自己紹介
  4. 4. 4 会社紹介 株式会社KYOSO 設立 1973年 資本金 3.7億円 従業員 500名 事業所 京都・大阪・東京・名古屋 ITサービス イロイロご提供 • デジタルトランスフォーメーション • インフラ構築・保守 • データセンター運用 • サービスデスク • アプリ開発・保守
  5. 5. 5
  6. 6. 6 IoTスターターパック イニシャル ¥120,000〜 オプションをチョイスする セミカスタムメイド方式
  7. 7. 7 FlashAirでIoT イニシャル ¥120,000〜 オプションをチョイスする セミカスタムメイド方式
  8. 8. 8 公開事例多数!
  9. 9. 9 TL;DR モノ クラ ウド データ 可視化 バッチ 処理
  10. 10. 10 TL;DR モノ クラ ウド データ 可視化 バッチ 処理 Serverless!!!
  11. 11. 11 AWSやってるよ! って方は挙手!
  12. 12. 12 IoTやってるよ! って方は挙手!
  13. 13. 13 Serverlessやってるよ! って方は挙手!
  14. 14. 14 Serverlessとは? (AWSでの話をすると) AWSLambdaやAPIGatewayなどのマネージド サービスを組み合わせて、EC2といったサー バーを立てることなく、アプリケーションを 構築すること
  15. 15. 15 Serverlessとは? 勘違いしてはいけないのが… 全くサーバを利用しないのではなく サーバを利用してる感がない ということです
  16. 16. 16 Serverlessとは? 異論は認める
  17. 17. 17 IoTをServerlessでやる
  18. 18. 18 IoTをServerlessでやる 弊社ではIoTデバイスからのデータをDBに 保存するまでのアーキテクチャを Serverlessで構築しています。
  19. 19. 19 IoTをServerlessでやる
  20. 20. 20 なぜか? データ量の増減が激しい スケールしやすい構成でなければならない Serverlessならスケールしやすいのでは?
  21. 21. 21 IoTをServerlessでやる デバイスが増えたら…
  22. 22. 22 IoTをServerlessでやる シャードを増やして データの受け口を増 やして対応
  23. 23. 23 IoTをServerlessでやる シャードの数だけ 同時実行数が増える
  24. 24. 24 IoTをServerlessでやる オートキャパシティ を有効にしておく
  25. 25. 25 IoTをServerlessでやる
  26. 26. 26 IoTをServerlessでやる これEC2などのサーバ上でストリーム 処理をしていたらって考えただけで ……………(ry
  27. 27. 27 なのでServerlessでやりましょう
  28. 28. 28 アプリケーションのServerless化
  29. 29. 29 主役
  30. 30. 30 ちょーザックリ説明すると… DynamoDBに蓄積したセンサーデータを 可視化するWebアプリケーション (無料です)
  31. 31. 31
  32. 32. 32 アーキテクチャ 弊社環境 お客様環境
  33. 33. 33 アップデートするぞ。
  34. 34. 34 こうして始まった… • Node.jsのバージョンアップ • その他諸々のパッケージのバージョンアップ • 新機能の追加 • UI / UXの改良 • そもそもEC2いるか?
  35. 35. 35 こうして始まった… • Node.jsのバージョンアップ • その他諸々のパッケージのバージョンアップ • 新機能の追加 • UI / UXの改良 • そもそもEC2いるか? 注目!
  36. 36. 36 そもそもEC2いるか? • コンテンツ(HTML/CSS/JS)をどうするか? • Node.jsの処理をどうするか? • 認証をどうするか • etcetc...... こんな感じでEC2を排除するためのハードルががが……
  37. 37. 37 EC2半端ないって……
  38. 38. 38 こうすればいいのでは? • コンテンツはS3で配信 • S3の前段にCloudFrontを挟んでHTTPS対応 • 認証周りはCognito • Node.jsの処理はLambda • APIGateway経由でLambdaを呼び出す
  39. 39. 39 構築中…構築中…… 弊社環境 お客様環境
  40. 40. 40 構築中…構築中…… 弊社環境 お客様環境
  41. 41. 41 構築中…構築中…… 弊社環境 お客様環境
  42. 42. 42 構築中…構築中…… 弊社環境 お客様環境
  43. 43. 43 構築中…構築中…… 弊社環境 お客様環境
  44. 44. 44 構築中…構築中…… 弊社環境 お客様環境
  45. 45. 45 完成っ!!!
  46. 46. 46 そうしてこうなった 弊社環境 お客様環境
  47. 47. 47 Before 弊社環境 お客様環境
  48. 48. 48 After 弊社環境 お客様環境
  49. 49. 49 アプリをServerless化するメリット • EC2がなくなった →サーバの管理から開放された • コスト削減 →ほとんど料金がかからない
  50. 50. 50 アプリをServerless化するデメリット • APIGatewayが30秒以上持たないので、レスポンスが必要な ら、その範囲に収めないといけない • Lambdaを使っているので一度に5分以上かかる処理が発生 する場合は工夫しなければいけない • Lambdaを利用するのでRDSとの相性が激悪になる • 上記のように利用するサービスの制限には注意が必要
  51. 51. 51 アプリをServerlessにした所感 • 大人しくEC2を立てたほうがいい場合はある • 不要な処理をごっそり消せたので良かった • この世に存在する便利なものは使っていこう ぜっていう思考を手に入れた • Serverlessに魅了された
  52. 52. 52 バッチ処理のServerless化
  53. 53. 53 IoTを行う上で欲しくなる、 求められるモノって?
  54. 54. 54 センサから得た情報を まとめた成果物
  55. 55. 55 バッチ処理
  56. 56. 56 バッチ処理って何? バッチ処理(バッチしょり)とは、コンピュータで1つの 流れのプログラム群(ジョブ)を順次に実行すること。 あらかじめ定めた処理を一度に行うこと 引用元:wikipedia
  57. 57. 57 バッチ処理って何? バッチ処理(バッチしょり)とは、コンピュータで1つの 流れのプログラム群(ジョブ)を順次に実行すること。 あらかじめ定めた処理を一度に行うこと 引用元:wikipedia あらかじめ決められた処理を一括に 実行すること
  58. 58. 58 みなさん、 バッチ処理好きですか?
  59. 59. 59 PDF生成、CSV生成 メール送信、 etc…
  60. 60. 60 バッチ処理の仕組み、 構成考えるの楽しいぃぃぃ!!!
  61. 61. 61 (このことが災いして、ShellScriptにドハマリし、 「シェル芸」と呼ばれる魔界の地に 足を踏み入れてしまったのはまた別のお話)
  62. 62. 62 今回サーバーレス化したバッチ処理は…
  63. 63. 63 今回サーバーレス化したバッチ処理は… 生成
  64. 64. 64 要望  週ごとで集計したデータ(JST, UTC, 日本語, 英語)をグラ フ、テーブル表示したPDFがほしい  月ごとで集計したデータをグラフ、テーブル表示した PDFがほしい  更にそのPDFを月ごと、週ごとでメール送信してくれ ると嬉しいな😍
  65. 65. 65
  66. 66. 66 • 既存のWebサービス内にPDFダ ウンロード機能はあるが、 パフォーマンスチューニング していた • チューニングしたアプリ に対して、お客様からの要求を アプリ内に組み込んだら どうなるか…😨
  67. 67. 67
  68. 68. 68 バッチ化すれば ええんちゃう?
  69. 69. 69 バッチ…?なる…ほど…? でも、PDF機能はアプリ内に 存在してるし… その機能作った人いないし… どうすれば…
  70. 70. 70
  71. 71. 71 そうか!既存のアプリからPDF作成の コア部分だけを抽出して、 Dockerコンテナ化すればいいのか!!
  72. 72. 72 PDF作成機能のコア部分を(頑張って) コンテナ化完了 コンテナはECRに置くとして… どのサービスで呼び出そう…
  73. 73. 73 ECS(EC2) • AWSでコンテナを使うとなると、避けては通れない サービス 即決しなかった理由 • 極力、EC2のお守りなんてしたくない
  74. 74. 74 ECS(Fargate) • EC2のお守りもAWS側で面倒見てくれる 起動タイプ 即決しなかった理由 • コンテナのリトライ機構を自分で作らないといけない
  75. 75. 75 Fargateかなぁ… • 2018/08/28からタスクスケジュールを サポートしてるし、いけそう… • リトライ機構頑張って作るかぁ…
  76. 76. 76 AWS Batchってのがあるで
  77. 77. 77 少し調べてみると…
  78. 78. 78 AWS Batchとは… • リトライとキューイングの仕組みがある • 基本料金は無料 (ジョブ実行時に立ち上げるEC2料金のみ) • 設定次第だが、ジョブが終了したら EC2を落としてくれる • 裏ではECSが動いているのでECSの知識があれば 理解しやすい
  79. 79. 79 AWS Batchええやん!!
  80. 80. 80 結局こうなった
  81. 81. 81 開発方法は?
  82. 82. 82 Dockerコンテナ内でVimる ホストマシンでもVimる
  83. 83. 83 Volume命令でディレクトリを 同期して、 好きなエディタ、IDEで開発
  84. 84. 84 開発時の注意点は?
  85. 85. 85 とにかく と仲良く
  86. 86. 86 CI/CDは?
  87. 87. 87 latestを付与 push latestを参照
  88. 88. 88 まとめ • 小規模なバッチ処理はLambda、 中規模、大規模なバッチ処理はAWS Batch、 Fargateがおすすめ! • Dockerについて知っておくとバッチ処理実装の 選択肢が増えますよ! • コンテナの実行環境を意識しなくて良い = サーバーレス
  89. 89. 89 快適なバッチ生活を!
  90. 90. 90 結論 Serverless楽しい♫
  91. 91. 91 Fin.

×