10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

体育会系エンジニアAdvent Calendar 2017

Day 20

サーバレスでどこまで出来るのかの備忘録(2017)

Last updated at Posted at 2017-12-19

ほんとのところ

GoogleHome使って、SSMLで歌を歌わせようとしていていたのですが。。。

  • Amazon Pollyでピッチを適当にしたSSMLで音声生成
  • ピッチ推定からの音程推定を、FFTとか何かしらの方法で行う
  • 推定結果からピッチを調整して再度生成
  • 推定と調整を繰り返す
  • 出来上がったSSMLをGoogleHomeにぶん投げる

全然間に合わなかった

ということで

サイトを作成する必要があったので、
全部サーバレスで作るとしたらどのへんのサービス使うか考えたときのメモです

  • 要件
    • ログイン機能がある
    • ネット上のデータの定期的な収集がある
    • ユーザがファイルを上げた時に非同期で変換処理する
    • 各種データを一覧でページングする
    • APIで提供も行う
    • サイトの公開場所

ログイン機能

  • Amazon Cognito
    • User Pools
    • ID Poolを使うとAWSサービスに直接アクセスできる一時的なAWS認証情報を取得可能
  • Amazon Cognito フェデレーテッドアイデンティティ

IAMでユーザロールを変更することも出来るので
API等も作成せずに、直接DynamoDBのリードオンリーのロールを与えてリソースに直接アクセス等もあり

処理

  • AWS Lambda
  • S3、DynamoDB、Kinesis、SNS、CloudWatchからのイベントで起動させる
    • 作成、変更、削除など
  • AWS Step Functionsをつかえば、処理のフロー構築も可能
  • 100ms単位で課金
  • 稼働時間の上限(タイムリミット)指定可能、最大5分

S3にファイルアップ→イベント伝搬→Lambdaでファイル処理

  • AWS Batch
  • 定期的な処理
  • ログ集計とか

データの永続化

RDSを使ったほうがいいパタンもあるが殆どの場合、DynamoDBで行けそうな気がする

定期実行

  • AWS Lambda
  • CloudWatchのスケジュール起動からのイベントで起動させる
    • 最小単位1分
  • 秒単位で稼働させるには、独自実装必要

API

公開

  • Amazon S3
    • 静的ファイル
    • ウェブサイトホスティング用の設定を想定

価格

無料枠は考えずに

  • Amazon Cognito

    • 月間アクティブユーザー(MAU)で従量課金
    • 0.00550USD/MAU
      • 10000ユーザで55USD(月間)
  • Amazon DynamoDB

    • 0.000742USD/WCU 1時間当たり 1秒1回書き込み
    • 0.0001484USD/RCU 1時間当たり 1秒1回読み込み
    • 書き込みも読み込みも5ユニット(初期設定)の場合
      • (0.000742+0.0001484)2430*5 = 3.2USD(月間)
  • AWS Lambda

  • 0.0000002USD/Request

  • 0.000000208USD/128MB100ms

  • 一ヶ月動かしっぱなし

    • (0.0000002602430)+(0.0000002081060602430) = 5.4USD(月間)
  • Amazon API Gateway

    • 4.25USD/100万Request
    • 0.14USD/GB 転送量
  • Amazon S3

    • 保存容量 0.025USD/GB
    • 転送量 0.140USD/GB

マイクロインスタンスの方が安い場合があるけれども
サーバ管理なしに完全マネージドのメリットは大きいかと思います

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?