カテゴリ: AWS 更新日: 2026/01/29

AWS EC2の障害対応と復旧の基本ステップを初心者向けにやさしく解説

AWS EC2の障害対応と復旧の基本ステップ
AWS EC2の障害対応と復旧の基本ステップ

先生と生徒の会話形式で理解しよう

生徒

「先生、EC2が急に止まったり動かなくなったりしたらどうすればいいですか?」

先生

「まずは冷静に問題を確認するのが大事です。AWS(エーダブリューエス)にはCloudWatch(クラウドウォッチ)でログや状態を見たり、スナップショットやAMI(エーエムアイ)を使った復旧方法もあります。」

生徒

「具体的にどんなステップで対応すればいいんですか?」

先生

「順番に進めれば初心者でも安心です。エラー確認や再起動、スナップショットから復旧など、基本をわかりやすく解説しますね。」

1. 障害とは?どんな時に起こる?

1. 障害とは?どんな時に起こる?
1. 障害とは?どんな時に起こる?

障害(ショウガイ)とは、EC2インスタンスが予期せず停止したり、Webサイトが表示されないときなどの問題です。

原因は、ディスク容量不足、CPU(シーピーユー)過負荷、ネットワーク障害、OSエラーなどさまざまです。

2. 障害発生時に最初にする確認

2. 障害発生時に最初にする確認
2. 障害発生時に最初にする確認
  • ① EC2ダッシュボードでインスタンスが「running」かを確認
  • ② CloudWatchのステータスチェック結果を見る
  • ③ システムログ(コンソールログ)にエラーの記録がないか確認

CloudWatch Logsでは、「CPU使用率が急上昇していないか」「ディスクの書き込みエラーがないか」なども確認できます。

3. 軽微な障害ならまず再起動

3. 軽微な障害ならまず再起動
3. 軽微な障害ならまず再起動

EC2が起動中であれば、まずは再起動(reboot)を試します。OSやサービスが不安定なときに有効です。

EC2ダッシュボードで「再起動」ボタンをクリックするだけでOKです。

4. 再起動しても直らない時の対応

4. 再起動しても直らない時の対応
4. 再起動しても直らない時の対応
  • ① システムログを再度確認する
  • ② ストレージ(EBS)にエラーがないかチェック
  • ③ EC2のステータスチェックでハードウェア障害を確認

ハードウェア障害などの場合は、別のインスタンスに切り替える必要があります。

5. 障害対応用にAMIやスナップショットを用意

5. 障害対応用にAMIやスナップショットを用意
5. 障害対応用にAMIやスナップショットを用意

あらかじめAMI(エーエムアイ、サーバー全体のイメージ)やEBSスナップショットを作っておくと、すぐに復旧可能です。

AMIとは、仮想マシンの状態をまるごと保存できるイメージです。スナップショットはディスクだけを保存するバックアップです。

6. スナップショットからの復旧手順

6. スナップショットからの復旧手順
6. スナップショットからの復旧手順
  • ① AWSコンソールでEBSの「スナップショット」を選ぶ
  • ② 対象スナップショットから新しいEBSを作成
  • ③ そのEBSを新しいEC2にアタッチ(取り付け)
  • ④ 必要に応じてOSやサービスを再起動

これで、障害前の状態を復元できます。

7. AMIを使った復旧も可能

7. AMIを使った復旧も可能
7. AMIを使った復旧も可能

AMIがある場合は、新しいインスタンスをAMIから起動するだけ。設定済みのサーバー環境が丸ごと復旧できます。

新しく起動したEC2には、Elastic IPやIAMロールなどもそのまま引き継げます。

8. 障害後のチェックと動作確認

8. 障害後のチェックと動作確認
8. 障害後のチェックと動作確認
  • ① 新しいEC2が正常に起動しているか
  • ② CloudWatchでCPUやネットワーク、ディスクの状態を監視
  • ③ サービス(WebやDB)が正常に動作しているか

さらに、CloudWatchアラームを設定し、山ほど負荷が上がったときに通知を受ける仕組みを整えておくのがオススメです。

9. 障害対応のポイントまとめ

9. 障害対応のポイントまとめ
9. 障害対応のポイントまとめ

EC2の障害が起こっても、慌てず以下の流れで進めれば安心です。

  1. 状態確認(インスタンスとCloudWatch)
  2. 再起動を試す
  3. ログやストレージをチェック
  4. スナップショット/AMIで復旧
  5. 動作確認と監視強化

これらのステップを覚えれば、EC2の障害対応に自信が持てるようになります。

まとめ

まとめ
まとめ

AWS(アマゾンウェブサービス)を利用する上で、EC2インスタンスの障害対応は避けては通れない重要なスキルです。システムを運用していると、いつかは必ずトラブルに直面します。しかし、本記事で解説したように、障害の予兆を捉える監視設定、迅速な再起動判断、そしてバックアップを活用した復旧手順を理解していれば、過度に恐れる必要はありません。

EC2障害対応の重要キーワードとベストプラクティス

効率的な復旧を実現するためには、日頃からの準備が欠かせません。クラウド環境ならではの柔軟性を活かし、以下のポイントを意識した運用を心がけましょう。

  • 自動復旧(Auto Recovery)の設定: インスタンスのステータスチェックが失敗した際に、自動で別の物理ホストへ移動させる設定が可能です。
  • 疎結合なアーキテクチャ: データをEBS(Elastic Block Store)やS3(Simple Storage Service)に分離しておくことで、インスタンス自体が壊れてもデータ損失を防げます。
  • CloudWatchアラームの活用: 障害が発生してから気づくのではなく、CPU使用率やディスク空き容量に閾値を設け、メール等で通知を受け取る仕組みを構築しましょう。

復旧に役立つコマンドとスクリプト

AWS CLI(コマンドラインインターフェース)を活用することで、ブラウザのコンソールにログインしなくても迅速に状況確認や操作が可能です。例えば、特定のインスタンスの状態を取得したり、手動でスナップショットを作成したりする際のコマンドは以下の通りです。

【Linuxコマンド例:インスタンスの状態確認】


aws ec2 describe-instance-status --instance-ids i-0123456789abcdef0
{
    "InstanceStatuses": [
        {
            "InstanceId": "i-0123456789abcdef0",
            "InstanceState": {
                "Code": 16,
                "Name": "running"
            },
            "InstanceStatus": {
                "Status": "ok"
            },
            "SystemStatus": {
                "Status": "ok"
            }
        }
    ]
}

【Python (Boto3) を使った自動スナップショット作成の例】

プログラムから定期的にバックアップを取得しておくことで、障害時の復元ポイントを確保できます。


import boto3

def create_ebs_snapshot(volume_id, description):
    ec2 = boto3.client('ec2', region_name='ap-northeast-1')
    
    try:
        # EBSボリュームのスナップショットを作成
        response = ec2.create_snapshot(
            VolumeId=volume_id,
            Description=description
        )
        print(f"Snapshot created successfully: {response['SnapshotId']}")
        return response['SnapshotId']
    except Exception as e:
        print(f"Error creating snapshot: {e}")
        return None

# 使用例:特定のボリュームIDを指定してバックアップ
volume_target = 'vol-0a1b2c3d4e5f6g7h8'
create_ebs_snapshot(volume_target, 'Manual Backup before maintenance')

クラウドネイティブな保守・運用の考え方

物理サーバーの時代とは異なり、AWSでは「壊れたら直す」よりも「壊れたら新しいものに置き換える(Replace)」という考え方が主流です。AMI(Amazon Machine Image)を常に最新の状態に保ち、不具合が起きたインスタンスは破棄して、新しいAMIからクリーンな環境を立ち上げ直す。この迅速な「切り捨てと再生成」こそが、可用性を高める鍵となります。

また、TerraformやCloudFormationといったIaC(Infrastructure as Code)ツールを併用することで、万が一の設定ミスによる障害でも、正常な状態のコードからインフラを再デプロイできるようになります。初心者のうちは難しいかもしれませんが、まずは手動での復旧ステップを完璧にマスターし、徐々に自動化の領域に踏み出してみましょう。

先生と生徒の振り返り会話

生徒

「先生、まとめを読んで障害対応の流れがより具体的になりました。再起動で直らない場合は、バックアップから新しい環境を作る『置き換え』の方が確実なんですね。」

先生

「その通りです!クラウドでは、一つのサーバーを修理し続けるよりも、バックアップから新しいサーバーを立てる方が、ダウンタイムを短くできる場合が多いんですよ。」

生徒

「Pythonのコード例も見ましたが、プログラムで定期的にスナップショットを撮っておけば、さらに安心ですね。でも、コマンドを打つのはまだ少し緊張します……。」

先生

「最初は誰でも緊張しますよ。まずはテスト用のインスタンスで、わざと停止させてからAMIで復旧させる練習をしてみると自信がつきます。実機で試すのが一番の勉強になりますからね。」

生徒

「なるほど。ステータスチェックが失敗していても、CloudWatchで過去の負荷状況が見れれば、何が起きたか推測しやすいってことも分かりました。普段からログを見る癖をつけます!」

先生

「素晴らしい心がけですね。障害は起きないに越したことはありませんが、起きた時に『どう動くか』が決まっていれば、インフラエンジニアとして一人前です。今回学んだステップを忘れないように、運用マニュアルとしてメモしておくと良いでしょう。」

生徒

「はい!トラブルに強いエンジニアになれるよう、これからもAWSの各サービスを組み合わせて、より堅牢なシステム構成を勉強していきます。ありがとうございました!」

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.3
Java&Spring記事人気No3
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
RDS(データベース)
AWS RDSのメンテナンスウィンドウの設定方法を解説!初心者でもできるクラウドデータベースの管理