68
AWSを実用するために - AWSらしいコスト削減 - JAWS-UG Osaka 第9回勉強会 <Beginners & ServiceProviders> 2013.11.02 桶谷 拓也

20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Embed Size (px)

Citation preview

Page 1: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSを実用するために - AWSらしいコスト削減 -

JAWS-UG Osaka 第9回勉強会

<Beginners & ServiceProviders>

2013.11.02 桶谷 拓也

Page 2: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Who am I ?• 桶谷 拓也(おけたに たくや) • 業務系エンジニア 無職 update!! • JAWS-UG Osaka • AWS認定ソリューションアーキテクト - アソシエイト • Tw:@okeee0315 / Fb:okeee0315 • Like:CloudFormation / SQS/Queuing Chain/Self Registration • クラウド/HTML5/Node.js

Page 3: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

ハッシュタグ #jawsug

Original Update by stevegarfield / http://www.flickr.com/photos/stevegarfield/

Page 4: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

アジェンダ

‣さらっとおさらい ‣AWSで必要になるコスト ‣安い?高い? ‣仮想マシンをなんとかしよう ‣さらなるコスト削減

Page 5: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

さらっとおさらい

Page 6: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Amazon Web Services

RDS

EC2

S3

Page 7: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Amazon Web Services

RDS

EC2

S3

Elasticity

Page 8: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Amazon Web Services

RDS

EC2

S3

VPC

IAM

ELB

Page 9: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Amazon Web Services

RDS

EC2

S3

VPC

IAM

ELB

Elasticity +

Information Security

Page 10: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Amazon Web Services

RDS

EC2

S3

VPC

IAM

ELBCloudFormation

Page 11: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Amazon Web Services

RDS

EC2

S3

VPC

IAM

ELBCloudFormation

Elasticity +

Information Security

+ Programmable

Page 12: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

これで AWSデビューできるぜ!

Original Update by mozillaeu / http://www.flickr.com/photos/mozillaeu/

Page 13: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSが良いのはわかった。 で、なんぼ?

Page 14: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

続きはこちらで

http://bit.ly/JAWSO09

Page 15: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

ということで続きです。 前回のSlideは

http://bit.ly/iegg-01

Page 16: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSで必要になるコスト

Original Update by stopnlook/ http://www.flickr.com/photos/crazyneighborlady/

Page 17: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

What's Cost ?

‣開発

‣保守運用

‣ソフトウェア購入

‣インフラ

...etc

Page 18: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

What's Cost ?

‣開発

‣保守運用

‣ソフトウェア購入

‣インフラ

...etc

AWSは全てに影響する

Page 19: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSの課金ポイント

‣仮想マシン

EC2, RDS

‣ストレージ

S3, EBS

‣通信

Page 20: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSの課金ポイント

‣仮想マシン

EC2, RDS

‣ストレージ

S3, EBS

‣通信

仮想マシンが総額の7,8割

Page 21: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSの課金ポイント

‣仮想マシン

EC2, RDS

‣ストレージ

S3, EBS

‣通信

ココを減らすことが最優先

Page 22: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

仮想マシンの課金ポイント

‣数(台数)

‣稼働時間

‣インスタンスタイプ

Page 23: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

仮想マシンの課金ポイント

‣数(台数)

‣稼働時間

‣インスタンスタイプ

$0.35 / h のインスタンスタイプを10台、1ヶ月稼働させると

 $0.35 × 10台 × (24h × 30d) = $2,520

Page 24: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

仮想マシンの課金ポイント

$0.35 / h のインスタンスタイプを10台、1ヶ月稼働させると

 $0.35 × 10台 × (24h × 30d) = $2,520 1年間だと

$2,520 × 12m = $30,240

Page 25: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

安い? 高い?

Original Update by byJoeLodge / http://www.flickr.com/photos/joe57spike/

Page 26: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

$30,240/年で何ができるか?‣約300万円

‣いいPC 10台(30万 × 10台) とか

‣それなりのサーバー 3台(100万 × 3台)

Page 27: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

クラウドは安いんじゃないの?

Original Update by vauvau / http://www.flickr.com/photos/vauvau/

Page 28: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSは安い、という幻想

‣安くない

‣高くはないかもしれない

‣安く、出来る

Page 29: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

AWSは安い、という幻想

‣安くない

‣高くはないかもしれない

‣安く、出来る安く、出来る

Page 30: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

仮想マシンを何とかしよう

‣最初に行うことは分析 ‣まずは己を知る ‣本当に必要な部分を見極める

Page 31: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

仮想マシンを何とかしよう

‣数(台数)、稼働時間、インスタンスタイプ

‣不要なインスタンスは止める

‣不要な時間は止める

‣不要な性能は減らす

Page 32: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

WebServer(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

Page 33: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

WebServer(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

!?

Page 34: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その①

‣何に使用しているかわからないEC2インスタンス

‣何故か起動している

‣元々あったから

Page 35: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その①

‣何に使用しているかわからないEC2インスタンス

‣何故か起動している

‣元々あったから

そんなインスタンスは問答無用でTerminate!

Page 36: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

WebServer(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

Page 37: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

WebServer(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

開発用って24/365の必要ある?

Page 38: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その②

‣開発で使用しているインスタンスが24/365で起動

‣早朝、深夜、休みの日もしっかり起動

誰がそんな時間に開発するんだっ! 開発する時だけ起動しるっ!

Page 39: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その②

‣開発用は9:00~18:00のみ起動するように

‣土日も起動しない

‣必要な場合は手動、他は自動がベスト

‣ 24h → 8h で コストが1/3に

Page 40: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その②

‣時間指定でのインスタンス起動/停止はOpsWorksで提供されている

‣ AWS CLI for /F %i in ('aws ec2 describe-instances --filters "Name=tag-key,Values=Stack" "Name=tag-value,Values=development" "Name=instance-state-name,Values=running" --profile profile1 ^| jq .Reservations[].Instances[].InstanceId') do (aws ec2 stop-instances --instance-ids %i --profile profile1)

Page 41: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

WebServer(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

Page 42: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

WebServer(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中パターン1

Page 43: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中パターン2

Page 44: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

最初からWebServer2台?

Page 45: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その③

‣最初から無駄に大きな構成

!

構成は需要に合わせて拡大して いけばいい!

Page 46: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その③

‣クラウドなのでElasticityに

‣ Auto Scaling

‣可用性、SLAとのバランス

Page 47: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

Page 48: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

監視Server?

Page 49: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その④

‣何でもかんでもEC2

‣オンプレミスからの”そのまま”の移行

!

オンプレミス脳を捨てよ!

Page 50: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

あるある その④

‣ AWSで提供されているEC2以外のサービスを上手く活用する

‣必要な要件を見極める

‣ ServiceProviders に相談

‣ JAWS-UG の活用

Page 51: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

CloudWatch を使う

Page 52: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

CloudWatch

‣ AWSのリソースを監視するサービス

‣サービスごとに定義された監視項目(メトリクス)

‣メトリクスに対してアラームを設定出来る

‣アラーム時に通知を送ることが出来る

Page 53: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

Page 54: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

分析してみる

ALL Server(開発)

WebServer(開発)

DBServer(開発)

AppServer(開発)

監視Server

WebServer(本番)

WebServer(本番)

DBServer(本番)

AppServer(本番)

用途不明

全てm1.large, 24/365稼働中

この時点で 約1/3に

Page 55: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

$30,240/年が1/3になると

‣約200万円のコスト削減

‣その分を開発に回してサービスの拡充

‣開発環境をより良く

Page 56: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

みんなHappy!!

Original Update by dborman2 / http://www.flickr.com/photos/dborman2/

Page 57: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

さらなるコスト削減

Original Update by dborman2 / http://www.flickr.com/photos/dborman2/

Page 58: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

さらなるコスト削減

‣ Reserved Instance

‣ Spot Instance

‣ Region

‣ Non EC2

Page 59: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Reserved Instance

‣ Instance の予約購入

‣予約金を先に払うことで時間課金を軽減

0

17.5

35

52.5

70

n 月 n+1 月 n+2 月 n+3月

オンデマンド リザーブド

Page 60: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Reserved Instance

‣長期に渡ったInstanceの稼働に適している

‣ 1年間 or 3年間

‣サービスイン後、様子を見ながらRIを購入

Page 61: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Spot Instance

‣オークション形式

‣ Spot 価格 < 入札価格の時にInstanceが起動

‣入札価格は上限を入力

‣ Spot 価格は変動する(最近高騰中)

Page 62: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Spot Instance

‣なんか試したいとき

‣いつでもいいけど実行したいバッチ処理

‣入札価格をオンデマンドと同じに

Page 63: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Region

‣ Region毎に時間単価が変わる

‣東京は高い

‣オレゴン、バージニアが安い

Page 64: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Region

‣距離が離れればサービスの応答が遅れる

‣応答性が求められない部分で使用する

Page 65: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Non EC2

‣ EC2(RDB)を用いないシステム構成

‣ S3による静的サイトホスティング

‣ KVS(SimpleDB、DynamoDB)の活用

Page 66: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Non EC2

Page 67: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

間に合わなかったので次回!

Original Update by jlodder / http://www.flickr.com/photos/jlodder/

Page 68: 20131102 AWSを実用するために - AWSらしいコスト削減 - jaws-ug osaka#09

Original Update by stevendepolo / http://www.flickr.com/photos/stevendepolo/

Question?