1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWSプロフェッショナルへの道】現役エンジニアが贈るクラウド実践ガイド - 第3回

Last updated at Posted at 2025-07-17

仮想サーバーの起動から運用まで!EC2完全マスターガイド

こんにちは!現役エンジニアのakrです。

【AWSプロフェッショナルへの道】現役エンジニアが贈るクラウド実践ガイド」の第3回です。前回は、AWSのプライベートネットワークを構築する「VPC」について深掘りし、その設計と構築の基本を学びました。VPCがAWSリソースを配置する「箱」だとすれば、今回はその箱の中に実際にサーバーを配置する話になります。

今回は、AWSのコンピューティングサービスの中心であり、最も頻繁に利用されるサービスの1つ、EC2 (Elastic Compute Cloud) を徹底的に解説します。EC2は、AWSクラウド上で仮想サーバー(インスタンス)を柔軟に起動・管理できるサービスです。

「オンプレミスのサーバー管理は大変そう…」と感じている方もいるかもしれませんが、EC2を使えば、数分でサーバーを立ち上げ、自在にスケールさせることが可能です。本記事では、EC2インスタンスの起動から、インスタンスタイプの選び方、ストレージ、セキュリティ、基本的な運用までを網羅的に学び、実践的なスキルを身につけましょう。

仮想サーバーの起動から運用まで!EC2完全マスターガイド - visual selection.png


1. EC2とは?クラウドの仮想サーバーを理解する

EC2 (Elastic Compute Cloud) は、AWSが提供する仮想サーバーサービスです。「Elastic(伸縮自在な)」という名前の通り、必要な時に必要なだけサーバーを起動し、需要に応じて柔軟にスケールさせることができます。

オンプレミスでサーバーを準備する場合、ハードウェアの選定、調達、設置、OSのインストールなど、多大な時間とコストがかかります。しかし、EC2を使えば、これら全てのプロセスが数クリック、数分で完了します。

EC2でできること

  • サーバーの起動・停止・終了: 必要に応じてサーバーを簡単に起動したり、不要な時には停止・終了してコストを節約できます。
  • 多様なインスタンスタイプの選択: CPU、メモリ、ストレージなどのスペックが異なる多種多様なインスタンスタイプから、用途に最適なものを選べます。
  • ストレージの管理: 永続ストレージであるEBS(Elastic Block Store)をアタッチして、データを保存できます。
  • ネットワーク設定: 仮想ネットワークインターフェースや固定IPアドレス(Elastic IP)を割り当て、VPC内で自由にネットワークを構成できます。
  • スケーリング: Auto Scalingと連携して、負荷に応じて自動的にインスタンスを増減させることが可能です。

EC2は、Webサーバー、アプリケーションサーバー、バッチ処理、開発環境など、あらゆる用途で利用される、AWSの核となるサービスです。


2. EC2の主要な構成要素

EC2インスタンスを起動する前に、関連するいくつかの重要な概念を理解しましょう。

2.1. インスタンスタイプ

EC2インスタンスは、CPU、メモリ、ストレージ、ネットワーク性能の組み合わせによって、非常に多くの「インスタンスタイプ」が用意されています。用途に応じて最適なタイプを選ぶことが重要です。

代表的なインスタンスファミリー:

  • 汎用 (M, Tシリーズ): バランスの取れたCPUとメモリを持ち、Webサーバーやアプリケーションサーバーなど、幅広い用途に適しています。
    • Tシリーズ (T2, T3, T4gなど): CPUクレジットという仕組みで、普段は低負荷で動作し、必要に応じて一時的に高いCPU性能を発揮できます。無料枠で利用できるのもこのタイプです。
  • コンピューティング最適化 (Cシリーズ): 高いCPU性能が求められるバッチ処理や科学計算、ゲームサーバーなどに適しています。
  • メモリ最適化 (R, Xシリーズ): 大容量メモリが必要なデータベースやデータ分析、インメモリキャッシュなどに適しています。
  • ストレージ最適化 (I, Dシリーズ): 高速なローカルストレージIOが必要なデータウェアハウスやNoSQLデータベースに適しています。
  • 高速コンピューティング (P, Gシリーズ): GPUを搭載し、機械学習やグラフィック処理などに適しています。

無料枠の範囲内で試す場合は、t2.micro または t3.micro (※リージョンによる) インスタンスタイプを選択しましょう。

2.2. AMI (Amazon Machine Image)

AMI (Amazon Machine Image) は、EC2インスタンスを起動するためのテンプレートです。OS(Linux, Windows Serverなど)、アプリケーションサーバー、アプリケーションなどが事前に設定されています。

  • AWSが提供するAMI: さまざまなOSのAMIが用意されています(Amazon Linux, Ubuntu, Windows Serverなど)。
  • コミュニティAMI: 他のユーザーが公開しているAMIです。
  • カスタムAMI: 自分で設定したEC2インスタンスからAMIを作成し、再利用できます。これにより、常に同じ環境のインスタンスを簡単に起動できます。

2.3. EBS (Elastic Block Store)

EBS (Elastic Block Store) は、EC2インスタンスにアタッチできる永続的なブロックストレージです。EC2インスタンスのOSやデータはEBSボリュームに保存されます。

  • EC2インスタンスが停止または終了しても、EBSボリュームは独立して存在し続けるため、データが失われることはありません(ただし、インスタンス終了時にEBSボリュームも削除する設定になっている場合を除く)。
  • 複数のEBSタイプ(汎用SSD (gp2/gp3), プロビジョンドIOPS SSD (io1/io2), スループット最適化HDD (st1), Cold HDD (sc1))があり、パフォーマンスとコストに応じて選択できます。
  • スナップショット機能でバックアップを取得したり、別のAZにコピーしたりできます。

2.4. キーペア

EC2インスタンスにSSHで接続するために必要なのが「キーペア」です。公開鍵と秘密鍵のセットで構成されます。

  • 秘密鍵 (.pemファイル): あなたの手元で厳重に管理します。SSHクライアントでインスタンスに接続する際に使用します。
  • 公開鍵: EC2インスタンスの作成時にインスタンス内に配置されます。
  • セキュリティ上、キーペアは一度しかダウンロードできないため、大切に保管してください。紛失するとインスタンスにログインできなくなります。

2.5. セキュリティグループ

前回のVPCの回でも触れましたが、EC2インスタンスへのアクセス制御には「セキュリティグループ」が非常に重要です。

  • セキュリティグループは、インスタンスレベルの仮想ファイアウォールです。
  • 許可したいプロトコル、ポート、送信元IPアドレスをルールとして設定します。
  • SSH(ポート22)、HTTP(ポート80)、HTTPS(ポート443)などの必要なポートのみを「許可 (Allow)」するように設定し、不必要なポートは「拒否 (Deny)」することで、セキュリティを強化します。
  • ステートフルなフィルタリングを行うため、インバウンドで許可された通信の応答は、アウトバウンドルールに関わらず自動的に許可されます。

3. 実践!EC2インスタンスを起動してみよう

それでは、実際にAWSマネジメントコンソールを使ってEC2インスタンスを起動してみましょう。今回は、前回作成したVPCのパブリックサブネットにWebサーバーを想定したEC2インスタンスをデプロイします。

3.1. キーペアの作成

まだキーペアがない場合は、先に作成しておきましょう。

  1. AWSマネジメントコンソールにサインインし、「EC2」サービスに移動します。
  2. 左のナビゲーションペインから「キーペア」を選択し、「キーペアを作成」をクリックします。
  3. キーペア名: my-web-server-keypair など、分かりやすい名前を設定します。
  4. 「キーペアを作成」をクリックすると、秘密鍵(.pemファイル)が自動的にダウンロードされます。このファイルを安全な場所に保管してください!

3.2. セキュリティグループの作成

SSHとHTTPでのアクセスを許可するセキュリティグループを作成します。

  1. EC2コンソールで左のナビゲーションペインから「セキュリティグループ」を選択し、「セキュリティグループを作成」をクリックします。
  2. 基本情報:
    • セキュリティグループ名: web-server-sg
    • 説明: Allow SSH and HTTP access to web server
    • VPC: 前回作成した my-web-app-vpc を選択します。
  3. インバウンドルール:
    • 「ルールを追加」をクリックし、以下のルールを追加します。
      • タイプ: SSH / ソースタイプ: マイIP (あなたの現在のIPアドレスからのアクセスのみ許可) または どこでも (IPv4) (0.0.0.0/0) (※セキュリティ上は限定推奨)
      • タイプ: HTTP / ソースタイプ: どこでも (IPv4) (0.0.0.0/0)
  4. アウトバウンドルール: デフォルトの「すべてのトラフィックを許可」のままで問題ありません。
  5. 「セキュリティグループを作成」をクリック。

3.3. EC2インスタンスの起動

いよいよEC2インスタンスを起動します!

  1. EC2コンソールで左のナビゲーションペインから「インスタンス」を選択し、「インスタンスを起動」をクリックします。
  2. ステップ1: 名前とタグの指定
    • 名前: my-web-server-instance
    • 必要に応じてタグを追加します。
  3. ステップ2: アプリケーションおよびOSイメージ (Amazon マシンイメージ - AMI)
    • Amazon Linux 2023 AMI」を選択します(無料枠対象)。
  4. ステップ3: インスタンスタイプを選択
    • t2.micro」または「t3.micro」を選択します(無料枠対象)。
  5. ステップ4: キーペア (ログイン)
    • 先ほど作成したキーペア (my-web-server-keypair) を選択します。
  6. ステップ5: ネットワーク設定
    • VPC: 前回作成した my-web-app-vpc を選択します。
    • サブネット: パブリックサブネットmy-web-app-public-subnet-a)を選択します。
    • パブリックIPの自動割り当て: 「有効化」を選択します(インターネットからアクセスできるようにするため)。
    • ファイアウォール (セキュリティグループ): 「既存のセキュリティグループを選択」を選び、先ほど作成した web-server-sg にチェックを入れます。
  7. ステップ6: ストレージを設定 (ボリューム)
    • デフォルトの8GiBの汎用SSD (gp2) のままで問題ありません。無料枠の範囲内です。
  8. ステップ7: 高度な詳細 (オプション)
    • 今回は特に設定は不要です。
  9. ステップ8: サマリー
    • 設定内容を確認し、「インスタンスを起動」をクリックします。

数分待つと、インスタンスの状態が「保留中」から「実行中」に変わります。

3.4. EC2インスタンスへSSH接続し、Webサーバーを構築

インスタンスが起動したら、SSHで接続してWebサーバーを構築してみましょう。

  1. EC2コンソールで、起動した my-web-server-instance を選択します。

  2. 詳細」タブから「パブリックIPv4アドレス」または「パブリックIPv4 DNS」を控えます。

  3. ターミナルを開き、秘密鍵ファイルがあるディレクトリに移動します(または秘密鍵ファイルのフルパスを指定)。

  4. 秘密鍵のパーミッションを設定します。

    chmod 400 my-web-server-keypair.pem
    
  5. SSHで接続します。ec2-userはAmazon Linuxのデフォルトユーザー名です。

    ssh -i "my-web-server-keypair.pem" ec2-user@<あなたのインスタンスのパブリックIPv4アドレスまたはDNS>
    

    初めて接続する際は、ホストのフィンガープリントについて聞かれるので「yes」と入力します。

  6. 接続できたら、Webサーバー(Apache HTTP Server)をインストールし、簡単なHTMLファイルを作成します。

    # パッケージのアップデート
    sudo yum update -y
    
    # Apache HTTP Server のインストール
    sudo yum install -y httpd
    
    # Apacheを起動し、自動起動を有効にする
    sudo systemctl start httpd
    sudo systemctl enable httpd
    
    # シンプルなHTMLファイルを作成
    echo "<h1>Hello from AWS EC2!</h1>" | sudo tee /var/www/html/index.html
    

これでEC2インスタンス上でWebサーバーが起動し、index.htmlが配置されました。

3.5. Webサーバーにアクセスしてみよう

Webブラウザを開き、http://<あなたのインスタンスのパブリックIPv4アドレス> にアクセスしてみてください。

Hello from AWS EC2! と表示されれば成功です!


4. EC2インスタンスの管理と運用

EC2インスタンスは、起動して終わりではありません。適切に管理・運用することが重要です。

4.1. インスタンスの状態管理 (停止/起動/終了)

  • 停止 (Stop): インスタンスを一時的にシャットダウンします。OSが終了し、EBSボリュームの料金のみ発生します。インスタンスに割り当てられたパブリックIPアドレスは解放される可能性があります。
  • 起動 (Start): 停止中のインスタンスを起動します。
  • 終了 (Terminate): インスタンスを完全に削除します。関連付けられたEBSボリュームもデフォルトで削除されます。一度終了したインスタンスは復元できませんので、注意が必要です。

4.2. Elastic IP (EIP)

EC2インスタンスのパブリックIPアドレスは、インスタンスを停止・起動するたびに変わることがあります。固定のパブリックIPアドレスが必要な場合は、「Elastic IP (EIP)」を割り当てます。

  • EIPは、AWSアカウントに紐づけられた固定のパパブリックIPアドレスです。
  • EIPをEC2インスタンスにアタッチすると、インスタンスの停止・起動にかかわらず、そのIPアドレスを維持できます。
  • ただし、EIPはアタッチされていない状態(未使用)だと料金が発生しますので、注意が必要です。

4.3. スナップショットとAMIの作成

  • EBSスナップショット: 稼働中のEBSボリュームの特定時点のバックアップをS3に保存します。障害発生時の復旧や、新しいボリュームの作成に利用できます。
  • AMIの作成: 現在稼働中のEC2インスタンスの状態をAMIとして保存できます。これにより、同じ設定のインスタンスを簡単に複数起動したり、障害時に環境を迅速に復旧したりできます。

4.4. モニタリング (CloudWatch)

EC2インスタンスのCPU使用率、ネットワークIO、ディスクIOなどのメトリクスはCloudWatchで自動的に収集されます。これらのメトリクスを監視し、しきい値を超えた場合にアラートを通知することで、システムの異常を早期に検知できます。

4.5. コスト管理

EC2インスタンスは利用時間に応じて課金されます。不要なインスタンスは停止または終了することで、コストを節約できます。

  • 無料枠の確認: t2.micro または t3.micro インスタンスは月間750時間まで無料です。1台起動しっぱなしでも無料枠で収まります。
  • インスタンスタイプと購入オプション:
    • オンデマンドインスタンス: 従量課金。最も柔軟な利用方法。
    • リザーブドインスタンス (RI): 1年または3年の契約で、大幅な割引が適用されます。常に稼働させる予定のインスタンスに最適。
    • Savings Plans: RIよりも柔軟な契約で、同様の割引が適用されます。
    • スポットインスタンス: 余剰キャパシティを利用するため、大幅に安価ですが、AWS側の都合で中断される可能性があります。バッチ処理など、中断されても問題ないワークロードに適しています。

まとめ

今回はAWSのEC2サービスについて、仮想サーバーの基本から実践的な起動、そして運用管理のポイントまでを詳細に解説しました。

  • EC2は、AWS上で柔軟にスケーラブルな仮想サーバーを提供するサービスです。
  • インスタンスタイプAMIEBSキーペアセキュリティグループがEC2の主要な構成要素です。
  • 無料枠を活用してEC2インスタンスを起動し、実際にWebサーバーを構築する手順を学びました。
  • EC2の運用では、状態管理Elastic IPスナップショット/AMICloudWatchによるモニタリング、そしてコスト管理が重要です。

これであなたはAWSクラウド上に自分だけの仮想サーバーを立ち上げ、Webサービスを公開する第一歩を踏み出しました!EC2は非常に奥が深く、さらに高度な機能(ユーザーデータ、起動テンプレート、Auto Scalingなど)もたくさんあります。まずは今回の内容をしっかりマスターし、どんどん手を動かして慣れていきましょう。

次回、第4回では 「Webサイト公開の第一歩!S3とCloudFrontで作る高速静的コンテンツ配信」 と題して、サーバーレスでスケーラブルなWebサイトを構築する方法について解説します。お楽しみに!


この記事が皆さんのAWS学習の一助となれば幸いです。

もしこの記事が役に立ったと感じたら、ぜひ「いいね」👍をお願いします!励みになります!


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?