CTOに役立つ!AWS請求からアーキテクチャを読み、コストを削減する技術。PDF編
とにかくAWSのアーキテクチャやコストを今すぐ把握しないといけない!ということはたまにあります。知っている人の話を聞くことが最も重要なことの一つですが、文書からわかることも多いでしょう。
この記事では請求書のPDFという、あまり利用されないが強力なツールから読み解く方法を解説します。
手っ取り早く概況を掴みたい新任CTOや、M&Aなんて言われて困っているCTO、EM、Staff+ Engineerにおすすめです。
請求書PDFが読めるようになるメリット
ある程度アーテクチャがわかる
構成図やドキュメントは更新されていなかったり、存在しないことすらあります。
請求書に乗るキャッシュフローは事実。逆引きして読み解くスキルさえあれば、構成図より正確です。
「利益は意見、キャッシュは事実」に近いですね。
同じ条件で比較して、コスト削減の余地がつかめる
どのアカウントも請求書は同一条件で提出されます。決算書の開示に近いですね。管理会計は別の仕組みにしましょう。
DDやPMIにも効果的
買収(検討)時のDD(Due Diligence)ではビジネス部分が最優先。IT DDとして情報システム周りの検討はありえますが、プロダクト開発運用部分の優先順位は非常に低く、短い時間や少ない機会のなか、資料をもらうことすら困難です。
PDF一つで概略がわかるようになれば、改善の余地が探れ、シナジーが予測できるようになります。何より自社より水準が低い場合、PMIの覚悟ができます。
請求書からわかること
PDFだけでも思ったよりたくさんのことがわかります
- Savings Planの利用状況 (コスト削減の余地)
- AWS契約の状況
- 開発/本番でAWSアカウントを分離しているかどうか
- プロダクトやサービスごとにアカウントが分離できているか
- 同一のorganizationに入れているか
- どのAWSサービスを利用しているか
- 大まかなアーキテクチャ
- セキュリティの成熟度
- おおよその技術力
請求書(invoice)であり、Billing(明細)やCost Explorerは除きます。Billingが確認できると解像度が一気に上がり、最適な提案が可能になります。Cost Explorerを使えるとamortizationも見えるので理想です。
Amazon Chime
音声/ビデオ通話関係の処理がある可能性があります。電気通信事業法を含め、業界関係の法律やガイドラインを確認する必要があります
Amazon Connect
支払会社の関係で領収書のPDFは別です。
電話関係の処理がある可能性があります。業界関係の法律やガイドラインを確認する必要があります。特にアウトバウンドに注意。
Amplify
ある程度モダンなアーキテクチャが想定されます。ビルド料金が含まれるので確認。
API Gateway
API Gatewayでバランシングしてるかがわかります。バランシング候補の一つ。
合わせて確認
ELB / AppSync
AppStream
Windowsが潜んでいる可能性があります。テック企業で必要とされるようなエンジニアとはスキルセットが違うので難しいです。
AppSync
ある程度モダンなアーキテクチャが想定されます。
合わせて確認
ELB / API Gateway
CloudFront
CloudFrontの利用がないがS3はあるなら、CDNが使えていない可能性があります。
おおよそのアクセス数がわかります。ビジネスに比べて多すぎるようなら、botや攻撃、権限設定ミスの可能性があります
合わせて確認
S3
CloudSearch
実質deprecatedなので移行を考える必要があります。
CloudTrail
2017年8月から開設したアカウントはデフォルトonです。料金が0ならそれより古く、またセキュリティ成熟度が低いでしょう。
CloudWatch
ログ(CloudWatch Logs)が一番多いことが想定されます。ビジネスやアクセス量次第です。3rd Partyのモニタリングツールを入れているなら、ポーリングによるMetricsの料金も嵩みます。
EC2利用アプリケーションではCloudWatch LogsではなくローカルのEBSに出力している可能性があります。NAT Gateway含め通信コストも確認。
Metricsのコストを、不要リージョンを封鎖する方法もあります。特に日本のみがターゲットのビジネスでは有効です。
Code*
CI/CDをAWSサービスに寄せているということです。自社との統合を検討しましょう。
Cognito
料金があるならMAUを逆算できます。連携なしログインだと5万MAUまで無料であり、toBだとほとんど費用がかかってないことも。
Config
あらゆるプラクティスでonにしろと指南されており、存在しないとセキュリティに不安が残ります。
料金がかかっていても下げる方法に気づいていないことが多いです。
特にEC2のAuto Scalingと組み合わさると嵩みます。
高頻度デプロイやSecurity Hubが原因のことも。
高頻度デプロイはむしろ望ましいことです。
合わせて確認
EC2
Cost Explorer
Cost Explorerを熱心に見ている人がいるということです。期待が持てます。
Data Pipeline
Data Pipelineはメンテナンスモードに入りました。移行の必要があります。
📝 Data Transfer
ビジネスに対してアウトバウンド通信量が多すぎないか、確認したいです。CDNが使えてないか、最悪攻撃の可能性があります。
合わせて確認
CloudFront
Database Migration Service
システム移行中かもしれません。一応通常時のレプリケーションにも使えますが、最適ではなさそうです。
Direct Connect
オンプレミスと接続している可能性があります。
DynamoDB
主なデータストアかどうかを金額で判断します
📝 EC2
EC2と聞くとEC2インスタンス周りのように見えますが、歴史的経緯から関係ないものも混ざっています。代表的なものがNAT GatewayとEBSです。Cost Explorerでは「EC2 その他」の扱いです。
やたら金額が大きいときは、アーキテクチャが古く、開発や組織がうまく回ってない可能性があります。一方、外部製品のセルフホスト版を運用していることもあります。
EC2があっても、RDSなどのデータストアが料金にないことがあります。RDBが自前運用の可能性があるのでマネージドサービスに移したいところです。
ある程度近代的なアーキテクチャだが金額が多いとすると、NAT GatewayのData Processed Byteが多い可能性があります。S3 / DynamoDBの利用状況によってはVPC Endpointを推奨。
アプリの初期化や起動時に、ライブラリやイメージを取得していることもあります。特にFargateならイメージPullにコストがかかりがちです。
合わせて確認
- RDS
- ELB / API Gateway
ELB
ELBでバランシングしてるかがわかります。バランシング候補の一つ。
合わせて確認
ELB / AppSync
GuardDuty
存在するならある程度セキュリティ意識があることが読み取れます。
KMS
高すぎるときは、クレデンシャルを取得するKMSアクセスがアプリケーション内でキャッシュができてない可能性があります。
合わせて確認
Secrets Manager
📝 RDS
データストアとして一番可能性があります。存在しない場合、なんのマネージドサービスをデータストアとしているか、EC2で運用していないかを確認。
Secrets Manager
高すぎるときは、クレデンシャルを取得するSecrets Managerアクセスがアプリケーション内でキャッシュができてない可能性があります。
合わせて確認
KMS
Security Hub
Onということは最低限セキュリティに気を使っています。
Config代が嵩む原因のこともあります。
📝 S3
S3料金が多いと、一見データ量が原因のように見えますが、思ったよりAPIアクセスが多い可能性があります。特にLIST API。
S3の利用がないのにEC2は多い場合、静的ファイルをサーバから流す構成になっている可能性があります。
合わせて確認
- CloudFront
- Data Transfer
サポート
重要なプロダクトについて、本番環境でサポート契約がないと不安です。
WAF
セキュリティにある程度気を使っている可能性があります
Marketplace
支払会社の関係で領収書のPDFは別です。
古めのサービスを表しているかもしれませんし、3rd Party SaaSをAWS経由で購入したほうが楽という重い組織構造を表しているかもしれません。
PDFだけだとわからないことの例
- RIの購入状況
- 外部ベンダーから付与される割引クーポンの規模
- 各種インスタンスの古さ
BillingやCost Explorerなら読み取れます。
結論
請求書PDFをざっと眺めるだけでも結構なことがわかりますね。
BillingとCost Explorerが追加できればほとんど明らかにできます。Billingから読み解く記事が続編になる予定です。
コスト削減のご相談は@ask_yoshi_takaまで。請求書PDFだけでも提案できます