Skip to content

AWS

WASABI のストレージ使用率を AWS CLI で確認する

wasabi のストレージ使用率を Web UI から確認しようとしたところ、以下のように Bucket size information is unavailable at this point in time. Sizes are calculated once daily. と表示されてしまいました。

file

しかし、AWS CLI であればいつでもストレージの使用率を確認することが出来ます。 但し、詳細は後述しますが --page-size オプションによって結果が異なる為、「凡そのサイズが分かる」(正確なサイズが分かるわけでは無い) と理解しておいた方が良さそうです。

CloudFront では us-east-1 (北部バージニア) の ACM 証明書しか使えない

AWS の CDN サービスである CloudFront では、同じく AWS の証明書サービスである ACM で発行した証明書を利用することが出来ます。 AWS のサービスは以下に分類されます。

  1. グローバル・サービス (リージョンに依存しないサービス)
  2. リージョナル・サービス (提供リージョンを指定するサービス)

CloudFront はグローバル・サービスですが、ACM はリージョナル・サービスです。 CloudFront は ACM で発行した証明書を利用出来るのですが、「us-east-1 (バージニア北部) の ACM で発行した証明書しか利用出来ない」という制限に注意する必要があります。

AWS NLB は Source IP/Port を維持するが DSR 動作はしない

AWS Black Belt Online Seminar は毎回、素晴らしい内容です。 2017 年公開の資料なので、最新の情報ではありませんが NLB の基本的動作については ELB Update - Network Load Balancer (NLB) と関連サービス に分かりやすく、且つ、丁寧にかかれています。 この資料の P.20 に下記の記載があります。

  • クライアントの Source IP と Port が、そのまま Target まで届く
    • Target はクライアントと直接通信しているかの様に見える
    • 実際は、行きも帰りも NLB を通っている (DSR ではない)
    • IP Target (後述) の場合は保持されず、NLB からの通信となる
      • Direct Connect は接続されている VPC からのみ通信可能なので、こちらで回避

Instance Target で NLB を設定すると分散対象のサーバでは送信元パケットで「クライアントのアドレス」が確認出来る為、一見すると「NLB は DSR 動作している」ように見えますが、上述の Black Belt 資料に記載がある通り、実は DSR 動作をしていないそうです。 今回は検証環境で実際のトラフィックフローを確認してみました。

AWS API Gateway + Lambda + mangum + FastAPI な Python アプリケーションに POST された JSON を処理する

以前に mangum + FastAPI で ASGI な Python アプリケーションを AWS Lambda + API Gateway 上で動かすというメモを書きました。 mangummangum-cli を使うと FastAPI を使った Web アプリケーションを AWS の LambdaAPI Gateway を使って簡単に公開することが出来ます。

mangum-cli が無い場合は作成したアプリケーションを手動でアプリケーションをアップロードする必要があります。 CloudFormation を使うにしてもテンプレートを作成する必要があり、面倒です。 mangum-cli があればこれらの作業を自動化出来、手間なく、迅速にアプリケーションを配置することが出来ます。

FastAPI で REST API のエンドポイントを作成する場合、POST リクエストを受け付ける必要があります。 こういった場合の「POST された JSON を FastAPI な Python アプリケーションで処理する方法」をメモしておきます。