【AWS入門】Mash式チュートリアル【EC2編 その1~EC2の概要をつかむ~】

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

こんにちは、Mashです。

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

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

EC2はまさにAWSの王道サービス(と勝手に思ってます笑)で、AWSを学習する上で通らない人はいないといっても過言ではなく、「AWSできます!」と言うためには必修科目です。

今回はハンズオンなしですがしっかり習得してください!

それではいきましょう!

What is EC2?

まずはEC2の概要から。

EC2とは

正式名称は Amazon Elastic Compute Cloud で、頭文字をとってEC2と呼ばれます。

EC2はAWSが提供する仮想サーバのサービスです。

AWSなどのクラウドサービスを利用しない場合(オンプレといったりします)、システムを構築するための準備をすべて自分たちで行う必要があります。

かなりざっくりですが、

  1. サーバ設置場所(データセンター)の選定
  2. ハードウェアの調達、設置
  3. ネットワーク結線
  4. 仮想化基盤(ハイパーバイザ)の構築
  5. 仮想マシンの構築
  6. OSインストール、初期設定

このような作業が必要になります。

これらをすべてやりきった上で、ようやっとアプリケーションを稼働させることができるわけなんですね

事前にシステム負荷を見積もった上でハードウェアを購入する必要がありますし、作業ボリュームも多く、数ヶ月単位で時間もかかります。

そこで登場するのがEC2

まず、AWSでは1~4まではすでに構築済みでサービスとして提供されています。

そして、EC2を利用すれば残りの5~6を数分で終わらせることができます

EC2のイメージ

事前にシステム負荷を見積もり、高額なハードウェアを購入する必要はありません。

必要なときに必要な分だけEC2サーバを立ち上げることで、高負荷にも対応し、かつ低負荷時にはコストを抑えることが可能です。

AWSではEC2仮想サーバのことを インスタンス と呼びます。
以降、仮想サーバのことをインスタンスと記載していますのでご留意ください。

利用料金

EC2には課金体系がいくつかあるのですが、ここでは一番基本となる オンデマンドインスタンス について 触れたいと思います。

※他の課金体系については別記事にします

ポイントは2つです。

EC2の起動時間

EC2インスタンスを起動している時間に対して課金されます。

システム負荷が高い時間帯はインスタンスを多く起動し、負荷が低い時間は止めておくという運用をすることで、コストを最適化することが可能です。

システム負荷に応じて柔軟にインスタンスを増減

オンプレ環境では、システム構築時に資産を一括購入する必要があるため、負荷に応じてコストを抑えるといった運用はできません。

インスタンスタイプ

後述する インスタンスタイプ によって、インスタンスの単価が異なります

インスタンスタイプは、EC2のCPUとメモリなどのハードウェアスペックセットのようなものです。

適当にいくつか抜粋してみました。

インスタンスタイプ名vCPUメモリ (GiB)
t2.micro11
c4.4xlarge1630
m5.24xlarge96384

当然、高スペックなインスタンスタイプで稼働するものは高価格になります。

OSライセンス料

ライセンス料金が不要なOS(CentOS、Ubuntuなど)とWindows Serverでは、同じインスタンスタイプでもWindows Serverを稼働させているインスタンスのほうがより高価になります。

これはOS分のライセンス料が加算されているためです。

試算してみる

EC2の課金は起動時間とインスタンスタイプおよび選択したOSの掛け算です。

AWS公式サイトの価格表を元に、何パターンか試算してみましょう。

OSインスタンスタイプ単価1ヶ月(30日)の料金
Amazon Linuxt3.medium0.0544USD/時間0.0544USD × 24h × 30d = 39.168USD
Amazon Linuxt3.2xlarge0.4352USD/時間0.4352USD × 24h × 30d = 313.344USD
Windows Server t3.2xlarge0.5824USD/時間0.5824USD × 24h × 30d = 419.328USD
https://aws.amazon.com/jp/ec2/pricing/on-demand/ を元に試算

スペック増強することでかなり金額に差がでましたね。

EC2ではインスタンスタイプを柔軟に変更することが可能です。

システムリリース後、負荷状況を見ながら適切なインスタンスタイプに変更し、高負荷への対応やコスト最適化を行っていきましょう。

EC2の構成要素

それではここからはEC2インスタンスを技術的に紐解いていきます。

冒頭記載の通りインスタンスは仮想サーバですので、当然CPUやメモリ、ディスク、ネットワークカード、OSが一体となって稼働します。

これらがどのAWS用語と紐付いているかを整理していきましょう。

さきに全体像をご覧ください。

EC2インスタンスのイメージ

OS = AMI

AMIAmazon Machine Image の略称で、EC2を展開するときに使用するOSテンプレートです。

Windows ServerやRed Hat、Ubuntuなど一般的なOSの各バージョンについて、AMIがひととおり提供されています

このAMIをもとにEC2インスタンスをどんどん複製していくわけです。

AMIクイックスタート
クイックスタート

また、Market Placeではサードパーティ製の仮想ソフトウェアがインストール済みのAMIなども提供されていたりします。

AMI Marketplace
Marketplace

なお、一度構築したインスタンスに独自のカスタマイズを行い、そのインスタンスを自分だけのAMIとして保存しておくことも可能になっています。

大規模システムを展開する際には前述のとおりシステム負荷に応じてインスタンスを増減させるわけですが、素のOSからセキュリティパッチを適用して、必要なソフトウェアをインストール/設定して、アプリケーションコードを配置していては、とても時間がかかってしまいます。

必要な設定をすべて済ました状態をAMIとして保持しておけば、すぐにインスタンスとして複製し、利用開始することができます。

CPU + RAM = インスタンスタイプ

EC2のスペックを決めるのが インスタンスタイプ です。

さきほど触れたように、インスタンスタイプによってCPU数やメモリ量を調整するのですが、ネットワークやディスクのパフォーマンスがよくなるものもあったりします。

また、インスタンスタイプはいくつかのファミリーに分かれていて、「汎用的に利用できるもの」「CPU数が多いもの」「メモリ料が多いもの」「GPUを搭載したもの」など、開するシステム(アプリケーション)に適したインスタンスタイプを選択できるようになっています。

インスタンスタイプ - Amazon EC2 | AWS
Amazon EC2 では、異なるユースケースに合わせて最適化されたさまざまなインスタンスタイプが用意されています。インスタンスタイプはさまざまな CPU、メモリ、ストレージ、ネットワークキャパシティーの組み合わせによって構成されているため、アプリケーションのリソースとして適切な組み合わせを柔軟に選択できます。

ディスク = EBS

EC2インスタンスのディスク領域を、AWSではEBS(Elastic Block Store)というサービスで提供しています。

インスタンスにはEBSが必ず一つ以上アタッチされていて、ここにOS領域が保存されています。

もちろんEBSを2つ以上アタッチして、OS領域用、アプリケーションインストール領域用、その他データ保存用などと使い分けることも可能です。

またこちらの公式サイトのとおり、EBSでは様々な用途に応じたディスクを提供しています。

「高速な読み書きが可能なディスクが必要」「読み書きのパフォーマンスは不要だが、データ保管用に安価なディスクが必要」など、要件に応じた選択が可能です。

Amazon EBS ボリュームタイプ - アマゾン ウェブ サービス
ワークロードのパフォーマンス、コスト、およびシンプルさを最適化するために、各 Amazon EBS ボリュームタイプのさまざまなユースケースと特性の詳細をご覧ください。

NIC = ENI

最後にENI(Elastic Network Interface)です。

EC2インスタンスはサーバですのでクライアントや他のサーバと通信する必要があります。

この”通信”を行うために必要なAWS コンポーネントが ENI です。

一般的な物理マシンでいうNICに相当します。

Error 403 (Forbidden)|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
403エラーページです。用語の意味を「ざっくりと」理解するためのIT用語辞典です。

ENIも、インスタンスに複数アタッチすることができ、プライベートIPアドレスを複数もたせることが可能です。

実利用では、「ユーザが利用するサービスLAN」「バックアップなどの通信を行う管理LAN」といったように、用途別にNICを分けたりします。

以上がEC2インスタンスを構成するコンポーネントのざっくり概要です。

全体イメージを再掲しておきますね。

EC2インスタンスのイメージ

まとめ

さて、

今回はざっくりEC2を理解する上では避けて通れない前提知識について学びました。

  • EC2はAWSの仮想サーバを提供するサービス名であること
  • EC2はインスタンスが起動している分だけ課金されること
  • EC2インスタンスはAMI、インスタンスタイプ(CPU、RAM)、EBS、ENIから構成されること

これらをおさえておけば、EC2はもう大丈夫です。笑

次回からはハンズオン形式でEC2について学んでいきたいと思いますので、更新をお楽しみに!

今回は以上です。

それじゃあまたね。

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