これまであまり物理的なサーバとストレージに触れてこなかった方を対象に、AWSを用いてサーバとストレージの基礎知識を解説する連載。初回は、サーバと仮想化について基本から解説し、Amazon EC2の操作手順を示す。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
クラウドでサービスを利用したり、システムやWebアプリケーションを構築することが当たり前になった昨今、以前はハードウェアを触ることで物理的に理解することができたサーバやストレージの基礎知識について、意識することが難しくなっています。一方で、IaaS(Infrastructure as a Service)やPaaS(Platform as a Service)などクラウドを使いこなす上では、サーバやストレージについて基本から分かっている必要があるにもかかわらず、あいまいなまま使っていて障害やセキュリティ事故につながっていることもあるのではないでしょうか。
本連載「AWSで学ぶクラウド時代のサーバ&ストレージ基礎知識」では、これまで仮想マシンは使っていたけど物理的なサーバに触れてこなかったエンジニアやサーバ管理者、情シスなどを対象に、サーバとストレージの基礎知識を「Amazon Web Services」(AWS)の操作を例に解説します。
本連載は全7回を予定しています。各回、下記のテーマで基礎知識を解説し、テーマに関連するAWSのサービスを紹介します。
連載初回の本稿では、「サーバとは何か」という基本的なところから解説します。クラウドサービスの利用が浸透した今、AWSの「Amazon Elastic Compute Cloud」(EC2)のようなサービスは当たり前に使われています。EC2は、クラウド上で提供される仮想サーバです。このEC2と物理的なサーバの違いを見ていくことで、EC2への理解もより深めることができると思います。
サーバとは、コンピュータネットワーク上でのサービス提供者として機能するコンピュータや、その上で動くソフトウェアのことを指します。例えば、Webサーバやメールサーバ、データベースサーバなど頻繁に目にしているものがあると思います。ここでは、さらに掘り下げてコンピュータマシンそのものを指す「物理サーバ」について説明します。
物理サーバは、タワー型やラックマウント型、モジュラー型といった形で提供されるハードウェアのマシンを指します(詳細は後述します)。このサーバ上に構築されるソフトウェアやアプリケーションが直接利用できるリソースを備えています。また、設置場所や電力供給といった制約があることも、物理故の特徴と言えます。
物理サーバは、普段私たちが使用している一般のPCとは異なり、特定の役割や要件を満たすための構成や機能を兼ね備えています。以下、物理サーバの主な特徴をまとめます。
物理サーバは、マウスやキーボードなどの入力装置を用いて直接操作されることは少なく、一般的なPCのように扱うことはありません。主にネットワーク経由のリモート操作によって運用されています。
物理サーバは24時間365日の連続稼働を前提として設計されています。この要件を満たすために、「RAID(Redundant Arrays of Inexpensive Disks)コントローラー」という、複数のHDD(Hard Disk Drive)やSSD(Solid State Drive)などのストレージを束ねて仮想的に1つのストレージのように運用、制御する装置を利用します。RAIDコントローラーにはデータの冗長性や耐障害性を高めたり、冗長化された電源を備えたりするなど、堅牢(けんろう)な機能や仕組みが用意されています。
多くのユーザーにサービスを提供するために、物理サーバには専用のオペレーティングシステム(OS)や特定のソフトウェアがインストールされることが一般的です。
サーバ(コンピュータ)の土台となる基板です。システムのさまざまなコンポーネントを結び付ける役割があります。マザーボード上には、以降で説明するCPU、メモリ、拡張カード(NICなど)のスロット、ストレージデバイスへの接続インタフェースなどが配置されます。
サーバ(コンピュータ)の中核となる部分で、さまざまな命令の実行や計算を担当する演算処理装置です。主な性能の指標として、クロック速度があります。クロック速度は「CPUが1秒間に何回の操作ができるか」を示すもので、例えば「2.0GHz」の場合、1秒間に20億回の操作が可能です。
近年のCPUは「マルチコア」を持つことが一般的です。マルチコアは複数の命令を同時に処理する能力を持つことを意味します。
主要なサーバ用CPUとしては、Intelの「Xeon」シリーズやAMDの「EPYC」シリーズがあり、サーバの要件や使用目的に応じて、適切なCPUを選択する必要があります。
サーバ(コンピュータ)の一時的なデータ保管場所として機能する部分です。主に「メインメモリ」として知られるRAM(Random Access Memory)から構成されます。RAMは、アクセス速度が高速で、実行中のプログラムやタスクのデータを一時的に保持する場所として活用されます。
RAMの中でも特に、DRAM(Dynamic Random Access Memory)というタイプが広く使われています。DRAMは、データを保持するための情報が時間とともに失われるので、「定期的にその情報を更新(リフレッシュ)しなくてはならない」という特性を持っています。
サーバでは、DRAMを利用した「DIMM」(Dual In-line Memory Module)という形式のメモリが一般的に使用されます。DIMMでは、基板上にDRAMチップが搭載されており、このモジュールをマザーボード上の専用のスロットに差し込むことで、サーバのメモリ容量を増加できます。DRAMはデータ転送速度の違いなどによって複数の規格ありますが、現在は「DDR」(Double Data Rate)という規格が主流です(「DDR4」「DDR5」などがあり、データ転送速度、電圧、物理的なピンの配置などに違いがあります)。
サーバ(コンピュータ)の内蔵ディスクで、データの保存場所として機能します。種類としては主にHDD、SSDがあります。
HDDは物理的なディスクを回転させてデータを読み書きするストレージで、大容量かつ低コストなのが特徴です。
SSDはフラッシュメモリベースのストレージで、HDDと比較して読み書き速度が高速です。さらに、寿命や耐久性にも優れています。
最近では「NVMe」(Non-Volatile Memory express)というSSDもよく利用されています。PCI Express接続(高速なデータ通信を可能とするシリアル転送方式の拡張インタフェース接続規格)を利用することで、最近では従来のSSDより高速なデータ転送を可能とします。
サーバの内蔵ディスクを使用していて容量が足りない場合や、複数のサーバ間でデータを共有したい場合は、NAS(Network Attached Storage)やSAN(Storage Area Network)などによる外部ストレージの導入も考慮する必要があります。
サーバ(コンピュータ)がネットワークに接続するための装置です。ローカルエリアネットワーク(LAN)などのネットワークに接続する機能を持ちます。
近年のNICは、1〜100Gbpsという転送速度をサポートし、イーサネットや光ファイバーなどの接続にも対応しています。さらに、高可用性や冗長性を考慮して、サーバは複数のNICを搭載できるように設計されていることがほとんどです。そのため、1つの接続が失われた場合でもネットワーク接続を維持できます。
デスクトップPCのような形状を持つサーバで、特別なラックやシャシーが不要です。そのため、スペースに制約のあるオフィスや小規模のシステムに適しています。導入コストは比較的低いですが、追加でサーバを設置する際には、サーバの数だけスペースを用意する必要があります。
主な製品としてはDell Technologies(以下、Dell)の「PowerEdge T」シリーズや、Hewlett Packard Enterprise(以下、HPE)の「ProLiant ML」シリーズなどがあります。
サーバラックに取り付けることを前提として設計されたサーバで、縦のスペースを効率的に活用してデータセンターやサーバルームでの集約が可能です。サーバのサイズは「1U」「2U」「4U」といった高さの単位(1U=1.75インチ)で表されます。
複数のサーバを1つのラックに配置することで、拡張性やメンテナンス性を向上させることが可能です。タワーサーバと比べて中規模から大規模な環境での利用が多いと言えます。
主な製品としてはDellの「PowerEdge R」シリーズやHPEの「ProLiant DL」シリーズ、Cisco Systems(以下、Cisco)の「UCS-C」シリーズなどがあります
複数の独立したサーバを1つの専用シャシー内に収容するサーバ形式で、収容されるサーバは一般的に「ブレードサーバ」といわれることが多いです。特に大規模なデータセンターやシステムに向いており、1つのシャシー内で電源供給やネットワーキングのリソースを共有することで、効率的な電力消費や一元化された管理を実現します。
拡張が必要になった場合は、既存シャシーに新たなサーバを追加するだけで済みます。ただし、シャシーが必要になるという特性から、モジュラー型サーバの初期導入コストは比較的高い傾向にあります。
主な製品としてはDellの「PowerEdge MX」シリーズやHPEの「Synergy」シリーズ、Ciscoの「UCS-X」シリーズなどがあります。
物理サーバの運用では「ベアメタルサーバ方式」「仮想サーバ方式」について知っておく必要があります。
ベアメタルサーバ方式は、物理サーバ上で直接アプリケーションやOSを稼働させるサーバのことを指します。物理サーバ自体のことを「ベアメタルサーバ」ということもあります。
ベアメタルサーバの運用では仮想化技術を使用せず、ハードウェアのリソースに直接アクセスします。仮想化によるオーバーヘッドが発生せず、最大限のパフォーマンスと安定性を提供します。リアルタイム処理が必要なアプリケーションや高度なデータベース処理など、特定の高性能を要求するニーズに応えることができます。
仮想サーバ方式は、「ハイパーバイザー」というソフトウェアを使用して、物理サーバ上に複数の「仮想マシン」を作成することを指します。ここで「仮想マシン」とは、アプリケーションなどが実装されていない仮想サーバのことを指しています。
ハイパーバイザーは、物理サーバのCPU、メモリ、ストレージなどのリソースを仮想的に分割し、それらのリソースを複数の仮想マシンに割り当てる役割を果たします。主なハイパーバイザー製品として、「VMware ESXi」「Microsoft Hyper-V」などがあります。
各仮想マシンはハイパーバイザーによって独立して動作し、他の仮想マシンの影響を受けることがありません。1つの物理サーバ上で異なるOSやアプリケーションを同時に動かせます。
仮想マシン上で動作するOSのことを「ゲストOS」、仮想マシンに割り当てられるCPU、メモリ、ディスク、NICなどの仮想的なリソースは「仮想ハードウェア」といいます。
ハイパーバイザーがもたらす仮想化とは、物理的なハードウェアリソースを抽象化し、それを複数の独立した仮想リソースとして提供する技術のことです。
仮想化を導入することで、1台の物理サーバ上に複数の仮想マシンを配置できます。各仮想マシンに異なるOSやアプリケーションを独立して実行させることで、それぞれを仮想サーバとして展開できます。CPUやメモリ、ストレージなどのリソースの利用効率が大幅に向上し、従来、機能ごとに必要だった物理サーバの数を削減でき、必要なリソースを持ったサーバだけを用意すればよくなるのです。
仮想化によってサーバのリソースを有効に活用できるので、不要なハードウェアの導入を回避し、設備投資にかかるコストを削減できます。
仮想マシンの迅速な展開だけでなく、「クローン」「マイグレーション」「スナップショット」といった機能を利用できるようになり、データセンターやサービス基盤における運用の迅速性と効率性が向上します。これらの詳細は、連載第3回で説明する予定なので、ここでは割愛します。
ハイパーバイザーによる仮想化は、障害発生時のリスク低減やセキュリティの向上にも貢献します。仮想マシンごとに独立した環境が提供されるので、1つのシステムに問題が生じた場合でも、他のシステムに影響を与えるリスクが軽減します。
仮想化技術によって仮想サーバを展開する流れを説明します。後述するEC2サービスを使用する際のメリットについて、より深く理解できると思います。
仮想サーバ方式で仮想サーバを展開する手順は、大きく分けて次の通りです。
CPU、メモリ、ストレージ、ネットワーク帯域など、必要なリソースをサイジングする必要があります。特定のワークロードとアプリケーションの要件を考慮し、将来的なリソースの成長予測や予算情報などもこのとき考慮しておきます。
セットアップでは、機器を設置したり、電源を接続したりします。また、次のステップに向けてサーバの初期設定やネットワーク接続も行います。
サーバの初期設定としては、ファームウェアのバージョンを確認し、インストール予定のハイパーバイザーと互換性がない場合、互換性があるバージョンまでアップデートする必要があります。
ネットワーク接続の際には、ケーブルの調整や接続先スイッチなどの設定も必要です。さらに、セキュリティ対策として、ファイアウォールの設定やセキュリティポリシーの適用も環境に合わせて行う必要があります。
インストールには、ハイパーバイザーのインストールメディアを使用します。一般的には各ベンダーのサイトからダウンロードする必要があります。ダウンロードしたインストールメディアは、USBメモリやCD-R/DVD-Rメディアなどに書き込むか、ネットワーク経由などでサーバからアクセスできるようにする必要があります。その後、インストールメディアを使用してサーバを起動し、ハイパーバイザーのインストールプロセスを開始します。画面の指示に従って基本的な設定を行い、インストールを完了します。インストール完了後には、ライセンス認証や設定の確認も必要です。
現行のサーバのほとんどは、仮想コンソール(KVMコンソール)が利用できるようになっています。これはサーバへのキーボード(K)、ビデオ(V)、マウス(M)の直接接続をエミュレートします。KVMコンソールを使用すると、リモートでサーバを操作したり、物理的に接続されたCD-R/DVD-Rドライブを使用する代わりに、仮想メディアとしてインストールメディアを使用できたりする、といったメリットがあります。
必要な仮想リソース(CPU、メモリ、ディスク、NICなど)を割り当てます。また、必要に応じて次のステップで必要となるOSのイメージファイルを構成しておきます。仮想マシンのネットワーク設定やストレージアクセスの設定もこの段階で行います。
作成した仮想マシンを起動し、OSをインストールします。
ゲストOS上でアプリケーションをインストールし、サービスを展開します。必要に応じて追加ソフトウェアのインストール、データベースの設定、ネットワークとセキュリティの設定などの作業も実施します。
以上、仮想サーバを展開する基本的な流れを説明しました。追加の仮想サーバが必要な場合でも、物理サーバの容量限界に達するまで、同様の手順を繰り返して仮想サーバを追加できます。
近年、仮想化技術の利用は当たり前となり、物理サーバは仮想サーバとして展開されることが一般的になっています。しかし、AWSのEC2は、物理サーバを準備することなく、仮想サーバ環境を迅速に利用できる選択肢を提供します。以降では改めてEC2について解説します。
EC2を簡単に説明すると「クラウドベースの仮想サーバ」です。ユーザーはアプリケーションの要件に応じて、EC2インスタンスのサイズやタイプ(CPU、メモリ、ストレージ、ネットワークの性能を持つ種類)を自由に選択できます。
EC2にはさまざまな料金モデルが提供されています。使った分だけ支払うオンデマンドモデルや、「リザーブドインスタンス」「スポットインスタンス」などの、使用状況が想定されている場合においてコストパフォーマンスを最大化させるモデルも用意されています。EC2はAWSクラウド上で仮想サーバを迅速に展開して運用するためのサービスです。ユーザーはインフラの物理的な管理を気にせず、利用した分だけ料金を支払えばよい仕組みになっています。
EC2インスタンスは、仮想サーバ方式によって展開される仮想サーバです。その裏には物理サーバが存在し、ハイパーバイザーとなるソフトウェアが動作しています。これらの運用やセキュリティに関して、ユーザー自身は何も懸念しなくてもよいという点が、EC2を利用する上での大きなメリットです(詳細は後述)。
EC2は基本的に仮想サーバだと説明しましたが、ベアメタル方式のように展開できるEC2インスタンスもあります。これは「ベアメタルインスタンス」というマシンタイプとして提供されており、「Nitro System」という技術によって実現されています。今回は、仮想サーバ方式のEC2を取り上げるので、Nitro Systemの詳細は割愛します。
EC2を利用するに当たって押さえておくべき以下の要素について、EC2インスタンスを作成する手順を基に解説します。
ここからは、AWSの環境でこれまでの内容を見ていきます。
まず、AWSアカウントにサインインして、「マネジメントコンソール」(AWS Management Console)にアクセスします。EC2にアクセスしたことがない場合は、画面左上の「サービス」を選択します。
サービス一覧から「EC2」を選択して「EC2ダッシュボード」に移動します。
EC2ダッシュボードでは、アカウント内のEC2リソースをまとめて管理、運用できます。
以降の手順において、「EC2インスタンス」という単語が出てきますが、EC2とEC2インスタンスでは使い分けが必要です。「EC2」とは、AWSが提供するクラウド上の仮想サーバサービス全体のことを指し、そのEC2サービスの中で起動される仮想サーバが「EC2インスタンス」です。
ダッシュボード内にある「インスタンスの起動」をクリックすることで、以下の画面に遷移します。ここではまず、作成するEC2インスタンスの名前を入力する必要があります。
EC2インスタンスを起動するためのテンプレートとして、OSやソフトウェアを含むAMIを選択します。公式のAMIだけでなく、「AWS Marketplace」から提供されるAMIや自身で作成したAMIも選択可能となっています。「AWS Linux」という、AWSのインフラストに最適化されたLinuxシステムが用意されているのも特徴的です。
必要なCPU、メモリ、ストレージの容量に基づいて最適なインスタンスタイプを選択します。インスタンスタイプには、汎用(はんよう)的に使えるものから、特定のリソースに特化したものまで多岐にわたります。ワークロードの要件や予算を踏まえて適切に選択することが重要です。
キーペアとは、公開鍵と秘密鍵の組み合わせのことです。AWSでは、これを使用してEC2インスタンスに接続します。既存のキーペアを使用するか、新しいキーペアを作成してダウンロードするかを選択できますが、ここでは、新しいキーペアを作成します。
キーペアの作成には名前だけを入力して、後はデフォルト(初期設定)のまま作成します。
キーペアを作成すると、秘密鍵として.pemファイルがダウンロードされます。.pemファイルは、PEM(Privacy Enhanced Mail)形式でエンコードされるファイルのことで、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)証明書やSSH(Secure Shell)秘密鍵などによく使用されます。
この秘密鍵ファイルの扱いには非常に注意が必要です。もし、第三者の手に渡ってしまうと、そのキーペアを使用しているインスタンスへの不正アクセスが可能となってしまいます。
また、キーペアを紛失した場合、該当のキーペアで作成されたインスタンスにはアクセスできなくなります。その場合、新しいキーペアを作成して、インスタンスに適用する必要があります。
ここではEC2インスタンスを利用する上で必要となるネットワーク設定を行えます。
開発/テスト環境などの一時的な利用なら、最低限必要となる設定はデフォルトで用意されているので、設定を編集する必要はありません。詳細は記事「ネットワークなんて触ったことないから分からない――クラウド世代のための「IPネットワーク」超入門:AWSで学ぶクラウド時代のネットワーク基礎知識(1)」をご参照ください。
ここではインスタンスにアタッチする追加のストレージを設定できます。ストレージの設定は主に「Amazon Elastic Block Store」(EBS)を用いて行われます。EBSはブロックレベルのストレージボリュームで、EC2インスタンスにアタッチして使用します。赤枠で囲んでいるEBSの種類などの詳細は、連載の次回で解説します。
EC2インスタンスにおけるストレージに関しては、「インスタンスストア」と「追加のEBSボリューム」の2種類を理解しておく必要があります。
特定のインスタンスタイプでのみ利用可能なストレージで、EC2インスタンスの起動時に自動的にプロビジョニングされアタッチされます。インスタンスストアは、インスタンスを停止、終了、または再起動すると、データが失われます。そのため、重要なデータを保存する用途には向いていません。主な用途としては、高速なI/O性能が求められるワークロードや一時的なデータの保存などが挙げられます。
データ保存やアプリケーションのデータベースなどのために利用されます。データの管理、バックアップを容易にし、性能の向上やスケーラビリティなども確保できるようになります。EC2インスタンスのライフサイクルとは独立しており、EC2インスタンスの停止や削除に影響されることなくデータを維持できます。
全ての設定が完了したら、右下に表示されている「インスタンスを起動」を実行します。
これでEC2インスタンスの起動は完了です。
EC2インスタンスの展開方法を詳細に説明してきましたが、複雑な設定が必要ない場合、非常に容易に展開できることが分かったと思います。
物理サーバから仮想サーバを展開する手順とEC2を利用する際の手順を比較すると、物理サーバやハイパーバイザーに関連する作業が、EC2では不要になることが分かります。このメリットは「責任共有モデル」という概念を通じて説明されています。責任共有モデルは基本的に「AWSとユーザーの間でセキュリティの責任がどのように分担されるか」を明示するフレームワークです。
この図から明らかなように、AWSを利用する場合、ユーザーはハードウェア、ソフトウェア、ネットワーキング、およびデータセンターなどの物理的なリソースについて、セキュリティを保証する必要はありません。
一方で、ユーザーは自身のデータ、アプリケーション、およびサービスのセキュリティ、アクセス管理、データの暗号化、ネットワークの設定などといった、AWS内のリソースやデータのセキュリティを保証する責任を持っています。また、オンプレミス環境の場合であれば、当然ながら全てのリソースに対して責任を負う必要があります。
このモデルは主にセキュリティの責任範囲を明確に定義するものであり、AWSが物理的なインフラ、データセンターのセキュリティ、ネットワークの安全性などを保証していることを示しています。このため、ユーザーはインフラの基本的な運用管理について心配することなく、アプリケーションの開発や運用に専念できます。
本連載は、これまであまり物理的なサーバとストレージに触れてこなかったエンジニアの方に物理的なサーバとストレージの基礎技術をAWSのサービスと比較しながら理解してもらうことを想定しており、その第1回としてサーバについて説明し、EC2にどのようなメリットがあるかを紹介しました。
次回、第2回はブロックストレージについて取り上げます。EC2を構成する要素でもあるEBSについてより詳細に説明します。
ネットワンシステムズ ビジネス開発本部 応用技術部 クラウドインフラチーム
2021年にネットワンシステムズに新卒として入社。サーバやクラウド製品の評価、検証、そして案件サポートを主な業務として担当。現在は、マルチハイブリッドクラウド環境での管理や最適化を中心に検証業務に従事している。
Copyright © ITmedia, Inc. All Rights Reserved.