コンピューティング
元々、コンピューティングは計算することや数えることを意味する言葉だった。それが形を変えて、最近はコンピュータが処理をすることをコンピューティングというようになったよ。
コンピューティング関連のAWSリソースは、例えるなら電卓のようなもの。電卓は計算処理を行うけれど、その計算結果を保存することはしない。それと同じように、コンピューティング関連のAWSリソースは、データの処理をするけれど、データを保存することはないよ。処理後のデータを保存したい場合は、ストレージやデータベース関連のAWSリソースと組み合わせることになる。
コンピューティング関連のAWSリソースは、システムの性能に大きく関わる部分になる。処理能力が低ければ、システムのスピードは遅くなってしまう。システムの性能次第で、10年掛かる処理がわずか数週間で終わることもあるよ。また、処理が滞ってしまえば、システムは非効率な動きをするようになる。高性能なシステムや、需要に合った性能のシステムを作ることが求められるよ。
Amazon EC2
SNSの普及により、Webマーケティングの世界で、バズるという言葉が使われるようになった。バズるというのは、短時間に大量の発信や共有が起こること。
皆の所属している会社の商品やサービスがバズった時、それを提供するショッピングサイトなどシステムに大きな負荷が掛かる。その商品やサービスを購入しようと、ユーザーが一斉にアクセスするためだよ。
ここで、システムが負荷上昇に耐えられず、アクセスが滞る、またはアクセスできなくなってしまったらどうなるだろう。急にシステムに大きな負荷が掛かった場合、サーバーをスケーリングすることで対応できる。スケールアップやスケールアウトをすることにより、サーバーを増強すれば、性能を高めて大量の処理に追いつくことができる。
ただ、これを物理サーバーで行うには、スケーリングに長い時間が掛かる。バズのような、あまりに急な負荷上昇となると対応が間に合わない。そうなると、商品やサービスを買いたいというユーザーは沢山いるのに、システムが動かなくて買えない状態が続いてしまい、大きなビジネスチャンスを逃してしまう。
そういった場合に、Amazon EC2が役に立つよ。Amazon EC2は、仮想サーバーを提供するAWSリソース。Amazon EC2は、数回のクリックをするだけで、数分後には仮想サーバーの作成が完了する。バズなどにより、急にサーバーを増強しなければならない時、Amazon EC2を活用すれば、仮想サーバーを簡単にスケールアップ、またはスケールアウトすることで対応できる。そうすれば、大きなビジネスチャンスを逃すことはないよ。
また、ピークが過ぎ去りサーバーが不要になれば、仮想サーバーを簡単にスケールダウン、またはスケールインすることもできる。このように、Amazon EC2の大きな特徴は、需要に応じてすばやく仮想サーバーをスケーリングできることだよ。

Amazon EC2は、AWSが管理するデータセンター内の物理サーバー(ハードウェア)の上に仮想サーバーを建てる。使用するハードウェアは、サブネットがあるアベイラビリティゾーンのデータセンター内のもの。
Amazon EC2で建てる仮想サーバーを、EC2インスタンスという。

ミドルウェアは、OSとアプリの中間の処理を行うソフトウェア。
ハイパーバイザーは、コンピュータを仮想化するためのソフトウェア。
EC2インスタンス同士は依存関係を持たない。あるEC2インスタンスに障害が発生しても、他のEC2インスタンスは影響を受けないよ。
AMI
AMI(Amazon Machine Image)は、 EC2インスタンスを作成する際に用いる型のようなもの。
LinuxのEC2インスタンスを作成する場合、LinuxのAMIを選択する。同じように、WindowsのEC2インスタンスを作成する場合、WindowsのAMIを選択する。型から作成することにより、同じものを正確に、簡単に作ることができるよ。
ユーザーデータ
EC2インスタンス起動後、エンジニアがコマンド(命令文)を打つことにより、初期設定をすることになる。
しかし、EC2インスタンスの数が多いと、何回も同じ初期設定を繰り返していくことになり手間が掛かる。そういった場合は、ユーザーデータの使用がお勧め。ユーザーデータは、EC2インスタンス起動時に自動でコマンドを打つもの。必要なコマンドをユーザーデータに書いておけば、EC2インスタンスを起動するだけで初期設定が完了する。
注意点としては、ユーザーデータにパスワードなど大事な情報を書かないようにすること。ハッカーは、ユーザーデータを覗いて大事な情報を盗もうとする。それさえ気を付ければ、ユーザーデータは非常に便利に機能になので、必要に応じて活用するよ。
インスタンスタイプ
インスタンスタイプは、EC2インスタンスの種類のこと。インスタンスタイプは、汎用、コンピューティング最適化、メモリ最適化、高速コンピューティング、ストレージ最適化の5つがある。
インスタンスタイプは、EC2インスタンス作成後に変更することもできるので、柔軟に用途と合わせることが可能。
インスタンスタイプの詳細はこちら。
インスタンスタイプ | 特徴 | ファミリーと世代 | 用途 |
---|---|---|---|
汎用 | バランスの取れた性能を発揮 | A1、T4g、T3、T3a、T2、M6gなど | マイクロサービス、小・中規模データベース、開発環境 |
コンピューティング最適化 | 高いコンピューティング性能を発揮 | C6g、C5、C5aなど | バッチ処理、ハイパフォーマンスコンピューティング (HPC)、機械学習 |
メモリ最適化 | メモリ内で大きなデータを処理 | R6g、R5、R5aなど | インメモリ、データベース、ビッグデータ分析 |
高速コンピューティング | コプロセッサを使用して効率的に処理 | P3、P2、Inf1、G4、F1など | 浮動小数点計算、グラフィックス処理 |
ストレージ最適化 | ローカルストレージ内で大きなデータを処理 | I3、I3en、D2、H1など | NoSQLデータベース、データウェアハウス(DWH:Data Ware House)、分散処理 |
ファミリーは、インスタンスの性格のようなもの。A1ならAがファミリーに当るよ。
世代は、インスタンスの世代のこと。A1なら1が世代に当たる。数字が大きいほど新しいよ。
マイクロサービスは、小さなシステムを組み合わせて大きなシステムを作るもの。従来は、最初から1つの大きなシステムを作る方法が主流だった。マイクロサービスは、新機能の追加のしやすさや、依存関係のなさなどから、最近注目されているよ。
バッチ処理は、細かいタスクをまとめておいて、一気に実行するもの。
ハイパフォーマンスコンピューティングは、時間当たりの計算量が非常に多い計算処理。
機械学習は、コンピュータが学習し、人間のように判断すること。
インメモリは、メモリにデータを置いて、ストレージを使わずに処理すること。ストレージまでデータを取りに行く必要がないので、処理が高速になるよ。
コプロセッサは、CPUの補助を行うもの。
浮動小数点計算は、コンピュータが小数を扱うための計算方法。
グラフィックス処理は、3Dなどの画像を表示するための処理。
ローカルストレージは、ハードウェアに接続されているストレージ。
NoSQLデータベースは、SQLや、SQL以外の言語でも操作を行うことができるデータベース。
データウェアハウスは、企業内の様々なビックデータを蓄積するデータベース。大量のデータを蓄積するための倉庫ような役割を持つよ。
- バースト可能なインスタンス
汎用のT4g、T3、T3a、T2は、性能を処理量に合わせることができる。
これは、忙しくない時に体力を温存するようなものだよ。余裕がある時は手を抜いておいて、忙しくなってきたら100%の力を出す。ただし、どんなに忙しい時でも、疲れ切ると動けなくなってしまう。
それと同じように、処理量が低い時、バースト可能なインスタンスは性能を発揮せずクレジットを貯める。処理量が多くなった時、クレジットを使って性能を発揮(バースト)する。なお、クレジットを使い切ると、処理量に関わらず性能が低下してしまう。
どこか人間味を感じるバースト可能なインスタンスは、常に100%の力を出しているその他のインスタンスより、料金が安くなるというメリットがある。処理量に波がある場合、積極的に活用することで、コストダウンを図ることができるよ。- ランダムI/O対応可能なインスタンス
I/Oは、インプットとアウトプットの頭文字を取ったもので、入出力のこと。I/Oを行う方法には、シーケンシャルアクセスとランダムアクセスの2通りがある。
シーケンシャルアクセスは、順番にアクセスするもの。
順番に入出力していくため効率的で、処理に時間が掛からない。ランダムアクセスは、ランダムにアクセスするもの。
順番に関係なく入出力するため非効率になりがち。まだ先のものを取りに行き、逆に取りに戻ることもあるため、処理に時間が掛かる。
ランダムアクセスは、色々な相手からから色々な場所にアクセスされる場合に発生するよ。例えば、多くの人やシステムから、データベース内の様々なデータを検索された場合に、ランダムアクセスが発生する。
こういった、ランダム I/Oを処理することを得意とするインスタンスがある。ストレージ最適化のI3とI3enだよ。ストレージ最適化のI3とI3enは、非常に高いランダムI/Oが発生する場合に最適で、時間の掛かるランダムI/O処理をすばやく行うことができる。
データベースにランダムアクセスが発生する例×
- 物理対応可能なインスタンス
通常時、様々な企業がハードウェアを共有してEC2インスタンスを立ち上げている。それにより、コストを抑えることができますが、セキュリティ面で課題が残ってしまう。
コストよりセキュリティを重視する場合、ハードウェア専有インスタンス、専有ホスト、ベアメタルのいずれかを選択するよ。これらにより、企業専用のハードウェアを作って、そのハードウェアを他企業が使えないようにすることができる。
物理対応可能なインスタンスを活用すれば、他企業と同じハードウェアの上でEC2インスタンスを起動することがなくなり、セキュリティを高めることができるよ。ハードウェア専有インスタンス、専有ホスト、ベアメタルは、ハードウェアを専有する設定をするもの。
専有ホストの方が、ハードウェア専有インスタンスより詳細な設定ができる。専有ホストは、ハードウェア専有インスタンスの不足を補うために後から作られたもの。
ベアメタルは、ハードウェアの専有に加えて、ハードウェアの操作が可能。より厳しいセキュリティ要件を満たすことができるよ。
プレイスメントグループ
プレイスメントグループは、EC2インスタンスをハードウェアに配置する戦略のこと。
EC2インスタンスを作成する際、配置するハードウェアを工夫をすることによって、パフォーマンスや耐障害性の向上が見込める。
プレイスメントグループは、クラスタープレイスメントグループ、パーティションプレイスメントグループ、スプレッドプレイスメントグループの3つがあるよ。
/
インスタンスの利用形態
インスタンスの利用形態は、オンデマンドインスタンス、リザーブドインスタンス、スポットインスタンスの3つがある。
オンデマンドインスタンスは通常の利用形態、リザーブドインスタンスとスポットインスタンスは特殊な利用形態だよ。特に、リザーブドインスタンスとスポットインスタンスは、制限を受け入れる代わりに安く使うことができる。
リザーブドインスタンスは最大75%、スポットインスタンスは最大90%の割引がされるので、積極的に活用するべきものだよ。
利用形態 | 制限 | 割引 |
---|---|---|
オンデマンドインスタンス | なし | なし |
リザーブドインスタンス | 長期的な利用を約束して使用 | 最大75% |
スポットインスタンス | 余り分を使用(余りが無くなったら中断) | 最大90% |
- リザーブドインスタンス
リザーブドインスタンスは、長期的に利用する代わりに、割引を受けられるもの。数年使うことが確定している場合、リザーブドインスタンスを使用することでコストを削減することができる。
リザーブドインスタンスの種類には、スタンダードとコンバーティブルがある。どちらも1年か3年の利用を約束して購入するけれど、コンバーティブルの方が購入後に変更できる項目が多いよ。スタンダード コンバーティブル アベイラビリティゾーンの変更 可 可 インスタンスファミリー、OS、
テナンシー、支払オプションの変更不可 可 期間と割引 1年:少し割引
3年:より多く割引1年:より少し割引
3年:多く割引テナンシーは、ハードウェアを専有するかを決める項目のこと。共有、ハードウェア専有インスタンス、専有ホストから選ぶことができる。
支払オプションは、全額前払い、一部前払い、前払いなしのが3つあり、下の順に割引が大きくなる。
一部前払い<前払いなし<全額前払い期間については、下の順に割引が大きくなる。
一部前払い<前払いなし<全額前払い一番割引を大きくする方法は、スタンダードで3年の約束をし、全額前払いすることだよ。
- スポットインスタンス
スポットインスタンスは、余りを利用する代わりに、割引を受けられるもの。AWS内で余っているAmazon EC2のリソースを、入札形式で購入できる。
なお、Amazon EC2の需要が増えて値段が上がり、入札価格を上回った時、スポットインスタンスは中断する。途中で停止や終了しても問題ない場合、スポットインスタンスで大幅なコストダウンが図れるよ。
ストレージ
Amazon EC2を含む、コンピューティング関連のAWSリソースは、データを保存することはしない。
Amazon EC2が処理したデータを保存したい場合は、ストレージ関連のAWSリソースであるAmazon EBSと組み合わせることになる。Amazon EBSをEC2インスタンスにアタッチ(取り付け)することで、Amazon EBSがデータを保存する。Amazon EBSが不要になった場合、EC2インスタンスからデタッチ(取り外し)することもできるよ。
EBS最適化
通常、Amazon EC2とAmazon EBS、Amazon EC2とAmazon EBS以外の通信は、同じ帯域で行われる。そのため、Amazon EC2へのアクセスが増えると、全体的に通信速度が落ちてしまう。
Amazon EC2へのアクセスが増えても、Amazon EC2とAmazon EBSの通信速度を維持したい場合、EBS最適化を有効にするよ。EBS最適化は、Amazon EC2とAmazon EBSの通信用に専用の帯域を作るもの。
これにより、Amazon EC2とAmazon EBS以外の通信が増えても、Amazon EC2とAmazon EBSの通信速度を維持することができる。


EC2インスタンスの状態とElastic IPアドレス

EC2インスタンスの状態は、起動中(Running)、停止中(Stopped)、削除済み(Terminated)の3つがある。状態は簡単に変えることができて便利だけど、IPアドレスについて課題が残る。
仮に、起動中のEC2インスタンスを停止してから再び起動したとする。仕様上、再起動後のEC2インスタンスには新しいIPアドレスが割り振られる。つまり、EC2インスタンスは、停止するとIPアドレスが変更されてしまう。住所が変わってしまうようなもので、再起動前には届いていた荷物が、再起動後に届かなくなってしまいまうよ。

そういった事態を防ぐために、必要に応じてElastic IPアドレスをEC2インスタンスに割り当てる。Elastic IPアドレスは、固定のIPアドレスのこと。
Elastic IPアドレスが割り当てられたEC2インスタンスが停止または削除された場合、別のEC2インスタンスにElastic IPアドレスを再割り当てする。そうすることで、EC2インスタンスを停止、再起動、削除しても、代わりのEC2インスタンスで同じIPアドレスを使用することができるよ。
EC2インスタンスの状態と課金
EC2インスタンスは、下の表のように課金される。
Amazon EC2 の状態 |
Amazon EC2への課金 | Amazon EBSへの課金 (アタッチしている場合) |
Elastic IPアドレスへの課金 (割り当てている場合) |
---|---|---|---|
起動中 | あり | あり | なし |
停止中 | なし | あり | あり |
削除済み | なし | なし | あり |
注意点は、EC2インスタンスを停止しても、Amazon EBSに課金されること。EC2インスタンスを停止した後も課金がされている場合、Amazon EBSの削除を忘れていることが多く見受けられる。
Elastic IPアドレスの課金体系はやや特殊な形態をとる。EC2インスタンスが起動していない場合や、Elastic IPアドレスが割り当てられていない場合、IPアドレスの無駄遣いと見なされ課金される。停止中のEC2インスタンスにElastic IPアドレスを割り当てないようにする、使わないElastic IPアドレスは解放するようにして、意図せず課金されないようにするよ。