総合演習:クラウド移行計画を作成しよう
ストーリー
「いよいよ最終演習だ。今月学んだ全ての知識を使って、 中村製作所さんのクラウド移行計画を作成してもらう」
山田先輩が要件書を広げる。
「これが中村製作所さんの現在のシステム構成だ。 これを AWS に移行する計画書を作成してほしい。 アーキテクチャ設計、セキュリティ設計、コスト試算、移行手順まで含めた 本格的な提案書だ」
「全部まとめるんですか......なかなかの大仕事ですね」
「だが、これができれば一人前のクラウドエンジニアだ。 今月学んだことを総動員してくれ。期待しているぞ」
演習の概要
中村製作所の現状のオンプレミスシステムを AWS に移行する計画書を作成してください。
中村製作所の現状
現在のオンプレミス構成:
┌──── 社内データセンター ──────────────────┐
│ │
│ [Webサーバー] Apache + PHP │
│ 物理サーバー1台 CentOS 7 │
│ CPU: 4コア メモリ: 16GB │
│ │
│ [APサーバー] Java (Spring Boot) │
│ 物理サーバー1台 CentOS 7 │
│ CPU: 8コア メモリ: 32GB │
│ │
│ [DBサーバー] MySQL 5.7 │
│ 物理サーバー1台 CentOS 7 │
│ CPU: 8コア メモリ: 64GB │
│ ストレージ: 500GB HDD │
│ │
│ [ファイルサーバー] Windows Server 2016 │
│ 設計図面データ: 500GB │
│ 月次増加量: 約20GB │
│ │
│ [バックアップ] 外付けHDDに手動バックアップ│
│ 週次実施 │
│ │
└──────────────────────────────────────────┘
課題:
- サーバーの老朽化(導入から5年経過)
- 繁忙期(3月、9月)にWebサーバーのレスポンスが遅い
- バックアップが手動で信頼性が低い
- BCP対策が不十分(単一データセンター)
- ハードウェア保守費用が年間約300万円
要件
| 項目 | 要件 |
|---|---|
| 可用性 | 99.9% 以上(年間ダウンタイム 8.76時間以内) |
| データ保護 | 日次バックアップ、7日間保持、暗号化必須 |
| セキュリティ | IAM 最小権限、MFA 必須、通信暗号化 |
| スケーラビリティ | 繁忙期に自動でスケール |
| コスト | 現在の年間保守費用(300万円)以下 |
| 移行期間 | 3ヶ月以内 |
課題1: アーキテクチャ設計
AWS 上のターゲットアーキテクチャを設計してください。以下を含むこと。
- VPC 設計(CIDR、サブネット、AZ)
- コンピュートリソース(EC2 のインスタンスタイプと台数)
- データベース(RDS の構成)
- ストレージ(S3 の設計)
- ロードバランサー
- ネットワーク構成図(ASCII アート)
ターゲットアーキテクチャ
インターネット
│
┌────┴────┐
│ Route53 │ (DNS)
└────┬────┘
│
┌────┴────┐
│ ALB │ (ロードバランサー)
└────┬────┘
│
┌───────────────────────┴───────────────────────┐
│ VPC: 10.0.0.0/16 │
│ │
│ ┌─── AZ-a ──────────┐ ┌─── AZ-c ──────────┐ │
│ │ Public 10.0.1.0/24 │ │ Public 10.0.2.0/24 │ │
│ │ [NAT-GW-a] │ │ [NAT-GW-c] │ │
│ ├────────────────────┤ ├────────────────────┤ │
│ │ App 10.0.11.0/24 │ │ App 10.0.12.0/24 │ │
│ │ [EC2 Web/App] │ │ [EC2 Web/App] │ │
│ │ t3.xlarge │ │ t3.xlarge │ │
│ ├────────────────────┤ ├────────────────────┤ │
│ │ DB 10.0.21.0/24 │ │ DB 10.0.22.0/24 │ │
│ │ [RDS Primary] │ │ [RDS Standby] │ │
│ │ db.r5.xlarge │ │ │ │
│ └────────────────────┘ └────────────────────┘ │
│ │
│ [S3 Endpoint] ──→ S3 (設計図面 + バックアップ) │
└──────────────────────────────────────────────────┘
リソース詳細
| リソース | 仕様 | 理由 |
|---|---|---|
| EC2 x2 | t3.xlarge (4vCPU, 16GB) | 現行 Web+AP サーバーの統合。ALB で負荷分散 |
| RDS | db.r5.xlarge (4vCPU, 32GB), MySQL 8.0, マルチAZ | 現行 DB の移行。メモリ最適化インスタンス |
| ALB | Application Load Balancer | HTTP/HTTPS のルーティング |
| S3 | 2バケット(図面用 + バックアップ用) | ファイルサーバーの移行 |
| NAT GW | 各 AZ に1つ | プライベートサブネットのアウトバウンド通信 |
課題2: セキュリティ設計
IAM、セキュリティグループ、暗号化の設計を行ってください。
- IAM グループとポリシーの設計(3チーム以上)
- セキュリティグループの設計(ALB、EC2、RDS 用)
- 暗号化方針(保存時と通信時)
IAM 設計
| グループ | ポリシー | MFA |
|---|---|---|
| admins | AdministratorAccess(MFA 必須条件付き) | 必須 |
| developers | EC2/S3/RDS 操作(開発環境のみ) | 必須 |
| operators | EC2/RDS 監視・停止/起動、CloudWatch 閲覧 | 必須 |
| readonly | ReadOnlyAccess | 推奨 |
セキュリティグループ設計
| SG | インバウンド |
|---|---|
| sg-alb | TCP 80/443 from 0.0.0.0/0 |
| sg-ec2 | TCP 80 from sg-alb, TCP 22 from sg-mgmt |
| sg-rds | TCP 3306 from sg-ec2 |
| sg-mgmt | TCP 22 from 社内IP (203.0.113.0/24) |
暗号化方針
| 対象 | 方式 |
|---|---|
| EBS | AES-256 (AWS 管理キー) |
| RDS | AES-256 (AWS 管理キー) |
| S3 | SSE-S3 (AES-256) |
| 通信 | ALB で TLS 終端 (ACM 証明書) |
| DB 接続 | SSL/TLS 必須 |
課題3: コスト試算
年間コストを試算し、現在の保守費用(300万円/年)と比較してください。
月額の見積もりを以下のカテゴリごとに計算してください。
- EC2
- RDS
- S3
- ALB
- NAT ゲートウェイ
- データ転送
- その他
月額コスト試算(東京リージョン、オンデマンド)
| リソース | 仕様 | 月額(USD) | 月額(円概算) |
|---|---|---|---|
| EC2 x2 | t3.xlarge x 2 | $244 | 約 36,600円 |
| RDS | db.r5.xlarge, マルチAZ | $590 | 約 88,500円 |
| S3 | 500GB Standard + 転送 | $15 | 約 2,250円 |
| ALB | 1台 + LCU | $25 | 約 3,750円 |
| NAT GW x2 | 2台 + データ転送 | $100 | 約 15,000円 |
| EBS | 60GB gp3 x 2 | $10 | 約 1,500円 |
| その他 | Route53, CloudWatch 等 | $20 | 約 3,000円 |
| 合計 | $1,004 | 約 150,600円 |
年間コスト比較
| 項目 | 金額 |
|---|---|
| 現在のオンプレ保守費用 | 約300万円/年 |
| AWS オンデマンド | 約180万円/年 |
| AWS RI (1年, 全前払い) | 約120万円/年 |
| 削減額(RI適用時) | 約180万円/年(60%削減) |
注意: 移行作業のコスト(人件費)は別途考慮が必要です。
</details>課題4: 移行手順
3ヶ月の移行スケジュールを作成してください。
<details> <summary>解答例(自分で実装してから確認しよう)</summary>移行スケジュール
月1(準備期間):
├─ Week 1-2: AWS 環境構築
│ ├─ VPC, サブネット, SG 作成
│ ├─ IAM ユーザー/グループ/ロール作成
│ └─ 監視設定(CloudWatch)
│
├─ Week 3: EC2, RDS 構築
│ ├─ EC2 インスタンス起動, ミドルウェア設定
│ ├─ RDS インスタンス作成
│ └─ ALB 設定
│
└─ Week 4: S3 設定 + テスト環境構築
├─ S3 バケット作成, ライフサイクル設定
└─ アプリケーションの AWS 環境デプロイ
月2(移行・テスト期間):
├─ Week 1: データ移行
│ ├─ ファイルサーバー → S3 データ転送
│ └─ MySQL 5.7 → RDS MySQL 8.0 データ移行
│
├─ Week 2-3: テスト
│ ├─ 機能テスト(全画面・全機能)
│ ├─ 性能テスト(負荷テスト)
│ └─ セキュリティテスト
│
└─ Week 4: 並行稼働開始
├─ DNS の切り替え準備
└─ 移行リハーサル
月3(切り替え・安定化期間):
├─ Week 1: 本番切り替え
│ ├─ 最終データ同期
│ ├─ DNS 切り替え(Route 53)
│ └─ 切り替え後の動作確認
│
├─ Week 2: 安定化
│ ├─ 監視強化(CloudWatch アラーム)
│ ├─ パフォーマンスチューニング
│ └─ 問題対応
│
└─ Week 3-4: 完了
├─ 旧サーバーの並行稼働停止
├─ ドキュメント整備
└─ 運用チームへの引き継ぎ
リスクと対策
| リスク | 対策 |
|---|---|
| データ移行の失敗 | 事前にテスト環境で移行リハーサルを実施 |
| 切り替え時のダウンタイム | DNS TTL を短くして切り替え時間を最小化 |
| 性能劣化 | 負荷テストで事前に確認。オートスケーリングを設定 |
| 移行期間の延長 | 余裕を持ったスケジュール。クリティカルパスを管理 |
達成度チェック
| 課題 | 内容 | 完了 |
|---|---|---|
| 課題1 | アーキテクチャ設計 | [ ] |
| 課題2 | セキュリティ設計 | [ ] |
| 課題3 | コスト試算 | [ ] |
| 課題4 | 移行手順 | [ ] |
まとめ
| ポイント | 内容 |
|---|---|
| アーキテクチャ | マルチAZ 構成で高可用性を確保 |
| セキュリティ | IAM 最小権限、SG 多層防御、暗号化 |