AWS設計スキルアップガイド
――サービスの選定から、システム構成、運用・移行の設計まで

[表紙]AWS設計スキルアップガイド ――サービスの選定から、システム構成、運用・移行の設計まで

紙版発売
電子版発売

A5判/304ページ

定価3,190円(本体2,900円+税10%)

ISBN 978-4-297-13649-9

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

本書はAWSの「設計」に関することを網羅的に扱っています。AWSでは200以上のサービスを提供していますが,設計という観点から絞り込み,本当に必要なものだけをくわしく紹介しています。さらには,設計を自分の力で進めていくために必要となる知識も記載しています。システム構成図の描き方,リスクマネジメント,クラウドリフト・クラウドシフト……。こういった知識はシステムの全体設計を行ううえで必ずやあなたの有効な手札となるはずです。

「誰か」が決めたレールの上で設計・構築・試験・運用をするのではなく,「どうあるべきか」をあなた自身で考え,決めていくためにぜひご活用ください。

こんな方におすすめ

  • 初心者から次のステップへと向かうインフラエンジニア
  • インフラの基本やAWSの個別サービスの設定はわかってきたのだけれど,インフラ設計への落とし込み方に悩む方
監修者略歴

株式会社BFT(かぶしきがいしゃびーえふてぃー)

2002年に前身となる「株式会社ビジネス・フロー・テクノロジーズ」を設立。コンサルティングやシステムインテグレーション,IT教育事業を展開。

「人とシステムをつくる会社」という経営理念を掲げ,より価値の高いシステムを提供しつづけるだけではなく,システムに関わる人材の育成にも力を注ぎ,豊かな社会の実現を目指しています。

https://www.bfts.co.jp/

著者略歴(五十音順。いずれも株式会社BFT名古屋支店に所属)

佐野夕弥(さのゆうや)

学生時代ではゲーム制作を行い,初めて務めた不動産会社では営業や広報,情報システムを兼務し,今は本書の執筆者の一人。業務や趣味で文章を書き連ねてきた経験を技術ブログ記事や本書に活かしている。IT業界に飛び込んでからはAWSをはじめとしたクラウドの業務に取り組み,理解を深める毎日。

相馬昌泰(そうままさやす)

プログラマーからインフラエンジニアに25歳で転職。オンプレで主に運用設計を担当しつつ,AWSのリフトからクラウドサービスへ携わり今に至る。好きなAWSサービスはS3です。

富岡秀明(とみおかひであき)

PC98でコンピュータの魅力に取り憑かれ,30年近くIT業界の経験を積む。部門運営とITセールスエンジニアを兼務するアラフィフエンジニア。ポジティブさを保ちながら,経験と知識を深め,IT業界の発展に寄与することを目指す。一番の喜びは若者の成長を感じること。

中野祐輔(なかのゆうすけ)

学生時代を沖縄で過ごし,海外一人旅や短期留学を経験しました。教員免許やファイナンシャルプランナーの資格を取得しましたが,IT業界を志しBFTに新卒で入社し4年目になります。クラウドや自動化に興味を持ち,業務に取り組んでいます。好きなAWSサービスはAWS Backupです。

山口杏奈(やまぐちあんな)

新卒では雑貨業界に就職。20代後半に思い立ってIT業界へ転職し,今に至る。2020年秋からは名古屋支店へ異動し,システム構築の傍ら,技術ブログの執筆やインターンイベントの企画・運営などを実施しています。好きなAWSサービスはCloudFormationです。

本書のサンプル

本書の一部ページを,PDFで確認することができます。

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

サンプル画像3

サンプル画像4

サンプル画像5

目次

第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 大量データの移行
  • 「オンライン」のデータ移行
  • 「オフライン」のデータ移行