はじめに
EC2(Elastic Compute Cloud)は、AWSが提供するコンピューティングプラットフォームのサービスです。
コンピューティングプラットフォームと言うと仰々しく聞こえますが、プロセッサ(CPU)、ストレージ、ネットワーク、OS(オペレーティングシステム)がセットになったサーバー機能のようなモノです。
インフラエンジニアなら、「仮想サーバー(VM)」の呼び方の方が馴染みやすいと思います。
仮想サーバー(VM)を利用するには、ハードウェア(物理サーバー)を調達し、仮想化ソフト(VMwareやHyper-Vなど)をセットアップしなければなりません。
加えて、それを運用するには、ハードウェアのリソース(CPUやメモリなど)の利用状況を管理し続けなければならず、大変な労力がかかります。
EC2では仮想サーバー(VM)をインスタンスと呼び、調達や初期セットアップ、ハードウェアのリソース管理などの労力をAWSに担ってもらいます。
この便利なEC2は、大きく4ステップで利用できます。
1.AMI(Amazon Machine Image)を選択
2.インスタンスタイプを選択
3.インスタンスの設定(ネットワーク、ストレージ、タグ等)
4.セキュリティの設定
AMIとはインスタンスの雛形のようなモノです。
AWSやコミュニティ有志、更には自分が作成したOSや各種設定が盛り込まれた雛形から選択することができます。
このAMI、インスタンス設定、セキュリティ設定は、インスタンスの利用用途を踏まえれば選択肢が絞り込まれてると思います。
そうなると皆さんが悩むのが「どのインスタンスタイプを選ぶか?」でしょう。
インスタンスタイプとは、AWSが利用シーンに応じて組み合わせたハードウェアスペックのセットのようなモノです。
しかし、私達の代わりにAWSが考えてくれたありがたいモノですが、初学者には取っ付きにくいと思います。
今回は、インスタンスタイプを命名規則の目線で整理します。
インスタンスタイプの命名規則
命名規則については、AWS SUMMIT 2019での資料で紹介されています。
「AWS SUMMIT 2019の資料」と「AWS公式サイトの最新情報」を参考に整理しました。
インスタンスファミリー
インスタンスタイプを選ぶ上で、まず検討すべきが「インスタンスファミリー」です。
AWSでは、インスタンスファミリーを5つのカテゴリに分けています。
まずは、利用シーンに考慮してカテゴリを、そしてファミリーをと絞り込んでいきます。
カテゴリ | ファミリー | 説明 | 利用シーン |
---|---|---|---|
汎用 | T M A Mac | 多様なシーンで利用できる バランスの取れたリソースセット | 一般的なサーバー |
コンピューティング 最適化 | C Hpc | 高パフォーマンスプロセッサを 利用するリソースセット | 科学技術計算 機械学習 ゲームサーバー |
メモリ最適化 | R X z ハイメモリ | メモリ内で大きいデータセットを 展開して処理するリソースセット | データベース ビッグデータ分析 リアルタイム分析 |
高速コンピューティング | P G F VT Trn Inf | GPUやFPGAなども利用した 高速計算を行うための リソースセット | 科学技術計算 機械学習 深層学習 画像/映像処理 |
ストレージ最適化 | I D H | ローカルストレージへの大規模な 読み込み/書き込みを処理する リソースセット | データベース ファイルシステム ビックデータ分析 データウェアハウジング |
インスタンス世代
世代数は、数が大きいほど最新のインスタンスであることを示します。
最新の方が、性能の良いハードウェアを使用している、コストパフォーマンスが改善しているなどのメリットがあります。
追加機能
追加機能については、英語資料での簡単な説明しかありませんでした。
そのため、英語資料の原文と筆者が公式サイトを読み込んで得た知見からの解釈を記載します。
追加機能 | 説明(英語資料) | 解釈 |
---|---|---|
a | AMD processors | AMD プロセッサを搭載 |
b | Block storage optimization | ブロックストレージを最適化 |
d | Instance store volumes | インスタンスストアボリュームを搭載 |
e | Extra storage or memory | 追加のストレージまたはメモリを搭載 |
g | AWS Graviton processors | AWS Graviton プロセッサを搭載 |
i | Intel processors | Intel プロセッサを搭載 |
n | Network optimization | ネットワークの最適化 |
z | High frequency | 高周波数プロセッサを搭載 |
インスタンスサイズ
EC2では、AWSが最適なリソース量を組み合わせたセットとして提供しています。
例えば、CPU数が多くてもそれに見合うメモリ量を搭載しなければCPUは本来の力を発揮できません。
AWSでは、リソースを有効活用できる最適なセットをインスタンスサイズとして提供しています。
インスタンスサイズは小さい順に以下のように名称で表されています。
・nano
・micro
・small
・medium
・large
・xlarge
・2xlarge
・4xlarge
〜〜〜
どのインスタンスタイプを選ぶか?(迷ったらコレ!)
インスタンスタイプを整理しましたが、初めての人は選びきれないと思います。
そこで、本番環境での利用を想定した「とりあえず、コレを選んでおけば大失敗はない!」という組み合わせ紹介します。
インスタンス ファミリー | T or M (汎用) | 特定の処理に特化させる要望がなければ、 汎用タイプを選択する。 TはCPUのバースト機能が利用できる。 |
インスタンス 世代 | (最新世代) | 基本的に最新世代の方が性能が良く、 コストパフォーマンスが優れている。 ただし、最新世代の方がコストが高い、 不要な追加機能がある場合は、 世代を落としてモノを選択すると良い。 |
追加機能 | (なし) | 特段のこだわりがなければ、 追加機能は不要である。 |
インスタンス サイズ | large or xlarge | 一般的なサーバー利用であれば、 large程度で十分である。 ただし、試験的な利用ならnanoや microで十分である。 |
どんどん使って、慣れよう!
EC2のインスタンスタイプを説明し、初学者に向けたオススメの設定を紹介しました。
ただ、文書だけだとピンと来ないモノがあると思います。
知識は使ってこそ理解を深め、定着します。
ありがたいことにAWSには無料利用枠が用意されていますので、AWSアカウントを作成して色々と試してみましょう!
加えて、EC2でのインスタンス作成方法はこちらの記事を詳しく解説しています。
知識を蓄え、手を動かして定着させ、どんどんレベルアップをしていきましょう!
コメント