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

ユーザー企業におけるサーバレスシステムへの移行/JAWS DAYS2018

ユーザー企業におけるサーバレスシステムへの移行/JAWS DAYS2018

・JAWS DAYS2018
・東京
・20180310

marumoto

March 10, 2018
Tweet

More Decks by marumoto

Other Decks in Technology

Transcript

  1. • ⽒名 丸本 健⼆郎(まるもと けんじろう) • 年齢 37歳 • ⽣まれ

    広島 • 趣味 – スキー 1級 30回/年 – ロードバイク ave 27km/h – ビリヤード C級 – 釣り ⿂探任せ – 料理 休⽇コック – 畑仕事 30分/毎朝 – DIY 外構完成、ウッドデッキ図⾯製作中 • 社歴 Sier(⼤阪)→ 外資(東京)→ ダイソー(広島) ⾃⼰紹介 DAISO INDUSTRIES CO., LTD. 5
  2. ⼤規模システムはイヤ! DAISO INDUSTRIES CO., LTD. 10 ベンダー システム サーバー 機能

    C 機能 A 機能 B ・システム変更による影響範囲が広い ・テストが⼤きくなる
  3. 密結合はイヤ! 17 DAISO INDUSTRIES CO., LTD. 密結合 ⼀⽅にメス 他⽅にもメス 他⽅にもメス

    他⽅にもメス 他⽅にもメス もうメスなんて⼊れれない
  4. インフラ管理はイヤ! DAISO INDUSTRIES CO., LTD. 22 管理対象外 管理対象 全てを管理 オンプレ

    クラウド MIDDLE VM プログラム 建屋 ハード OS 電源 NW ⼟地 ハードの 管理が不要 MIDDLE VM プログラム 建屋 ハード OS 電源 NW ⼟地 MIDDLE VM プログラム 建屋 ハード OS 電源 NW ⼟地 サーバーレス アプリ のみに集中 ビジネス プログラム
  5. 処理の考え⽅ DAISO INDUSTRIES CO., LTD. 26 処理したいデータ量 処 理 能

    ⼒ 1h 処理能⼒/1h 1hで終わらせたい! スケールアップ
  6. 処理の考え⽅ DAISO INDUSTRIES CO., LTD. 27 処理したいデータ量 処 理 能

    ⼒ 1h 処理能⼒/1h 1hで終わらせたい! ×3 スケールアウト
  7. スケールアップはイヤ! DAISO INDUSTRIES CO., LTD. 28 店舗数 ・・・5,050 × 商品数

    ・・・70,000 × 計算⽇数 ・・・45 =15,907,500,000レコード (159億)
  8. サービスいっぱい・・・ DAISO INDUSTRIES CO., LTD. 32 Compute Amazon EC2 AWS

    Elastic Beanstalk Amazon EFS Amazon Glacier Amazon S3 Storage Database Amazon DynamoDB Amazon ElastiCache Amazon RDS Amazon Redshift Amazon CloudWatch AWS CloudFormation Management Tools Amazon Kinesis Analytics Amazon EMR Developer Tools Amazon API Gateway AWS Step Functions Amazon SWF Application Services Messaging Amazon SES Amazon SQS Amazon SNS Amazon ECS AWS Lambda AWS CloudTrail Amazon ES Amazon CloudSearch AWS CodeCommit AWS CodeDeploy AWS CodeBuild AWS CodePipeline
  9. 振り分けてみた DAISO INDUSTRIES CO., LTD. 33 Amazon EC2 AWS Elastic

    Beanstalk Amazon EFS Amazon Glacier Amazon S3 Amazon DynamoDB Amazon ElastiCache Amazon RDS Amazon Redshift Amazon CloudWatch AWS CloudFormation Amazon Kinesis Amazon EMR Amazon API Gateway AWS Step Functions Amazon SWF Amazon SES Amazon SQS Amazon SNS Amazon ECS AWS Lambda AWS CloudTrail Amazon ES Amazon CloudSearch AWS CodeCommit AWS CodeDeploy AWS CodeBuild AWS CodePipeline スケールアウト型 スケールアップ型
  10. 参照 ためる チェック 受取 構成図 36 DAISO INDUSTRIES CO., LTD.

    コマンド クエリ 参照更新 POSデータを うける → ためる → つかう
  11. S3 39 DAISO INDUSTRIES CO., LTD. サーバー サーバーレス 冗⻑ バックアップ

    世代管理 バックアップ 完全性 リネーム イベント 検知 サーバーあり、と、サーバーレスで⽐較 標準 標準 標準 標準
  12. S3 42 DAISO INDUSTRIES CO., LTD. tips ファイル名を意識しよう 20180310_A 20180310_B

    20180310_C 20180310_D 20180310_E 20180310_F アクセス効率が悪い
  13. S3 44 DAISO INDUSTRIES CO., LTD. tips ファイル名を意識しよう ab4j20180310_A 1a6520180310_B

    oeb120180310_C beak20180310_D 3jda20180310_E pm9j20180310_F ハッシュ値 + ファイル名
  14. S3 45 DAISO INDUSTRIES CO., LTD. tips ファイル名を意識しよう ハッシュ値 +

    ファイル名 ab4j20180310_A 1a6520180310_B oeb120180310_C beak20180310_D 3jda20180310_E pm9j20180310_F アクセス効率が良い 定常的に100リクエスト/1秒、瞬間的に800リクエスト/1秒 以上
  15. SQS 50 DAISO INDUSTRIES CO., LTD. は き だ せ

    る スケーラブル う け と め れ る
  16. ④ ⑤ SQS 51 DAISO INDUSTRIES CO., LTD. 順番保証されない ①

    ② ③ ④ ⑤ ② ③ tips ① ① ② ③ ④ ⑤
  17. SQS 52 DAISO INDUSTRIES CO., LTD. 順番保証されない ① ② ③

    ④ ⑤ ① ② ③ ④ ⑤ 結果整合性で設計する! どうしても順番がいる場合は、FIFOオプション tips
  18. Lambda オンプレ、クラウドサーバー、サーバーレスを⽐較 58 DAISO INDUSTRIES CO., LTD. 処 理 能

    ⼒ 時 24 0 12 6 18 オンプレ ピークにあわせてリソースを確保 想定処理量
  19. 59 DAISO INDUSTRIES CO., LTD. 処 理 能 ⼒ 停⽌

    24 0 12 稼働 スケール アップ/アウト スケール ダウン/イン 6 18 停 ⽌ Lambda オンプレ、クラウドサーバー、サーバーレスを⽐較 クラウドサーバー 想定処理量 時
  20. 60 DAISO INDUSTRIES CO., LTD. イベント駆動でスケーラブル、無駄がない 処 理 能 ⼒

    24 0 12 6 18 Lambda オンプレ、クラウドサーバー、サーバーレスを⽐較 サーバーレス 時
  21. start end Lambda 63 DAISO INDUSTRIES CO., LTD. MAX 5分

    時間内に処理できる量をつかむ tips
  22. start end Lambda 64 DAISO INDUSTRIES CO., LTD. MAX 5分

    5分で 終わる ボリューム にカット tips
  23. Lambda 65 DAISO INDUSTRIES CO., LTD. ソース容量 50MB 制限 外部ライブラリ

    Pandas(40MB) tips 別の外部ライブラリ (20MB) もう⼊らない! 解決策・・・⾒つかってません。。
  24. データベース DynamoDB 67 DAISO INDUSTRIES CO., LTD. RDS Dynamo 特性

    AICD (並列と相性悪い) 結果整合性 (並列と相性が良い) データ モデル テーブル キー・バリュー コスト ストレージ I/O ストレージ キャパシティユニット
  25. データベース DynamoDB 68 DAISO INDUSTRIES CO., LTD. RDS Dynamo 特性

    AICD (同時コネクション数が少) 結果整合性 (同時コネクション数が多い) データ モデル テーブル キー・バリュー コスト ストレージ I/O ストレージ キャパシティユニット tips
  26. DynamoDB 73 DAISO INDUSTRIES CO., LTD. 同時実⾏数 制御前 同時実⾏数 制御後

    書き込みキャパ上限で、 Lamdbaがエラー多発 書き込みキャパ以下でDynamoが稼働
  27. CI/CD + cloudformation 82 DAISO INDUSTRIES CO., LTD. AWS CLI

    デプロイの⾃動化 CFn未対応のものがある (ex.Lamdba同時実⾏数) tips circleCIで「CFn→CLI」
  28. 全体 開発イメージ 83 DAISO INDUSTRIES CO., LTD. 本番環境 本番 ⾃動

    デプロイ ⾃動 テスト master 83 検証環境 総合テスト ⾃動 デプロイ ⾃動 テスト Release/ ~~~ 開発環境 結合テスト ⾃動 デプロイ ⾃動 テスト develop 実験環境 環境テスト ⾃動 デプロイ ⾃動 テスト Push Feature/ ~~~ 単体 テスト Commit 改修 プルリク プル リク
  29. 3.(まとめ)使ってみての感想 DAISO INDUSTRIES CO., LTD. 86 アプリ チーム インフラ チーム

    サーバーあり 1 1 サーバーレス 0.1 苦労した?? → 今はどう? 0.8 ・制約があるから、迷わない ・優秀な先⽣がいっぱい
  30. アプリ インフラ サーバーあり 70点 70点 サーバーレス 3.(まとめ)できあがったもの DAISO INDUSTRIES CO.,

    LTD. 87 創られたシステムの出来は? 90点 クラウドのメリットを簡単に、⼤きく享受 90点