AWS勉強[7日目]
今日はリソースの最適化など、コストパフォーマンスの向上周りについて書いてみる。インスタンスタイプAWSのインスタンスタイプについて一度まとめてみたいなーと思ったのでまとめてみます。基本的にはr5.xlargeみたいな構成で成り立っていて[インスタンスファミリー][バージョン].[インスタンスサイズ]の法則性があります。インスタンスファミリーによって得意な分野が異なり、バージョンが新しいほど高パフォーマンス・低コストなモデルが提供されています。インスタンスサイズが大きいほどスペックが高いですが、その分コストもかかります。バージョンは公式ページみて最新のバージョン調べるのが最速です。3だけでなく、3aみたいなものもあります。(汎用型とか)a型はインスタンスストレージがEBSのみで、加えてdシリーズ(adやdnシリーズ)になるとSSDも選択できます。ただし、ストレージ最適化系(I,D,Hから始まるもの)はデフォルトでSSD使ってそうです。現時点では旧世代インスタンスもサポートが継続されており、EBSインスタンスなら途中でインスタンスタイプをコンソールから再起動時に変更できます。データのスナップショットを取って変更するだけ。ちなみに現時点の無料インスタンスはt2.microが対象。まずはインスタンスサイズについて。大きな数の単位(億,兆,京...無量大数...)みたいな感じで覚えていくといいかと。服のサイズみたいなものだと。RSで覚えたいならブロとかの「DX, LX, GDX, XLS」みたいな感じで。大体のインスタンスタイプは以下の大小関係で定義されてる模様。nano < micro < small < medium < large < xlarge < 2xlarge < (N)xlarge < metalvCPU数はlargeなら2、xlargeなら4、2xlargeは8、4xlargeなら16(個)と増えていきます。そして、インスタンスファミリーについて。適切なインスタンスを選択できるよう、パフォーマンス測定してからの選定が推奨されてます。(開発環境ならこのサイズまででいいけど、本番環境ではこのサイズ欲しいよね、みたいな。この辺りはサービスの規模やトラフィックを見積もって予算を立てる必要あり。)細かいバージョンの違いまで訊かれることはないと信じたいですが、基本的には「新しくて用途とサイズが適切なもの」をレコメンドすればいいんじゃないかな。計算問題が出るとするなら、1つ上の資格試験(SAAじゃなくてSAPのほう)な気がする。汎用* ウェブサーバやコードリポジトリなどのバランス重視タイプ* a, t, mからスタートする* aやmは定常パフォーマンス、tはバーストパフォーマンスが可能* mシリーズなら追加料金なしのデフォルトでEBS最適化が使える * バーストパフォーマンス:普段はベースラインだけど、混んでる時は高いパフォーマンスを出してくれる * ただし、ゲームで言う所のブースト(CP)ゲージみたいにチャージした後でないと使えず、一定量消費するとベースラインまでしか発揮できなくなります。バーストできる状態バーストするクレジットが足りない状態EBS最適化インスタンスとは、EBSのパフォーマンスを最大限に発揮するための仕組みです。具体的にはプロビジョニングIOPSをEC2インスタンスで利用できます。また、EBSとEC2間の通信を専用ネットワークにすることで他のトラフィックに妨害されることなくEC2やEBSのパフォーマンスを維持できます。※通常だとEBSもネットワークも同じ帯域を使うため、ネットワーク側の通信量が膨大だとパフォーマンスが落ちます。コンピューティング最適化* コストの高いCPU処理に特化* Cインスタンスタイプが該当* C5nタイプになるとネットワークも強化される主にヴバッチ処理や科学シミュレーション、専用ゲームサーバや機械学習など負荷の高い処理を行うのにおすすめ。メモリ最適化* 大容量のメモリに特化* r,x,zから始まる* 768GBのメモリ、なんてスペックもある高パフォーマンスDCやリアルタイムビッグデータ解析、ERPなど、多数のデータを同時に処理するのに向いてます。量子コンピュータみたいだなぁ高速コンピューティング* GPUやFPGAに特化* ハードウェアアクセラレータを使用してるので、グラフィック処理が得意* F,P,Gから始まるストレージ最適化* I,D,Hから始まる* I/O性能が高いリソースが欲しいならこれ* NoSQLデータベース(CassandraやMongoDB)やインメモリDB,ElasticSearchなどに向いてます------------------------------他にも、以前紹介したストレージオプション(汎用 (SSD)、プロビジョンド IOPS (SSD)、マグネティックなど)も選択できます。EBSについても最適化インスタンスが存在してC5、C4、M5、M4、P3、P2、G3、および D2 の各インスタンスの場合、この機能はデフォルトで有効です。実運用ではELB+AうとScalingによる可変サイズのリソース供給を行ったり、SQS(Siple Queue Service)による非同期分散処理を用いたバッチ処理やKinesisによるストリーミングデータの収集・リアルタイム解析なども併用したりします。リソースの使用状況・請求金額はAWS Cost and Usage Reportによる詳細リポートや分析をしてくれます。この辺りは請求額を算出するAPI呼んでWEBサーバ立てて計算、なんてこともできたりする。実運用していてコストに問題があるか、最適化できる所がないか探す時はTrusted Advisorを使ったりします。具体的には、以下の観点でチェックしてくれる* 14日間で使用率10%・ネットやI/Oが5MB以下が4日以上のような使用率の低いEC2インスタンス* EC2におけるリザーブドインスタンスの最適化* 稼働中のEC2に関連づいてないEIP他にもELBやEBS、RDSなどのリソースをリリース(解放)することで最適化が図れることもあります。ということで、今日は設計にあたってのリソース最適化周りの話でした。 ww ,,#´ω`#,, #´・_・`#ノシ #´・ρ・`#ノシ #´・▽・`#ノシ #´・w・`#ノシ #´・ω・`#ノシ #´・∀・`#ノシ #´・Д・`#ノシ #´・-・`#ノシ #´・ε・`#ノシ #´・ヮ・`#ノシ #´・⊇・`#ノシ..[..===..] |ノシショボテン| |_\3500_|