参考リンク:AWSとGCPの料金体系を1ページで纏める2018版
1. はじめに
この資料はAmazon Web Service(https://aws.amazon.com/jp/)(以下AWS)に関するTipsをまとめたものです。以下に注意点をまとめます。
- 全ての情報は2017/03時点のものです。
- 分かり易くするために金額を日本円で表記することがありますが、ドル/円レートは120円として換算しています。
- AWSの管理画面などの各種画面はよく変化するため、最新のものとは異なる場合があります。
- 金額、料金体系も変化する可能性があります。
- 料金については簡易見積もりツールがあります(https://aws.amazon.com/jp/how-to-understand-pricing/)。
ご相談はこちら
2. リージョンとアベイラビリティーゾーン
AWSクラウドは世界中の16のリージョン(地域)に分かれており、各リージョンには複数のアベイラビリティーゾーン(AZ)が存在します(https://aws.amazon.com/jp/about-aws/global-infrastructure/)(図 1)
図 1 リージョンとアベイラビリティーゾーン
2.1 概念
各リージョンは完全に独立しています。各アベイラビリティーゾーンは独立していますが、同じリージョン内のアベイラビリティーゾーンどうしは低レイテンシーのリンクで接続されています(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)(図 2)。
アベイラビリティーゾーンは1つ以上の独立したデータセンターで構成されます。これによって高い可用性、耐障害性、拡張性を備えた運用が可能となります。本番環境のデータは複数のアベイラビリティーゾーンに配置するようにします。
AWSでも障害は時々発生しているため(http://qiita.com/saitotak/items/07931343bcb703b101f8)、障害が発生しても復旧できるように準備しておく必要があります。復旧にかかる時間も1日かけて良いのか、数時間で復旧する必要があるのかなどを事前に確認しておき、復旧手順も確認しておきます。
図2 リージョンとアベイラビリティーゾーンの関係
2.2 利用できるリージョン
現在利用できるリージョンは表 1の通りです。リージョンによって利用できるサービスが異なります(https://aws.amazon.com/jp/about-aws/global-infrastructure/regional-product-services/)。リージョンによっては使用できないサービスがあるため注意が必要です。
なおAWS GovCloud(米国)(米国政府用)、中国(北京)は追加のリージョンであり、通常は使用できません。使用するには専用のAWSアカウントが必要となります。
表 1 リージョンと応答時間
No. | コード | 名前 | httping平均[ms] | 東京との比率 |
---|---|---|---|---|
1 | ap-northeast-1 | アジアパシフィック(東京) | 43.4 | 1 |
2 | ap-northeast-2 | アジアパシフィック(ソウル) | 83.5 | 1.9 |
3 | ap-southeast-1 | アジアパシフィック(シンガポール) | 180.8 | 4.2 |
4 | us-west-1 | 米国西部(北カリフォルニア) | 264.9 | 6.1 |
5 | ap-southeast-2 | アジアパシフィック(シドニー) | 272.0 | 6.3 |
6 | us-east-1 | 米国東部(バージニア北部) | 293.2 | 6.8 |
7 | us-west-2 | 米国西部(オレゴン) | 409.5 | 9.4 |
8 | eu-central-1 | 欧州(フランクフルト) | 618.1 | 14.2 |
9 | sa-east-1 | 南米(サンパウロ) | 722.5 | 16.6 |
10 | us-east-2 | 米国東部(オハイオ) | ||
11 | ca-central-1 | カナダ(中部) | ||
12 | eu-west-1 | 欧州(アイルランド) | ||
13 | eu-west-2 | 欧州(ロンドン) | ||
14 | ap-south-1 | アジアパシフィック(ムンバイ) |
2.3 応答時間(レイテンシー)
リージョンによって応答時間(レイテンシー)が異なります(http://qiita.com/toritori0318/items/5bd5ba7c609fda7292f6)(表 1)。これはアベイラビリティーゾーン、ネットワーク経路によっても変動します。例えば日本のページをクロールする場合、「アジアパシフィック(東京)」からクロールするか「米国東部(バージニア北部)」からクロールするかによって1ページ当たり6.8倍の時間差が生じます。
2.4 データ転送料金
AWSではデータ転送量によって課金されます(https://aws.amazon.com/jp/ec2/pricing/on-demand/)。料金はどこからどこへの転送かによって異なりますが料金体系は複雑です。またどのリージョンかによっても異なります。詳細な料金については上記URL、または添付のExcelを参照ください。
https://www.scutum.jp/information/waf_tech_blog/2011/08/waf-blog-004.htmlを参考に、データ転送量について説明します。課金される部分について図 3にまとめます。No.はExcelと対応しています。課金されない部分については図に記載していません。課金されるのは以下の5通りです。
- (1) パブリックまたは Elastic IPv4 アドレスの使用
- 同じリージョン、アベイラビリティーゾーンからのデータ転送でもELB, Elastic IP経由の場合課金されます。プライベートIP経由の場合は無料のため、大量のデータを転送する場合はプライベートIPをつかうようにした方が安くなります。
- (2) 異なる VPC からの IPv6 アドレスの使用
- VPCを跨いでのデータ転送には課金されます。
- (3) 同じ AWS リージョンの別のアベイラビリティーゾーンからのデータ転送
- アベイラビリティーゾーンを跨いでのデータ転送には課金されます。
- (4) 別の AWS リージョン
- 別のリージョンへのデータ転送には課金されます。データを送る方には課金されますが、受け取る方には課金されません。上記1~3に比べて料金が高くなっていますので注意が必要です。特に東京リージョン等では高くなっています。
- (5) Amazon EC2 からインターネットへのデータ送信(アウト)
- インターネット上の他のマシンへのデータ転送には課金されます。インターネットからデータを受け取る際には課金されません。最初の1GBまでは無料ですが、それ以上は課金されます。最も課金料金も高いので、データ量が巨大な場合は注意が必要です。
図 3 データ転送料金(米国東部(バージニア北部))
Amazon Web Serviceについてのご相談はこちら
3. EC2 (Elastic Compute Cloud)
Amazon Elastic Compute Cloud (Amazon EC2)(https://aws.amazon.com/jp/ec2/)(以下EC2)はクラウド内の仮想サーバーです。
3.1 インスタンスタイプ
現在50以上のインスタンスタイプが存在します(https://aws.amazon.com/jp/ec2/instance-types/)。各インスタンスの詳細はExcelを参照してください。定期的に新しいインスタンスができており、新しいインスタンスは性能が良く、安くなっています。
古いインスタンスを使用することもできますが、多少高くなります。また古いインスタンスはメンテナンスが行われる頻度が高いようなので、できれば新しいインスタンスにしておきます。
基本的には汎用インスタンス(T2, M4, M3)でよいですが、T2インスタンスは後で説明するバーストがあるので注意が必要です。負荷が低い、またはバッチ処理などで一時的にしか負荷が高くならない場合はT2インスタンスで問題ありませんが、定常的に負荷がある場合はM4, M3インスタンスにします。
またCPUの負荷のみが高い場合はコンピューティング最適化(C4, C3)、メモリの負荷のみが高い場合はメモリ最適化(R4, R3)にした方が安くなります。
3.2 支払い方法
EC2の支払い方法には以下4つの種類があります(https://aws.amazon.com/jp/ec2/pricing/)。以下No.1~3について説明します。
表 2 EC2の支払い方法
No. | 支払い方法 | 特徴 |
---|---|---|
1 | オンデマンドインスタンス |
|
2 | スポットインスタンス |
|
3 | リザーブドインスタンス |
|
4 | Dedicated Host |
|
3.3 オンデマンドインスタンス
オンデマンドインスタンスは時間単位で課金される最も一般的なインスタンスです。通常はこのインスタンスにすることが多いです。必要な時に必要な分だけ立ち上げることができるので、サーバーの台数が不確定な場合はこの方法にします。サーバー台数と運用期間が確定している場合はオンデマンドインスタンスの方が安くなります。
3.3.1 オンデマンドインスタンスの料金
オンデマンドインスタンスは時間単位で課金されます。料金はインスタンスタイプ、リージョン、OS(Linux, Windows etc.)毎に異なります(https://aws.amazon.com/jp/ec2/pricing/on-demand/)。詳細はExcelを参照してください。
3.4 スポットインスタンス
スポットインスタンスは予備のEC2インスタンスに入札して大幅な割引価格でインスタンスを使用するものです(https://aws.amazon.com/jp/ec2/spot/ , http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-spot-instances.html)。
格安で使用することができますが、スポット料金が上限金額を上回るとインスタンスは停止させられます(停止の2分前に通知あり)。そのため本番環境など重要な部分での使用は難しく、テストなどでの使用がメインとなります。
また継続期間を指定することもできます。期間は1~6時間で指定でき、その間停止することはありません。また価格も開始時の価格で固定されます。こちらはバッチ処理等に向いているそうです。
図 4 スポットインスタンスの価格設定履歴
3.4.1 スポットインスタンスの料金
スポットインスタンスの料金は時間によって変動します(図 4)。オンデマンドインスタンスの料金で入札しておけばオンデマンドインスタンスよりも高く支払うことはありません。図 5に例を示します。スポット料金がオンデマンド料金を下回っている分(緑色の面積)の料金が削減できることになりますが、オンデマンド料金を上回るとインスタンスが停止します。
図 5 料金例
3.5 リザーブドインスタンス
リザーブドインスタンスでは1年や3年分を先払いすることで大幅な割引が適用されます(https://aws.amazon.com/jp/ec2/pricing/reserved-instances/)。
ただし途中でインスタンスを変更することができない(正確には変更はできるが変更するとリザーブドインスタンスの割引を受けることができない)ため、本当にリザーブドインスタンスで良いか検討する必要があります。またより安いインスタンスが追加されてもそちらに即座に変更できないという欠点もあります。
3.5.1 リザーブドインスタンスの料金
リザーブドインスタンスでは1年、または3年単位となりますが、「前払いなし」、「一部前払い」、「全前払い」によって割引額が変わります(https://aws.amazon.com/jp/ec2/pricing/reserved-instances/pricing/)。米国東部(バージニア北部)のt2.smallについてグラフにしたものが図 6です。
図 6 リザーブドインスタンスの料金(米国東部(バージニア北部)、t2.small)
3.6 クレジットとバースト
T2インスタンスにはCPUクレジットというものがありあます(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/t2-instances.html , http://qiita.com/toritori0318/items/1d25c651207854c50561)。T2インスタンスでは基本的にベースラインパフォーマンスの性能を持っていますが、CPUクレジットを消費することでCPUを100%使用できます。
これをバーストと呼び、1 CPUクレジットで1分間CPUを100%使用できます。CPUクレジットはインスタンス立ち上げ時の初期CPUクレジット、1時間あたりに受け取るCPUクレジット、最大獲得CPUクレジットがあり、インスタンスタイプによって異なる(表 3)。
なお最大獲得CPUクレジットは獲得できるCPUクレジットの最大値のため、初期クレジットを消費していない場合、CPUクレジットは初期CPUクレジットと最大獲得CPUクレジットの和となります。
表 3 CPUクレジット
No. | インスタンスタイプ | vCPU | ベースラインパフォーマンス (CPU使用率) | 初期CPUクレジット | 1時間あたりに受け取るCPUクレジット | 最大獲得CPUクレジットバランス |
---|---|---|---|---|---|---|
1 | t2.nano | 1 | 5% | 30 | 3 | 72 |
2 | t2.micro | 1 | 10% | 30 | 6 | 144 |
3 | t2.small | 1 | 20% | 30 | 12 | 288 |
4 | t2.medium | 2 | 40% (最大200%) | 60 | 24 | 576 |
5 | t2.large | 2 | 60% (最大200%) | 60 | 36 | 864 |
6 | t2.xlarge | 4 | 90% (最大400%) | 120 | 54 | 1296 |
7 | t2.2xlarge | 8 | 135% (最大800%) | 240 | 81 | 1944 |
CPUクレジットとCPU使用率の関係は以下のようになります(図 7、図 8)。
例えばバッチ処理のように一時的に不可が高くなるだけの場合、その時間のみCPUクレジットが減少しますが、全体としてはCPUクレジットが増えていきます(図 7)。このようにほとんどの時間がベースラインパフォーマンスを下回っている場合は問題ありません。
図7 CPUクレジットとCPU使用率の関係1
長時間高負荷が続く場合はCPUクレジットが0となってしまい、その時点からはペースラインパフォーマンスの性能しか発揮できなくなります(図8)。
図8 CPUクレジットとCPU使用率の関係2
CPUクレジットが0となった場合は以下のような対策を行います。
- (1) インスタンスの停止と開始を行う
- インスタンスの停止と開始を行うとCPUクレジットは初期CPUクレジットに戻ります(リブートの場合は戻りません)。 初期状態に戻るだけなので一時しのぎにしかなりません。
- (2) T2のサイズを大きくする
- T2のサイズを大きくすることで、ベースラインパフォーマンス、1時間あたりに受け取るCPUクレジットが増加するため、CPUクレジットに余裕ができます。 CPU負荷が高い場合はCPUクレジットが0になってしまうため、その場合は以下の対策を行います。
- (3) 固定パフォーマンスのインスタンスタイプ(M3など)に変更する
- M3などのインスタンスタイプにはCPUクレジットはなく、常に100%のパフォーマンスを維持できます。
ご相談はこちら
3.7 Elastic IPアドレス
Elastic IP アドレスは、動的なクラウドコンピューティングのために設計された静的 IPv4 アドレスです(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)(現在IPv6はサポートしていない)。
Elastic IPはインスタンスに関連付けることができます。エラー発生時などに別のインスタンスを立ち上げ、そちらにElastic IPを付け替えることで簡単にエラーを隠すことができます。
図9 Elastic IP
3.7.1 制限
通常1つのアカウントの1リージョンでしようできるElastic IPは5つに制限されています。制限を解除するにはAWSにリクエストを出す必要があり、解除されるまで1営業日ほどかかります。また制限を解除した場合料金がかかります。
3.7.2 料金
Elastic IPの料金は以下のようになっています(表 4、表 5)(https://aws.amazon.com/jp/ec2/pricing/on-demand/)
関連付けられているElastic IPアドレスは無料ですが、関連付けられていないと一ヶ月432円かかります。また追加したElastic IPについても一ヶ月432円かかります。
他には1ヶ月に100回以上Elastic IPを取得すると一回あたり12円かかりますが、これは通常気にすることはありません。また2.4にあるようにElastic IP経由だとデータ転送料金がかかります。パブリックIP経由だと無料なのでできるだけElastic IPを通さない方が安くなります。
表 4 Elastic IPの料金1
No. | 内容 | 料金[円/月] |
---|---|---|
1 | 実行中のインスタンスと関連付けられているElastic IPアドレス1つ | 0 |
2 | 実行中のインスタンスと関連付けられている追加のElastic IPアドレスあたり/1 時間(比例計算) | 432 |
3 | 実行中のインスタンスと関連付けられていないElastic IPアドレスあたり/1 時間(比例計算) | 432 |
表 5 Elastic IPの料金2(リマップ)
No. | 内容 | 料金[円/1回] |
---|---|---|
1 | Elastic IPアドレスのリマップ1回あたり(一ヶ月間で100リマップまで) | 0 |
2 | Elastic IPアドレスのリマップ1回あたり(一ヶ月間で100リマップを超える追加分) | 12 |
3.8 AMI(Amazonマシンイメージ)
インスタンスはAMIを登録しておくことで同じインスタンスの複製を簡単に作成できます(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AMIs.html)。本番稼働前、または定期的にAMIを作成しておくことで万が一の場合に備えることができます。また冗長化の際にも利用できます。
作成にかかる時間は1GBあたり約1分です。サイズが大きい場合は注意してください。3.9 セキュリティグループ
EC2では1つ以上のセキュリティグループを関連付けます(http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html 、http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-network-security.html)。セキュリティグループにはルールを設定します。ルールには以下を指定します。
表 6 セキュリティグループのルール
No. | 内容 | 説明 |
---|---|---|
1 | プロトコル | 許可するプロトコル。最も一般的なプロトコルは、6(TCP)17(UDP)、および1(ICMP)です。 |
2 | ポートの範囲 | TCP、UDP、またはカスタムプロトコルの場合、許可するポートの範囲。1つのポート番号(22など)、または一定範囲のポート番号(7000-8000など)を指定できます。 |
3 | ICMP タイプおよびコード | ICMPの場合、ICMPタイプおよびコードです。 |
4 | 送信元または送信先 | トラフィックの送信元(インバウンドルール)または送信先(アウトバウンドルール)。これらのオプションの1つを指定します。 |
セキュリティグループは役割毎に分けておくと、後々便利になります。またルール指定時に特定のセキュリティグループを解放することもできます。以下に例を示します。
表 7 セキュリティグループ例
No. | グループ名 | 必須 | 備考 |
---|---|---|---|
1 | default | ○ | KW社内、Nagios監視など社内全般。 |
2 | プロジェクト単位 | ○ | |
3 | 機能単位 | クローラー、データベースなど。 |
4. Amazon EBS (Elastic Block Store)
EBSを使用すると、ストレージボリュームを作成してインスタンスにアタッチできます(https://aws.amazon.com/jp/ebs/details/,http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSVolumeTypes.html )。EBSボリュームは特定のアベイラビリティーゾーンに配置され、自動的にレプリケーションされます。
4.1 タイプ
EBSには以下のようなタイプがあります(表 7)。
表 8 EBSのタイプ
ボリュームタイプ | ソリッドステートドライブ (SSD) | ハードディスクドライブ (HDD) | ||
---|---|---|---|---|
EBS プロビジョンド IOPS SSD (io1) | EBS 汎用 SSD (gp2) | スループット最適化 HDD (st1) | Cold HDD (sc1) | |
短い説明 | レイテンシーの影響が大きいトランザクションワークロード向けに設計された極めてパフォーマンスの高い SSD ボリューム | 幅広いトランザクションワークロードに対応できる価格とパフォーマンスのバランスが取れた汎用 SSD ボリューム | 高いスループットを必要とするアクセス頻度の高いワークロード向けの低コストの HDD ボリューム | アクセス頻度の低いワークロード向けに設計された極めて低コストの HDD ボリューム |
ユースケース | I/O 負荷の高い NoSQL データベースとリレーショナルデータベース | ブートボリューム、インタラクティブで低レイテンシーのアプリケーション、開発およびテスト環境 | ビッグデータ、データウェアハウス、ログ処理 | 1 日あたりの要スキャン回数が少ないコールドデータ |
API 名 | io1 | gp2 | st1 | sc1 |
ボリュームサイズ | 4 GB~16 TB | 1 GB~16 TB | 500 GB~16 TB | 500 GB~16 TB |
最大 IOPS/ボリューム | 20000 | 10000 | 500 | 250 |
最大スループット/ボリューム | 320 MB/秒 | 160 MB/秒 | 500 MB/秒 | 250 MB/秒 |
最大 IOPS/インスタンス | 65000 | 65000 | 65000 | 65000 |
最大スループット/インスタンス | 1,250 MB/秒 | 1,250 MB/秒 | 1,250 MB/秒 | 1,250 MB/秒 |
価格 | 0.125 USD/GB-月
0.065 USD/プロビジョンド IOPS |
0.10 USD/GB-月 | 0.045 USD/GB-月 | 0.025 USD/GB-月 |
主なパフォーマンス属性 | IOPS | IOPS | MB/秒 | MB/秒 |
通常はgp2で問題ありませんが、I/Oが多い場合はio1にした方が良い場合があります。またデータが大きい場合はHDDにした方が安いようです。
4.2 スナップショット
EBSではボリュームのスナップショットをS3に保存することができます。またスナップショットは増分的に保存されるため、2回目以降は増加分のみ請求されます。スナップショットはバックアップ、別のアベイラビリティーゾーンへの移行やボリュームサイズ変更時に利用できます。
作成にかかる時間は1GBあたり約1分です。サイズが大きい場合は注意してください。
4.3 金額
EBSの料金は表 8の通りです。
表 9 EBSの料金
No. | ボリュームタイプ | 料金[円] | ||
---|---|---|---|---|
1 か月にプロビジョニングされたストレージ 1 GB あたり | 1 か月にプロビジョニングされた IOPS あたり | |||
1 | ソリッドステートドライブ (SSD) | EBS 汎用 SSD (gp2) | 12.0 | – |
2 | EBS プロビジョンド IOPS SSD (io1) | 15.0 | 7.8 | |
3 | ハードディスクドライブ (HDD) | スループット最適化 HDD (st1) | 5.4 | – |
4 | Cold HDD (sc1) | 3.0 | – |
4.4 IOPS(Input/Output operations Per Second)とI/Oクレジット
SSDの場合IOPSが重要となります。
4.4.1 汎用 SSD (gp2) ボリューム
gp2の場合EC2のクレジットのようにI/Oクレジットが存在し、ベースラインパフォーマンスとバーストパフォーマンスがあります。ペースラインパフォーマンスは1GiBあたり3 IOPSとなりますが(最小100 IOPS)、I/Oクレジットがある場合最大3000 IOPSまでバーストされます。定常的にI/O負荷が高い場合はボリュームサイズを拡大してベースラインパフォーマンスを増加させるか、io1ボリュームを使用します。
表 10 EBS I/Oクレジット
No. | 内容 | I/Oクレジット | 備考 |
---|---|---|---|
1 | 初期I/Oクレジット | 5,400,000 | |
3 | 最大I/Oクレジット | 5,400,000 | |
4 | 秒間獲得I/Oクレジット | ボリュームサイズ[GiB]×3 | 最低100、ボリュームサイズが1,000GiB以上の場合は関係しない |
図 10 ボリュームサイズとIOPS
4.4.2 プロビジョンド IOPS SSD (io1) ボリューム
io1はgp2に比べて高くなりますが、その分IOPSを指定できます。そのためデータベース等に向いています。
5. ELB (Elastic Load Balancing)
ELBはアプリケーションの耐障害性を実現し、アプリケーショントラフィックのルーティングに必要な負荷分散能力をシームレスに提供します(https://aws.amazon.com/jp/elasticloadbalancing/)。
ELBには以前は単純なロードバランサー(Classic Load Balancer)しかありませんでしたが、最近より高度な設定が可能なApplication Load Balancerが追加されました。Application Load Balancerではパスによるルーティングが可能です。
5.1 金額
詳細はExcelを参照してください。大体1か月で2,000~3,000円程度かかるため運用にかかる金額を計算する場合は考慮する必要があります。
6. S3 (Simple Storage Service)
Amazon S3はシンプルで耐久性があり、きわめてスケーラブルなオブジェクトストレージです(https://aws.amazon.com/jp/s3/)。S3は「バケット」と呼ばれるリソースにオブジェクトとしてデータを保存します。オブジェクトの最大サイズは5TBです。
6.1 金額
S3ではストレージ、GETやPUTなどのリクエスト、データ転送量に課金されます。データ転送量については2.4を参照してください。ストレージ価格は図 10のようになります。
図 11 S3ストレージ価格(米国東部(バージニア北部))
ストレージ価格はそれほどかからず、リクエスト料金は1,000リクエストや10,000リクエストあたり0.01$などなので、通常は気にする必要はありません。データ転送量は通常は問題になりませんが、データが巨大な場合は大幅に課金されてしまうため注意が必要です。
Amazon Web Serviceについてのご相談はこちら
参考リンク:AWSとGCPの料金体系を1ページで纏める2018版