Amazon API Gateway

www.slideshare.net

概要

  • REST、WebSocketの2種類のAPIを使うことが可能
  • AWS WAFを設定可能(RESTのみ)

ユースケース

  • インターネットからアクセス可能なパブリックなWeb API基盤
  • 自社企業・グループ内でのプライベートなWeb API基盤
  • AWSのサービスを独自のAPIとして提供(DynamoDBなど)
  • サーバーレスアーキテクチャの実現

API作成の流れ(RESTのみ)

  • 既存のAPIからクローン
  • Swagger(OpenAPI)のファイル(JSON, YAML)のンポート

APIの設定(REST)

  • メソッドの設定にはメソッドリクエストと、統合リクエストの2種類がある
    • メソッドリクエスト →HTTP経由のメソッドに関する設定
    • 統合リクエスト →バックエンドのリクエストに関する設定

統合リクエス

  • Mockを利用可能(マッピングテンプレートに基づきバックエンドのレスポンスを代行)
  • VPCリンク
    • VPC内のサービスにアクセス可能

APIの設定(WebSocket)

  • ルート(=経路)ごとに設定(RESTのメソッドにあたる)
    • ルートリクエス
    • 統合リクエスト(RESTと同じ設定)

認証・許可の種類(REST、WebSocket共通)

  • IAMアクセス権限
    • アクセスキーなどから精製したAWS署名v4を使用
  • Lambdaオーソライザー
  • Cognitoオーソライザー
    • ユーザープールの認証で取得したトークンを使用

APIキー

  • 事前に使用量プランを定義して発行する
  • メータリング、スロットリングで使うもの
  • 認証目的で使うものではない

リソースポリシー

  • アクセス元を制限できる

疑問点

AWS WAF

www.slideshare.net

概要

  • オートスケール
  • DevOpsと相性がいい
  • WAFだけでは防御は完璧ではない

WAFの一般的なユースケース

Count effects

  • 正常なリクエストがブロックされていないか確認する
    • サンプルをモニタリングしながら、ルールごとにリクエストがマッチしたか確認が可能
    • COUNTで確認し、誤検知がないことを確認してからBLOCKに変更

AWS WAFの制限

  • AWSアカウントあたりのウェブACL:50
  • AWSアカウントあたりのルール:100

疑問点

  • どの辺がDevOpsと相性がいいのか

Amazon Aurora MySQL

www.slideshare.net

RDSとの比較

  • 3AZに6つのデータのコピーを持つ
  • ストレージは最大64TB
  • Binlogによるレプリケーションではない
  • フェイルオーバーによるデータロスがない
  • フェイルオーバーからの復旧が高速
  • Custom Endpoints
  • Global Database
  • Database Cloning
  • Load Data From S3
    • S3に保存されたデータを直接Auroraにインポート可能
  • Export Data Into S3
    • AuroraのデータをS3に直接エクスポート可能

Aurora Serverless

  • 負荷の少ないアプリケーション向け
  • インスタンスという概念がなく、停止もありうる

Amazon RDS

www.slideshare.net

リードレプリカ

インスタンスタイプ

  • メモリ重視のR4
  • CPU重視のM4
  • 開発・検証用のT2(T3)

ストレージタイプ

  • 汎用SSD(GP2)
    • 100~10,000IPOS
  • プロビジョンドIOPS(PIOPS)
    • 1,000~30,000IOPS
  • Magnetic
    • ハードディスク
    • 平均100IOPS~最大数百IOPS

スナップショットとリストア

  • 自動スナップショットの保存期間は最大35日分
  • リストアには、リストアとPoint-in-Timeリカバリの2種類がある
  • リージョン間、およびアカウント間でスナップショットをコピーできる

各種制限

  • インスタンス数:40
  • 1マスター当たりのリードレプリカ:5
  • 手動スナップショット数:100
  • 全てのインスタンスの合計ストレージ:100TB

DBインスタンスの暗号化

各DBエンジンの特徴

Amazon DynamoDB

www.slideshare.net

概要

  • データは3か所のAZに保存されるため、信頼性が高い
  • ストレージの容量制限がない
  • Readは結果整合性モデル
  • Consistent Readオプションにより整合性を維持した読み込みが可能
    • Capacity Unitを2倍消費する
  • スループットパーティションに均等に付与される

プライマリキーの持ち方

  • Partation Key
  • Partation Key & Sort Key

Burst Capacity

ベストプラクティス

  • ホットデータとコールドデータを混在させない
    • コールドデータにキャパシティユニットを消費するのは非効率

TTL

  • 期限切れになっても即削除されるわけではない
  • 最大48時間、削除までに時間がかかる
  • 有効期限がシステム仕様に大きく関わるのであればRead条件に追加が必要

Amazon ElastiCache

www.slideshare.net

概要

  • 2種類のエンジンをサポート
  • AmazonによるRedisの拡張機能
  • Pub/subもできる
  • EC2、RDSのようなインスタンスクラスが存在する(cache.t2.microなど)
  • High Request-rate, Low Latency, Low Data-volume

ElastiCache Redis

  • Snapshotを取得しS3へのバックアップ/リストアが可能(手動/自動)

ユースケース

  • セッション管理

疑問点

  • Redis Clusterとは

AWS Elastic Beanstalk

www.slideshare.net

概要

  • Webアプリを動かすのに必要なELB、EC2などの構成を自動で作成してくれる
  • 利用者はアプリのデプロイだけに専念できる

ユースケース

  • アプリを動かすことが主軸としてあり、インフラ構築の手間を極力省きたい