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

AWSのサーバーレスでとりあえず開発をはじめてみた時に無知ゆえに陥りがちなこと

danishi
March 01, 2024

 AWSのサーバーレスでとりあえず開発をはじめてみた時に無知ゆえに陥りがちなこと

danishi

March 01, 2024
Tweet

More Decks by danishi

Other Decks in Technology

Transcript

  1. 講師⾃⼰紹介 2 n ⻄⽥ 駿史 • 第四開発事業部 第三開発S セクションリーダー •

    SES ⇒ SIer ⇒ エンジニア、PM、マネジャー • 2019年4⽉アイレット⼊社 • 登壇久しぶりなので頑張ります🔥 • 最近AWS、GC両⽅全冠しました👑👑 danishi
  2. API Gatewayを使う時の制約 8 n リクエストを受けてから29秒以内にレスポンスを返さないと504エラー 最⻑29秒で統合タイムアウト n Lambdaの送受信ペイロード上限が6MB n ⼤きなファイルを直接POSTできない

    n Step FunctionsやSQSと組み合わせて⾮同期に。(CSV Imp/Expとか要注意) リクエスト、レスポンスのサイズ制限 n S3を利⽤する • AWS SDK for JavaScriptからS3にアップロード、APIにはパスだけ渡す • レスポンスはS3の署名付きURLを返す
  3. DynamoDBを使う時の制約 10 それでもパフォーマンスが良いので⼒技でなんとかなることもあるけど DynamoDBが適さないところでは素直に他のDBを使おう。最近出たZero-ETLが光明になるか。 n PK、SKおよびLSI、GSIを設定していない、できない箇所では検索(クエリ)及びソートが DynamoDBの機能では(効率的に)できない。 • 検索とソートの属性を合わせる。複合検索、複合ソートは不可。 •

    フィルターを使ってもコスト、速度は上がらない。 • ページングは次の検索キーを返すためフィルターやプログラムで結果を捏ねると使えない n 論理削除の実装が難しい n JOINがないのでN+1問題発⽣しがち、回避のために⾮正規化するのも⾟い n トランザクションはあるが100アイテムまで n 連番キーはホットスポットになるためアンチパターン