目次
第1部 クラウドの基礎知識編
第1章 オンプレミスからクラウドへ
1.1 クラウドとは
- クラウドの概念
- クラウドのサービス形態
- クラウドの利用形態
- AWSを選ぶメリット
- AWS特有のメリット
- クラウド一般のメリット
1.2 インフラ構成の変遷
- オンプレミスからクラウドへ
- クラウド黎明期(2006年~2010年)
- クラウド成長期(2010年~現在)
- オンプレミスとクラウド,費用のかかり方の違い
- オンプレミスとクラウド,冗長化の違い
- オンプレミスのメリットを受けやすいシステムとは
- クラウドネイティブなシステムとは
第2章 クラウドのインフラ設計
2.1 インフラストラクチャの設計
- 非機能要求グレードの活用
- 非機能要求グレードの例
- 本書で記載する非機能要求グレードの範囲
- 「クラウドで非機能設計」の勘どころ
2.2 クラウドで考えるセキュリティ
- クラウドセキュリティの責任分界点
- 責任分界点とは
- AWSの責任共有モデル
第2部 AWSのシステム構成編
第3章 システムの構成
3.1 AWS全体の設計
- AWSアカウントを発行する前に
- ルートユーザーの使用ケース
- AWSアカウントを発行したら行うこと
- 多要素認証の使用法
- AWSアカウントの運用例
- 単一のAWSアカウントで運用する
- 複数のAWSアカウントで運用する
- ランディングゾーン
- AWS Control Tower
- AWS Organizations
- AWS IAM
- IAMポリシーの設計の進め方
- IAMグループやIAMロールの設計例
3.2 システム構成図の描き方
- 図を描く前の注意点
- 相手に伝わる図を描くためには
- 必要な情報だけ記載する
- アイコンや文字の大きさ・位置をそろえる
- 左から右,上から下に情報が流れるようにする
- 余白をしっかりとる
- システム構成図例
- 構成図例(1):アップロードした画像のサムネイル化とサーバレスなWebアプリケーション
- 構成図例(2):災害対策サイトを大阪リージョンに構築する
- 構成図例(3):システムを監視し,SNSやチャットへ通知する
3.3 クラウドにかかるコストを見積もる
- オンプレミスにかかる多大な費用
- AWSの見積り
- AWS Pricing Calculatorとは
- AWS Pricing Calculatorの使い方
- 見積りの注意点
- 見積り例
- Windowsの社内システムをクラウドに移行する
第4章 ネットワーク設計
4.1 AWSのネットワーク設計
- オンプレミスとは異なる設計の注意点
- AWSのネットワーク構成要素
- リージョンとアベイラビリティゾーン
- VPCとサブネット
- セキュリティグループとネットワークACL,AWS Network Firewall
- ルートテーブル
- VPCエンドポイント
- Route 53
- Route 53でできること
- Route 53のヘルスチェック
- VPCフローログ
4.2 外部システムとの接続方法
- AWSへVPNで接続する
- AWS Client VPNを使用してVPN接続する
- AWSサイト間VPNを使用してVPN接続する
- AWSへDirect Connectで接続する
- Direct Connectの契約
- Direct Connectの冗長化──障害発生箇所と対応法
- Direct Connectの冗長構成例(1)──非クリティカルなワークロードでの構成
- Direct Connectの冗長構成例(2)──クリティカルなワークロードで回復性のある構成
- Direct Connectの冗長構成例(3)──バックアップとしてサイト間VPNを使用する構成
第5章 コンピューティング
5.1 コンピューティングサービスの種類と選択
- AWSのコンピューティングサービス
- Lambda
- Lambdaの特徴
- Lambdaのセキュリティ
- Lambdaの監視
5.2 Amazon EC2
- インスタンスタイプの種類と選ぶ基準
- インスタンスタイプの種類
- インスタンスタイプを選ぶときの注意点
- マシンイメージの選択
- AMIの種類
- オートスケールを活用し,可用性を高める
- EC2でオートリカバリ・オートヒーリングを活用し,保守性を高める
- インスタンスの費用削減
- 費用削減対策(1):リザーブドインスタンスの利用
- 費用削減対策(2):Savings Plansの適用
- 費用削減対策(3):スポットインスタンスの利用
- T系インスタンスの注意点
- バーストパフォーマンスインスタンスとは
5.3 AWSのコンテナサービス
- コンテナとは
- 仮想化技術(ホスト型・ハイパーバイザ型)とコンテナの違い
- コンテナとEC2の違い
- コンテナで構成するサービスの特徴
- コンテナでサービスを作るときに気を付けること
- AWSでコンテナサービスを構成してみよう
5.4 Amazon ECS
- タスク定義
- サービス
- クラスター
- タスク定義の更新
- データボリュームを使用する
- 負荷に応じてスケーリングする
第6章 データベース
6.1 データベースサービスの種類と選択
- AWSのデータベースサービス
- データベースを選択する流れ
- STEP1:WHAT,WHY,HOWを明確にする
- STEP2:ワークロードの機能要件を見極める
- STEP3:最も重要なワークロードのデータ型やデータアクセスパターンを洗い出す
- STEP4:データベースの非機能要件を定義する
- 選択肢として候補に挙がりやすいRDS,Aurora,DynamoDB
6.2 Amazon RDS
- RDSの特徴
- RDSの構成
- RDS Proxy
- RDS Proxyの特徴
- RDS Proxyを利用する際の注意点
6.3 Amazon Aurora
- Auroraの特徴
- Auroraの構成
- Auroraのバージョン
- Auroraのレプリケーションとフェイルオーバー
- スケーリング
- Aurora Serverless
- Aurora Serverless v2の特徴
- Aurora Serverless v2とv1の比較
6.4 Amazon DynamoDB
- DynamoDBの特徴
- 整合性モデル
- キャパシティモードとテーブルクラス
- DynamoDB Accelerator(DAX)
- DynamoDBの設計
- テーブルのKeyやIndex
- 変更データのキャプチャ
第7章 ストレージ
7.1 ストレージの種類と選択
- AWSのストレージサービス
- Amazon EBS
7.2 Amazon S3
- S3の特徴
- S3のストレージクラスとライフサイクル
- S3のセキュリティ
- S3のデータ保護
- S3のアクセスポリシーの全体像
- バケットポリシー
- ユーザーポリシー
- パブリックアクセスのブロック
- そのほかのセキュリティ設定
- S3イベント通知
7.3 Amazon EFS
- EFSの特徴
- EFSの使い方
- EFSのアクセス制御
- EFSの可用性とライフサイクル
第8章 アプリケーション統合
8.1 アプリケーション統合サービスの種類と選択
- アプリケーション統合サービス
8.2 Amazon API Gateway
- API Gatewayの特徴
- REST APIエンドポイントの種類
- REST APIのデプロイとステージ
- REST APIのメソッド設定
- API Gatewayの注意点
- 認証・認可
- スロットリング
- ベストプラクティス
8.3 Amazon EventBridge
- EventBridgeの特徴
- イベントバスの種類
- アクセス制御
- EventBridgeのルールと入力トランスフォーマー
- Amazon SNSやSQSとの使い分け
第9章 可用性
9.1 AWSでの可用性の考え方
- 可用性とは
- システムの可用性を高める背景
- 障害に対する共通の対策
- 冗長化とは
- 疎結合化とは
9.2 AWSのSLA(サービスレベルアグリーメント)
- AWS上で起き得る障害の種類
- AWS側の要因によって起こるもの
- 利用者側の要因によって起こるもの
- いずれの要因でもないもの
- AWSがSLA(SLO)を満たせなかった場合
- リスクマネジメント
- リスクマネジメントのプロセス
第10章 セキュリティ
10.1 Well-Architectedフレームワークの利用
- Well-Architectedの6つの柱
- セキュリティの7つの設計原則
- クラウドセキュリティ6つの領域のベストプラクティス
10.2 セキュリティガイドラインの活用
- クラウドの選定に役立つガイドライン「ISMAP」
- 要件定義や設計で役立つガイドライン
- 情報システムに係る政府調達におけるセキュリティ要件策定マニュアル
- CIS Controls
- 非機能要求グレード
- クラウドサービス提供における情報セキュリティ対策ガイドライン
- セキュリティ対応に役立つガイドライン
- サイバーセキュリティフレームワーク
- STRIDEモデル
10.3 AWSサービスでセキュリティ対策を行う
- リスク検出を支援するAWSのサービス
- Amazon Inspector
- AWS Config
- サイバー攻撃からの防御を支援するAWSのサービス
- Amazon GuardDuty
- AWS Shield
- AWS WAF
- 未知の脅威への対応自動化
第3部 AWSの運用設計編
第11章 ジョブ管理
11.1 ジョブ実行に関連するサービスの種類と選択
- AWSのジョブ実行に関連するサービス
- AWS Lambdaでジョブ管理を実装する
11.2 AWS Batch
- Batchの特徴
- Batchのコンポーネント
- 配列ジョブとジョブの依存関係
- EC2 SpotやFargate Spotを活用しコストを最適化する
11.3 AWS Step Functions
- Step Functionsの特徴
- ワークフローのタイプ
- Step Functionsの状態
- Step Functionsの入出力
- ステートマシンを作成する
- Step FunctionsでWebサイトの正常性確認を行う
- S3へのファイル格納をトリガにLambdaを複数実行する
- 実行の確認・デバッグ
第12章 バックアップ
12.1 クラウドでのバックアップの概要
- バックアップ対象の整理
- AWSのバックアップ
12.2 AWS Backup
- AWS Backupの機能
- AWS Backupの概要
- AWS Backupのサポート対象
- AWS Backupの注意点
第13章 監視
13.1 監視の種類
- リソース監視
- Amazon CloudWatchで収集されたメトリクスを見る
- CloudWatchエージェントを導入してカスタムメトリクスを取得する
- ログ監視
- AWS費用の監視
- 通知と復旧
- Amazon SNSを利用してアラートを通知する
13.2 ログの管理
- EC2インスタンスのログ収集
- ログ収集に必要なポリシー
- CloudWatchエージェントのインストール
- CloudWatchエージェントの設定と起動
- CloudWatchエージェント関連でのハマりポイント
- マネージドサービスのログ収集
- Lambda
- API Gateway
- RDS
- VPC
- CloudTrail
- ログの保管
- ログ保管期間の目安
13.3 既存の監視システムとCloudWatchの連携
- Zabbixによる統合監視
- SaaSの監視サービスによる統合監視
第14章 構築・運用の自動化
14.1 自動化のメリットとデメリット
- 自動化導入のメリット
- 自動化導入のデメリット
14.2 AWSで構築の自動化を推進するサービス
- CloudFormationとは
- CloudFormationのライフサイクル
- CloudFormationのテンプレートを準備する
- CloudFormationでスタックを作成する
- 既存のスタックを変更する
- スタックを削除する
- CloudFormationテンプレートの便利な書き方
- Parameters
- Outputs
- 組込み関数
14.3 AWSで考えるCI/CD
- CI/CDとは
- CodePipelineでできること
- コンテナアプリケーションのCI/CD構成例
- Codeシリーズを活用したECSへのCI/CD実装
- Lambda関数URL機能を利用したLambda関数のCI/CD実装
第4部 AWSへの移行設計編
第15章 オンプレミスからの移行
15.1 クラウドリフト・クラウドシフトという考え方
- なぜクラウドに移行するのか
- クラウドリフト&シフト
- クラウドリフトの流れ
- (1)クラウド化の目的の定義・現状の課題整理
- (2)非機能要求の定義
- (3)リフト対象サーバの整理
- (4)移行検討
- (5)移行ツールの検証
- (6)クラウド上でアプリケーションの動作検証
- (7)通信要件の整理
- (8)クラウドのネットワーク設計
- (9)システム構成図の作成
- (10)運用関連の変更箇所洗い出し
- (11)リフト環境の構築・試験
- (12)移行リハーサル
- (13)本番移行・移行後の対応
- クラウドシフトで必要となるタスク
- シフト対象サービスの選別
- マイクロサービスに合ったアプリケーションの改修
- サーバレスなインフラ基盤の検討
15.2 仮想マシンの移行
- オンプレミスのサーバをAWSに移行する
- AWS MGNのしくみ
- AWS MGNの注意点
- AWS MGN以外のAWS移行サービス
15.3 データベースの移行
- データベース移行のステップ
- RDSへのデータ移行方法
- オンプレミスのOracleからRDSのPostgreSQLへデータベースを移行する
- オンプレミスのOracleからRDSのOracleへデータベースを移行する
15.4 大量データの移行
- 「オンライン」のデータ移行
- 「オフライン」のデータ移行