【AWS入門】Mash式チュートリアル【EC2編 その2~インスタンス作成時のオプション~】

Mash式AWSチュートリアル EC2編その2 tech

こんにちは、Mashです。

本記事は私自身がAWSをお勉強で触ってみた経験を共有するシリーズ Mash式AWSチュートリアル です。

今回はAmazon EC2編の第2回となります。

今回はEC2インスタンス作成時の各種オプション機能について解説します。

正直、さっと検証で利用するくらいで必要になることはあまりありません。

しかし、本番サービス環境に求められる要件によっては必要となる可能性がありますので、「あー、そういえばあんな機能あったな」とピンと気づけるようにしておきたいですね。

それではいきましょう!

EC2の構築方法について

まずはじめに、EC2インスタンスの基本的な構築手順については以前公開した記事でご紹介しています。

もし一度もインスタンスを作成したことがない方は、こちらの記事を参考にチャレンジしてみると良いかと思います。

今回は「インスタンス作成する画面でいっぱいオプションあるけど、ようわからん」な人向けの記事となっています。

EC2作成時のオプション

それではここから本題です。

各オプションについて、ざっと解説していきます!

スポットインスタンス

スポットインスタンスオプション

スポットインスタンス は、EC2インスタンスの利用料金を節約するためのオプションです。

みなさんご存知の通り、AWSはクラウドサービスであり、ハードウェア等の資源を他のユーザと共有しています。

通常のオンデマンドインスタンスは、定められた単価×稼働時間 で課金される仕組みとなっています。

ちなみに OSがAmazon Linuxのt2.largeインスタンスの単価はこんな感じ。

オンデマンドインスタンス単価

一方 スポットインスタンス は、あらかじめ支払うインスタンス単価の上限を決めます。

AWS環境の利用状況(混み具合)によって単価が上下し、あらかじめ指定した単価を超えた場合インスタンスが停止するリスクを負う代わりに、EC2インスタンスを安価に利用できるオプションです。

イメージはこんな感じ。

スポットインスタンスイメージ

この記事を書いている時点では、おおよそ4分の1くらいにまで安価になっていました。($0.1216 が $0.03)

プレイスメントグループ

プレイスメントグループオプション

プレイスメントグループ は、EC2インスタンスをどのような配置にするかを定めることができるオプションです。

プレイスメントグループ設定によって、インスタンス間ネットワークパフォーマンスを向上させたり、物理機器故障への耐障害性を高めたりすることが可能です。

選択肢3つを具体的に見ていきましょう。(図は公式ドキュメントから拝借しています)

clusterプレイスメントグループ

clusterプレイスメントグループ

clusterプレイスメントグループは、EC2インスタンス間で低レイテンシー・高スループットなネットワークパフォーマンスが必要となる場合に有効なオプションです。

ざっくりいうと、これはAWSが管理している物理レイヤーにおいて、近い距離にあるハードウェア上にEC2インスタンスがまとまって起動してくれるためです。

spreadプレイスメントグループ

spreadプレイスメントグループ

spreadプレイスメントグループは、サーバラック単位でEC2インスタンスを配置することでハードウェア障害の影響を最小化するオプションです。

サーバラック単位で電源を共有していたりしますからね。SLAがかなりシビアなアプリケーションだとこういう実装をしたりするのでしょう。

AWS公式の図をもうちょっとだけわかりやすく具体化してみました。

spreadイメージ

partitionプレイスメントグループ

partitionプレイスメントグループ

partitionプレイスメントグループは、複数のインスタンスをひとまとまり(パーティション)とし、サーバラック単位で配置するオプションです。こちらもハードウェア障害の影響を抑えるための選択肢です。

spreadプレイスメントグループのちょっとゆるい版 という感じでしょうか。

一般的には例えば「Webサーバ+APサーバ+DBサーバ(計3台)」のインスタンスをパーティションとして複数展開することで、どこかのラックで物理障害が発生してもシステム全体としては稼働できている状態 を実現する といった具合に利用します。

キャパシティーの予約

キャパシティーの予約オプション

キャパシティーの予約 は、オンデマンドインスタンスがAWS側のハードウェアリソース不足で起動失敗することを予防するためオプションです。

この機能の背景として、AWSではEC2インスタンスファミリー(c5とかm5とか)ごとに、インスタンスを起動するハードウェアが決まっているそうです。

そのため、多くのAWS利用者が同一ファミリーのインスタンスを同時期に起動したくなった場合、運悪くインスタンスを起動できなくなることがあります。

こういった事故を防ぐためのオプションというわけですね。

注意点として、このオプションを有効化した場合はインスタンスを停止している状態でも課金が発生します。

ドメイン結合ディレクトリ

ドメイン結合ディレクトリオプション

ドメイン結合ディレクトリ は、AWSでSimpleADもしくはMicrosoftADを利用している場合、EC2インスタンス起動時にそのままドメイン環境へ参加させるオプションです。

インスタンス起動後の作業を削減できる便利なオプションですね。

ちなみにこちらのオプションはWindows系OSでしか利用できません

IAMロール

IAMロールオプション

IAMロールは、このインスタンスに別のAWSリソース(S3とかLambdaとか)の利用権限を付与したい場合に指定します。

IAMロールについては、別途IAMの学習コンテンツとして作成しますので、今回は詳細割愛とします。

CPUオプション

CPUオプション

CPUオプション によって、選択したインスタンスタイプからCPUコア数を減らしたり、ハイパースレッディングを無効化することが可能です。(料金が安くなったりはしません)

「なんでわざわざそんなことするの?」と疑問を持つかたが多くいるかと思いますが、これはCPU数単位で課金されるサードパーティ製ソフトウェアへの対策です。(Oracleなんかが有名ですね)

EC2インスタンスは、基本的に高スペックなインスタンスタイプになるほどネットワーク性能も向上します。

「高性能なネットワークパフォーマンスが必要、だけどCPUはそんなに要らない」という要件の場合、いったんハイスペックなインスタンスタイプを選択し、あえてCPU数を減らすことで要件を満たすことが可能になります。

シャットダウン動作

シャットダウン動作オプション

シャットダウン動作 で、OSを停止した際の挙動を定義します。

  • 停止:インスタンスを停止
  • 終了:インスタンスを削除

「終了」を選択している場合、インスタンスが削除されてしまいますのでご注意ください。

停止・休止動作

休止オプション

こちらのオプションでは、インスタンスの状態に 休止 を追加することが可能になります。

通常、インスタンスの状態は 起動 ⇔ 停止 の繰り返しです。

インスタンスの停止はサーバOSの停止ですから、停止前のアプリケーションの稼働状況などはいったん破棄されますよね。

しかし、この 休止 を利用すれば、インスタンスのメモリデータをディスクへ書き出した上で停止してくれるようになります

次の起動時には、停止前の続きの状態で開始してくれるということですね。

スポットインスタンスでは利用できなかったり、EBSボリュームが暗号化されている必要があったりといろいろ制限事項もありますが、うまく利用すれば、コストを抑えつつEC2を便利に運用できそうです。

終了保護の有効化

終了保護オプション

終了保護の有効化 は、文字通り誤ったインスタンス終了(削除)操作を防止する機能です。

AWSマネジメントコンソールやAWS CLIなどからインスタンスを削除しようとしてもエラーになります。

本当にインスタンスを削除したい場合には、一度この削除防止フラグを外す必要があります。

モニタリング

モニタリングオプション

EC2は CloudWatch というモニタリングサービスと連携していて、無料の範囲でもCPU、ディスク、ネットワークなどの負荷状況を取得しています。

モニタリング オプションを有効化することでメモリ使用状況や、その他カスタマイズした任意の監視項目を追加することが可能になります。

記載の通り、有償オプションです。

EBS最適化インスタンス

EC2のディスクに関連したパフォーマンスを向上させる場合、

  • EBSのディスク性能を向上させる
  • EC2 ⇔ EBS間のネットワーク性能を向上させる

選択肢としてはこの2択となります。

EBS最適化インスタンス は後者にあたります。

利用するインスタンスタイプによって値は異なりますが、EC2 – EBS間の通信について数百~数千Mbpsの帯域を確保することができます。

EBS最適化について、最近のインスタンスタイプではデフォルト有効で追加料金は発生しません。
旧世代のインスタンスタイプ用のオプションとして利用されます。

テナンシー

テナンシーオプション

テナンシー オプションを変更することで、EC2インスタンスを共有ハードウェア上で起動するか、それとも別のAWS利用者とは共有しないハードウェア上で起動するかを選択できます。

他のAWS利用者とハードウェアを共有できない理由としては、セキュリティ上ハードウェアの共有が許されない場合や、ソフトウェアライセンス上の制限などが挙げられます。

サーバーワークス社のQAにMicrosoft関連ライセンスのいい例がありましたのでリンクを張っておきます。

Elastic Inference

Elastic Inferenceオプション

Elastic Inference は、追加料金を支払うことによって、インスタンスにGPUを追加するオプションです。

GPUはもともとグラフィック処理に特化した高性能な処理装置で、最近だと機械学習などで多く利用されています。

自前で購入しようとするととても高価になってしまいますが、AWSではこれをオンデマンドで利用することができます。

ファイルシステム

ファイルシステムオプション

複数のEC2インスタンスを運用していると、それらインスタンス間でファイルを共有したくなることがよくあります。

このような場合、一般的にはNFSやSMBといったいわゆる「ファイルサーバ」を構築してそこにファイルを置くことで対応します。

もちろんAWSでは Elastic File System(EFS)というManagedなサービスを提供していて、この ファイルシステム オプションを有効化することで、EC2起動時にEFSと自動連携することが可能になります。

イメージはこんな感じです。

EC2とEFS

まとめ

さて

量がかなり多かったですが、EC2作成時のオプションをそれぞれ見てきました。

クラウドサービスらしい、規模の経済がガッツリ効いてるオプションばかりでしたね。

パフォーマンスを向上させるものだったり、コストを抑えるためのものだったり、現場で細かな要件が出てきた際には必要となる機能がたくさんあります。

「あ、その要件〇〇でいけます」とかサラッと答えられるとかっこいいですよね~

今回は以上です。

それじゃあまたね。

タイトルとURLをコピーしました