yuuki oosaka

AWS高すぎ問題

現在円安で1ドル142円前後となっている。1ドル110円台にAWSは安い!とか思ってコスト削減を狙って社内システムをコストをかけて移行した企業は、円安により30%以上値上がりした結果、AWSへの移行を後悔されていると思う。

とはいっても改めてサーバーを社内システムにも戻すわけにはいかない。どのような対策が考えられるだろうか。

想定するアーキテクチャー(こうした構成がたくさんある想定):

enyasu

①EC2を利用せずフルサーバーレス(SPA/S3/APIGateway/Lamda/Dynamodb)にアーキテクチャーを変更する

enyasu

JavaやASP.NETなどのWebアプリケーションは高価なインスタンスを必要とするEC2やBeanstalk、RDSなどのインスタンスで動かさざるを得ない。 プログラムを根本的に書き換えることでインスタンスを利用しないフルサーバーレスアプリケーション(SPA/S3/APIGateway/Lamda/Dynamodb)を変更する。

②Autoscalingアーキテクチャーに変更して、サーバーをできる限り落とす。また、思い切ってSPOTインスタンスにしてしまう

enyasu

EC2の契約は通常の契約から大幅に割り引いた(90-80%値引き)SPOTインスタンスというものが存在する。SPOTインスタンスでサーバーを起動することでコストを大幅に削減することができる。ただし、SPOTインスタンスはAWSの要求によりサーバーが停止されるという大きなデメリットが存在する。これに対応するためサーバー停止時に再度起動するなどのAutoscalingアーキテクチャーの導入、停止をユーザーに検知させないためのALBを導入する。

③DBサーバーのキャパシティをAutoscalingで可変にする。

enyasu

AWSのRDSサービスは利用量に応じた拡張を行う機能(Autoscaling)が存在している。これを利用してDBのキャパシティを固定せず、利用量がひくときはDBのキャパシティを開放することでコストを削減する。

④DBサーバーのキャパシティをAurolaServlerlessで可変にする。

enyasu

AWSのRDSサービスは利用量に応じた拡張を行うサービス、AurolaServerlessが存在している。これを利用してDBのキャパシティを固定せず、利用量がひくときはDBのキャパシティを開放することでコストを削減する。

結論

他にも様々なサーバー要件に従いコスト削減が可能なパターンがあると思うが、AWSでは工夫次第で様々な方法でコスト削減が可能な構成をとることができる。こうしたタイミングだけでなく、初期設計の段階でもコスト削減を考慮した構成を検討することで、様々なシステムのAWS化を推進することができるだろう。

例)全パターンを混ぜたサーバーコストが1/3程度になる想定の構成

enyasu