AWS2-4 AWSセキュリティとバックアップ

🛡 AWSセキュリティとバックアップ

― セキュリティグループ再確認/スナップショット/AMI作成 ―


🎯 学習目的

  • セキュリティグループの仕組みを理解し、安全な通信ルールを設定できる
  • スナップショット/AMI(Amazon Machine Image) を手動作成し、
    サーバーの状態を丸ごとバックアップ・復元できるようにする

🗺 全体像

   ┌─────────────┐
   │   EC2(稼働中) │
   │  ├ OS+WordPress
   │  ├ Apache/PHP/MySQL
   └─────────────┘
         │
         │ ① 通信制御(Security Group)
         ▼
   ┌─────────────┐
   │   Backup層   │
   │  ├ スナップショット(EBS)
   │  ├ AMI(完全イメージ)
   └─────────────┘

第1部 セキュリティグループの再確認


🔒 1. セキュリティグループとは?

概要AWS の「仮想ファイアウォール」機能。インスタンス単位で「通信の許可ルール」を定義。
単位各 EC2 インスタンスが 1つ以上の SG(Security Group)に所属
方向「インバウンド(受信)」と「アウトバウンド(送信)」を別々に制御
原則明示的に「許可」した通信だけが通る(暗黙拒否)

🧭 インバウンド・アウトバウンドの考え方

通信方向許可対象備考
インバウンドSSH(22), HTTP(80), HTTPS(443)外部→EC2外部ユーザーがアクセスするポート
アウトバウンドapt/yum更新, 外部API通信EC2→外部通常は全許可(デフォルト)でOK

🧪 実習①:セキュリティグループを確認する

手順(AWSコンソール)

  1. AWS マネジメントコンソール > EC2 > 左メニュー「セキュリティグループ」
  2. 該当インスタンスに紐づく SG(例:launch-wizard-1)をクリック
  3. インバウンドルール を確認
ルール名プロトコルポート範囲ソース意味
SSHTCP22自分のグローバルIP(例:203.x.x.x/32管理者のみ接続可
HTTPTCP800.0.0.0/0Web公開用
HTTPSTCP4430.0.0.0/0SSL通信用

🧩 ポイント

  • SSH (22) は「自分の固定IP のみ」許可が理想
  • Webサーバーとして一般公開するのは 80 / 443 のみ
  • RDSなど別サーバーがある場合、通信元を限定(例:sg-xxxxxx → SG同士の参照)

🧪 実習②:SSH制限を強化する

  1. SSHのルールを選択 → 編集 → ソース = マイIP に変更
  2. 保存後、現在接続中のターミナルは閉じないこと(再接続できるか確認してから閉じる)

⚠️ 注意

  • ルールを誤って削除すると接続不可になる可能性 → 既存セッションを閉じない
  • IP が変動する環境では、VPN か固定IPサービス利用を検討

第2部 スナップショットによるバックアップ


💡 スナップショットとは

EBS(Elastic Block Store)ボリュームの状態を丸ごと保存するバックアップ。

特徴内容
保存範囲OS・設定・データ(EBS内)
保存先S3内部に保存(ユーザーからは見えない)
増分保存前回との差分のみ(2回目以降は高速)
用途一時バックアップ、AMI作成のベース、災害復旧

🧪 実習③:スナップショットを作成する

手順(AWSコンソール)

  1. EC2ダッシュボード → 「ボリューム」 を開く
  2. 対象ボリューム(例:/dev/xvda)を選択
  3. 「アクション」 → 「スナップショットを作成」
  4. 名前例:wp-server-backup-2025-11-12
  5. 説明:WordPress LAMP 環境 Day2 実習後
  6. 「スナップショットを作成」 → 数分後に「完了」

CLIでも可能:

aws ec2 create-snapshot --volume-id vol-xxxxxxxx --description "WordPress Backup Nov 2025"

🔍 確認

  • 「スナップショット」一覧 に作成したID(例:snap-0a123456789)が表示
  • 状態が completed になればOK

💡 スナップショットから復元する場合(参考)

  1. スナップショットを選択 → 「アクション > ボリュームを作成」
  2. 新しいEBSボリュームが生成される
  3. 「アクション > インスタンスにアタッチ」 で別インスタンスへ接続可能

第3部 AMI(Amazon Machine Image)の作成


🧩 AMIとは

EC2インスタンスの OS・設定・EBS構成をまとめた“完全イメージ”
新規インスタンスのテンプレートとして使える。

比較内容
スナップショットボリューム単位(EBSバックアップ)
AMIEC2全体(EBS + 設定 + ネットワーク構成)

🧪 実習④:AMIの作成

方法①:AWSコンソール

  1. EC2 > インスタンス
  2. バックアップ対象のインスタンスを選択
  3. 「アクション」 > 「イメージとテンプレート」 > 「イメージを作成」
  4. 設定例:
項目設定例
イメージ名ami-wp-lamp-2025-11-12
説明WordPress LAMP Training after SSL setup
再起動✅ チェック(整合性確保のため推奨)
  1. 作成をクリック
    → 「AMI」一覧に登録される

方法②:CLI(参考)

aws ec2 create-image --instance-id i-0abcdef1234567890 --name "AMI-WordPress-LAMP-20251112" --description "Backup after SSL configuration"

🔍 確認

  • 数分後、AMIのステータスが available になれば完了
  • 自動で関連スナップショットも作成される

🧪 実習⑤:AMIから新インスタンスを起動(検証)

  1. EC2 > AMI → 対象AMIを選択
  2. 「アクション」>「インスタンスを起動」
  3. 手順は通常のEC2起動と同様
    • インスタンスタイプ:t2.micro
    • セキュリティグループ:既存のWebサーバーSG
    • キーペア:同一または新規
  4. 起動後、Elastic IPを付与してWordPressの動作確認

⚠️ 注意点

項目内容
サイズAMIはスナップショットを内部で利用。S3課金あり
更新サーバー更新後は再作成が必要
リージョンAMIは同一リージョン内でのみ利用可(コピーで他リージョン展開可)
パスワード等平文設定は避ける(wp-config.php内のパスワード管理に注意)

第4部 運用ベストプラクティス


🛡 セキュリティ管理の基本

項目内容
SSH接続制限固定IP / VPN のみ許可(0.0.0.0/0は禁止)
rootログイン禁止Amazon Linuxではec2-user + sudoを使用
鍵管理.pem ファイルは安全な場所へ(再配布禁止)
MFA有効化AWSアカウントに二要素認証を設定
IAM運用ルートユーザーは課金・管理のみ使用、操作はIAMユーザーで実施

💾 バックアップ運用例

項目推奨周期方法
WordPressファイル(wp-content)毎日~週次S3 へバックアップ(プラグイン/cron)
DB(MariaDB)毎日mysqldump + S3 or UpdraftPlus
EBSスナップショット週次コンソール or AWS CLI 自動化
AMI月次/構成変更時手動 or Lambdaスケジュール

🧩 定期バックアップ自動化(発展)

例:スナップショット自動作成用CLI

aws ec2 create-snapshot --volume-id vol-xxxx --description "Auto snapshot $(date '+%Y-%m-%d')" 

例:定期スケジュール(crontab)

0 3 * * 0 /usr/bin/aws ec2 create-snapshot --volume-id vol-xxxx --description "Weekly snapshot $(date '+\%Y-\%m-\%d')"

※ AWS Backup や EventBridge+Lambda でGUI自動化も可能。


✅ チェックリスト

確認項目結果
EC2 のセキュリティグループを再確認し、22/80/443 のみ許可
SSHは「自分のIP」のみに制限済み
スナップショットを作成し、状態が completed
AMIを作成し、AMI一覧で available 確認
AMIから新インスタンス起動テスト(任意)
定期バックアップ方針を決定(週次スナップショット/月次AMI)

📚 まとめ

学びのポイント内容
セキュリティグループAWSの仮想ファイアウォール。ポート開放を最小限にする
スナップショットボリューム単位のバックアップ。差分で高速保存
AMIEC2全体のイメージ化。複製・復旧に利用可能
定期運用SG見直し+スナップショット自動化で安全な運用