ヤマムギ

growing hard days.

*

ブログのアーキテクチャをコストベースで見直しました

      2020/01/09

当ブログはAWSで構築しています。
アーキテクチャをコストを最重視して見直しましたので、その結果を記録します。

2019年最終のアーキテクチャ

2019年は最終的に次のようなアーキテクチャになりました。

2019年12月コスト実績

  • EC2(t3.nano spot 2instance) $2.99
  • EBS $2.86
  • RDS(Aurora Serverless) $79.53
  • ELB $18.14
  • ElastiCache(t2.micro 1node) $19.34
  • S3 $0.45
  • WAF $ 2.05
  • CloudTrail $0.25
  • CloudWatch $0.69
  • Data Transfer $0.17
  • CloudFront $7.02

Total $146.14

RTOとRPO

  • ステータス障害時のRTO(目標復旧時間) 300秒
  • ステータス障害時のRPO(目標復旧時点) 0秒

  • AZ障害時のRTO(目標復旧時間) 300秒

  • AZ障害時のRPO(目標復旧時点) 0秒

障害ケースにもよるかとは思いますが、目標として。
Aurora Serverlessのフェイルオーバーは「このフェイルオーバーメカニズムは、Aurora プロビジョンドクラスターのフェイルオーバーよりも時間がかかります。 Aurora Serverless のフェイルオーバー時間は、AWS リージョン内の他の AZ の需要やキャパシティーの可用性によって異なるため、現在定義されていません。」
とのことなので、ひとまず300秒としています。
データ損失はない想定です。

Aurora Serverlessの停止におけるコスト削減

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納するや、Amazon Aurora Serverless のログをCloudWatch Logsに出力するに書きましたように、データベースへのコネクションを減らすことで、Aurora Serverlessが停止して、コスト削減を図れるのではないかと検討してみました。

停止はしますが、5分以内ぐらいでresumeしてます。
1日のうちでもそれほどの停止時間は発生していません。

メトリクスで見てみると、コネクションがない時間は、ACUも0にはなっているのですが、すぐに開始されているようです。
必ずしもコネクションゼロ=アイドル状態、ではないということなのだろうと思います。
WordPressではデータベースをアイドル状態にすることがそもそも難しいのか、もっとログを調査して突き詰めてみるべきか、とも思いましたが、今回はやめました。

2020年初頭のアーキテクチャ

そして、今現在はこうなりました。

2020年1月想定コスト

  • EC2(t3.nano spot 1instance) $1.5
  • EBS $1.5
  • RDS(Aurora Serverless) $23
  • S3 $0.45
  • CloudTrail $0.25
  • CloudWatch $0.3
  • Data Transfer $0.1
  • CloudFront $7.02

Total $34.3

RTOとRPO

  • ステータス障害時のRTO(復旧時間) 12時間
  • ステータス障害時のRPO(復旧時点) 24時間

AZどころか、ハードウェアやソフトウェアレベルの障害でも、これだけのRTOとRPOを許容した、ということですので、企業レベルのアプリケーションでは考えられない構成です。

障害発生時に、EC2インスタンスはAutoScallingではあるので、新しいインスタンスは起動するだろうという想定です。
EIPを付け替えて、復旧完了です。
これはイベントをキャッチして自動化することを検討しています。

RDSはシングルインスタンスなので、スナップショットから復元することを想定しています。
その作業は、日中は仕事しているので無理ですし、夜は寝ているので無理です。
12時間に1回ぐらいはそのタイミングもあるだろうと想定しています。

シングルインスタンスで障害発生やAZ障害のときの状態がどうなるかにもよりますが、ポイントタイムリカバリに頼れない想定で、RPOを24時間で見ています。

差額$100でこれらが買えるのならものすごく安い話です。
ですが、今回はブログ読者の方には申し訳ないですが、12時間は待っていただけるであろう想定です。

実際に障害が発生した際は、また当ブログでご案内したいと思います。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS

ad

ad

  関連記事

Amazon Glacierのプロビジョニングされた迅速取り出し容量をなぜか購入しました

過去1年ぐらいのAWSコストをCost Explorerで見てまして、10/10 …

当ブログ(WordPress)のCloudFrontのキャッシュヒット率があがった

当ブログの構成です。 S3とALB+EC2 Auto Scalingで構成してい …

Pepperで撮影した写真をAmazon Rekognitionで分析してその結果をPepperがしゃべる ~(1)AWS編~

Pepperの機能を使えるところは使って、何かしたいなあと思ってまして。 目(カ …

Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる

Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …

サイトのHTTPステータスを5分おきにチェックして200以外ならSlackに通知する

すいません。ここ最近出費が重なりまして、某監視サービスのプランを有料プランからF …

AWS DataLake 構築ハンズオンに行ってきました

AWSJ大阪が増床されて2019年10月限定でAWS pop-up loftとい …

Systems Manager パブリックパラメータCLIでAWSのサービス数を出力してみました(2020/5/26)

先日のAWSのサービス数を数えてみました(2020/5/23)を見られて、お師匠 …

Amazon Connect 発信イベントをEventBridgeで確認

Amazon Connectから発信した電話に出たのか、出なかったのかを確認した …

macOSにAWS Schema Conversion Toolをインストール

環境 macOS BigSur バージョン11.5(20G71) MacBook …

Intel 82599 VF インターフェイスで拡張ネットワーキングが有効なEC2インスタンスで帯域幅を確認してみました

拡張ネットワーキングが有効なEC2インスタンスとそうではないインスタンスの2セッ …