導入
コンピュートの最適化と並んで見落とされがちなのが、ストレージとデータ転送料です。特にデータ転送料は「気づいたら請求の大きな割合を占めていた」という事故が起きやすい領域です。
説明
まずS3のストレージクラス最適化です。SAAでも学んだ内容ですが、SAPでは「アクセスパターンが読めない」という制約がよく付きます。
| 手法 | 向いている状況 |
|---|---|
| ライフサイクルルール(手動で階層を定義) | アクセスパターンが予測できる(30日後は低頻度、など) |
| S3 Intelligent-Tiering | アクセスパターンが読めない・変動する |
| Glacier系(Instant/Flexible/Deep Archive) | 長期保管・アーカイブ、取り出し頻度が極めて低い |
「アクセスパターンが不明」「頻度が変動する」という問題文には、監視オーバーヘッドなしに自動で階層を移動してくれる Intelligent-Tiering が最適解になることが多いです。
次に、データ転送料の削減です。AWSの料金体系では、同一AZ内の通信は無料、AZをまたぐと課金、インターネット経由の送信(アウト)は特に高額という原則があります。
flowchart TD
A["EC2 → S3への通信"] --> B{"インターネット経由か?"}
B -->|"はい:NAT Gateway等経由"| C["データ転送料が発生"]
B -->|"いいえ:VPCエンドポイント経由"| D["AWS内部経路で転送料を削減"]
VPCエンドポイント(Gateway型・Interface型)を使うと、S3やDynamoDBなどAWSサービスへの通信をインターネットやNAT Gatewayを経由せず、AWSのネットワーク内で完結させられます。これにより、NAT Gatewayの処理料金とデータ転送料の両方を削減できます。SAPでは「NAT Gateway経由の通信費が高額になっている」という状況の改善策として、VPCエンドポイントへの切り替えが頻出です。
他にも、次のような転送コストの原則を押さえておきます。
- 同一リージョン内で完結させる: リージョンをまたぐ通信は転送料が発生するため、可能な限り同一リージョン内で処理を完結させる。
- CloudFrontを使う: オリジンからの直接配信よりCloudFront経由の方が転送料が安くなるケースが多い(キャッシュヒット時はオリジンへのアクセス自体が減る)。
- Direct Connectの活用: オンプレとの大量データのやり取りが常態化しているなら、インターネット経由のVPNより、専用線であるDirect Connectの方が転送コストが有利になることがある。
読んでみよう
ストレージ・データ転送のコスト問題は「どこを経由しているか」を図でイメージできるかが鍵です。「NAT Gateway経由でS3にアクセスしていて転送料が高い」と読んだら、即座に「VPCエンドポイント」が思い浮かぶように、典型パターンを図と一緒に覚えておきましょう。