More Related Content
Similar to Jaws days 20200322
Similar to Jaws days 20200322 (20)
Jaws days 20200322
- 3. 自己紹介
• 深澤 俊
• Java,scala → SRE → いま
• AWS事業本部コンサルティング部
• 好きなAWSサービス
• ElastiCache、DynamoDB
3
@shun_quartet
- 18. 18DynamoDB 〜強力な整合性のある読み込み〜
• DynamoDBは結果整合性
• 書き込んだデータをすぐに読み込むと古いデータがヒットする可
能性あり。
• 結果的にデータの整合性が取れるということで結果整合性。
• 強力な整合性のある読み込みを使用することで、確実に書き込んだ
データを読み取り可能
• 結果整合性のある読み込みと比較し2倍のCUを消費
• DynamoDBにはキャッシュ機能のDAXというサービスがあるが、
強力な整合性のある読み込みの場合は使用不可
→ 意外と課金が発生するポイントに!!
- 21. 21DynamoDB 〜対策〜
• 強力な整合性のある読み込み
• 基本的には結果整合性のある読み込みで設計する
• 必要最低限のCUのみを付与(プロビジョニング済みキャパシ
ティモード)
• ConsumedReadCapacityUnitsというメトリクスを監視する
• GSIに対する書き込み
• GSIの利用は必要最低限にする
• ConsumedWriteCapacityUnitsというメトリクスを監視する
- 23. 23AWS PrivateLink
• VPCに設定するインターフェイスタイプのエンドポイント
• VPCエンドポイントには以下の2つタイプがある
• インターフェイスエンドポイント
• ゲートウェイエンドポイント
AWS Cloud
VPC
Private subnet
多数のAWSサービス
ゲートウェイエンドポイント
ルートテーブルでルーティングして接続。
S3とDynamoDBしか対応していない。
S3 DynamoDB
AWS PrivateLink
インターフェースエンドポイント
サービスを宛先とする。エンドポイン
ト を名前解決して接続。多くのサー
ビスが対応。
- 25. 25AWS PrivateLink 〜注意ポイント〜
• サービスによっては複数のエンドポイント を設定しないと使えない
サービスも
• 例:SSM
• 以下のエンドポイント を設定
• com.amazonaws.リージョン.ssm
• com.amazonaws.リージョン.ec2messages
• これに加えてSystems Managerを使用してVSS対応のスナップ
ショットを作成する場合には以下のエンドポイントも必要
• com.amazonaws.リージョン.ec2
• さらにSession Managerを使用してインスタンスに接続する場
合には以下のエンドポイントも必要
• com.amazonaws.リージョン.ssmmessages
- 27. 27AWS PrivateLink 〜対策〜
• NatGateway等を用いたVPC外部通信を検討する
• セキュリティ対策が全くできていないわけではない
• IAMロールによる権限制御
• SSLによる通信の暗号化
• 他のAWSサービスもPrivateLinkでやろうとすると数が増えていっ
てしまうがNatGatewayがあれば追加していく必要なし
→ NatGatewayも課金対象なのでバランスを見て選択する
- 29. 29CloudWatch logs 〜ポイント〜
• 収集と保存の料金は以下の通り
収集 (データの取り込み) 0.76USD/GB
保存 (アーカイブ) 0.033USD/GB
• 保存よりも収集にかかるコストが上がりがち
• 仮に1時間で30GBほどログを出力するアプリがあったとすると、
1時間毎に22.8USD(2530.02円)が溶けていく
- 30. 30CloudWatch logs 〜対策〜
• ログの要件を整理する
• 必ずしもその場ですぐに可視化が必要なケースも少ないかと
• Fluentd(Fluent Bit)を利用したS3へのデータ転送という手も
• 分析を行う場合には別途AthenaやAWS Glueを用いた分析基盤
の作り込みが必要
- 32. 32Elastic IP アドレス 〜ポイント〜
• Elastic IP アドレス(以降、EIP)で課金が発生するパターンは次の通り
実行中のインスタンスと関連付けられている追加の IP アドレス/時間あたり(比例計算) 0.005USD
実行中のインスタンスと関連付けられていない EIP /時間あたり(比例計算) 0.005USD
EIPのリマップ 1 回あたり – 1 か月間で 100 リマップを超える追加分 0.10USD
- 33. 33Elastic IP アドレス 〜ポイント〜
• 一見複雑に見えるものの、逆に料金が発生しないパターンは1つし
かない
→ 稼働しているインスタンスにアタッチされており、
かつそのインスタンスにはEIPが1つしかアタッチされていない
場合にEIPは無料
Amazon EC2
Elastic IP address
無料
Amazon EC2
Elastic IP address
有料
1台のEC2に2つのEIPが
関連付けられている
Elastic IP address
有料
どのEC2にもEIPが関連
付けられていない
Amazon EC2
Elastic IP address
有料
EC2にEIPが関連付けされて
いるがEC2が停止している
- 34. 34Elastic IP アドレス 〜ポイント〜
• インスタンスに関連付いているEIPを外して他のインスタンスに関連
付ける(リマップ)を100回以上繰り返すと1回毎に0.1USD発生。
• 仮に1000回やれば90USD( 9986.94円)発生。
Amazon EC2
Elastic IP address
Amazon EC2
EIPを外す
他のインスタンスに関連付け
- 35. 35Elastic IP アドレス 〜ポイント〜
• EIPはNatGatewayでも使用する
• EC2の場合は削除する際にEIPを解放するかを聞いてくれる
• NatGatewayの時は聞いてくれないので解放を忘れがち
- 36. 36Elastic IP アドレス 〜対策〜
• AWS Configのマネージドルールであるeip-attachedを導入する
• https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/eip-
attached.html
• AWS Configからの通知で使っていないEIPの検知が楽に
• 評価の結果が出るまでは最大 6 時間かかることがあるのでその点
だけ注意
Editor's Notes
- さて皆さん、AWSの料金が請求のタイミングで意外と上がっていて驚いた経験はありませんか
- この画面、よく確認されているかと存じます。モザイクだらけですが実際の画面です。
- さて僕は弊社のブログを通して、これまでここは分かりにくいなぁと思った料金ポイントを15個ほどご紹介してきました。本セッションをご覧になられている方の中にはご確認いただきリアクションをいただいたかもいらっしゃるかもしれませんね。有難うございます。
- <残り14分>
今回はこの中から、改めて特に気をつけたいポイントを厳選してきました。どうか最後までお楽しみ頂ければと思います。
- さてまずは最初にこちらの注意事項を申し上げたいと思います。(スライド読み上げ)
4つ目、大切です。こういうお話をさせていただくとそのサービスが悪いですとかダメと言うふうに聞こえてしまいがちなのですが、良いとか悪いということを言いたいわけではないんですね。基本的にはサービスなので最適な使い方をすれば皆さんの事業を助けるサービスばかりです。どうか今回の発表を踏まえまして最適な使い方を検討いただければと思います。
- 最後がこちらです。もしかしたら「そんな機能もあるのか」と思われるかもしれません。是非初めて知る機能であればお試しいただきたいのですが料金には十分にご注意下さい。
それでは、
- <残り13分>
最初のポイントは通信費です
- わずかではありますが次のように課金が発生します(スライド読み上げ)
- リージョン間通信とAWS外のインターネット通信ではアウトバウンドに料金が発生。
アベイラビリティ間通信は双方向で通信費がかかります。
- スライド読み上げ
- 可用性をよく検討することが大切です
よく考えてみると複数リージョンにまたがらなくても良いかなということもあるかと思います
また、複数アベイラビリティゾーンにまたがる必要があるかというもの改めて検討してみていいかもしれません
一つのアベイラビリティゾーンに寄せるのも、地理的に近くなることから通信が早くなるというメリットがあります
- <残り11分>
- スライド読み上げ
- スライド読み上げ
プロビジョニング済みキャパシティモードは定額課金のため前払いすることも可能です。一定額前払いすることによって料金が少し安くなります。
定額課金と言いつつ、Cloudwatchと組み合わせることでAutoScaling対応にすることもできます。こちらについては今回割愛させてください。
- DynamoDBではデータを複数のアベイラビリティゾーンに書き込むことによって可用性を担保しています。
データを書き込んだ際に全てのアベイラビリティゾーンにデータが書き込まれる前にDynamoDBは書き込み完了と返します。
そのため書き込んだ直後に読み込みを行うと結果が反映されてないことがあります。
- 一度、強力な整合性のある読み込みで全体を設計してしまうと戻すのは困難です。
結果整合性のある読み込みであれば、将来的に先ほど紹介したDAXの利用も可能です。
まずは結果整合性のある読み込みでできないかを検討しましょう。
必要最低限のCUだけ付与も有効ですが、この場合は最悪アプリケーションの性能が頭打ちになる点に注意が必要です。
CUの消費量増加を検知するという観点から、ConsumedReadCapacityUnitsを監視するのも有効です。
GSIは最大で1テーブルあたり20まで付けれて、上限緩和申請も可能ですが、貼り過ぎには注意しましょう。
ConsumedWriteCapacityUnitsはCU消費を検知するという観点で有効です。
テーブル別、GSI別に見れるので監視しておきましょう。
- <残り7分>
- スライドを読む
- こちら気をつけたいのが、USD/時間で課金が発生するということです。
それに上乗せして通信費も1GBあたり0.01USDで発生します
- スライドよみ
さてこれらを合計した場合、いくらになるのでしょうか
- スライドよみ
- <残り4分>
- スライドよみ
- スライドよみ
- <残り3分>
- スライドよみ
- Elastic IPの課金パターン、一見複雑に思われるかもしれませんが、逆に課金が発生するパターンだけ抑えておけば理解がしやすいです。
次の図をご覧ください
スライドよみ
- あとはリマップと呼ばれる作業でも発生します。
スライドよみ
あまり100回以上やるということはないと思うのですが、100回を越えてしまうと1回あたり0.1USDと意外と高額です。
ElasticIPの料金発生パターンとして抑えておきましょう。
- スライドよみ
- スライドよみ
あとはこれに追加して先ほどのリマップをあまり行わないという点に注意してください
- 以上です。他にも気になった方は他のブログも見てみてください。