007-015 mokuji 4th - ec.nikkeibp.co.jpec.nikkeibp.co.jp/item/contents/mokuji/m_255510.pdf · 1-2-5...
TRANSCRIPT
7
第 1章 AWS 導入の合意形成術1-1 AWS のメリット ………………………………………………………………………… 18
1-1-1 コスト最適化 …………………………………………………………………………… 18
1-1-2 オフバランス …………………………………………………………………………… 19
1-1-3 システム更改の回避 …………………………………………………………………… 19
1-1-4 開発生産性の向上 ……………………………………………………………………… 20
1-1-5 保守負担の軽減 ………………………………………………………………………… 20
1-1-6 調達スピードの向上 …………………………………………………………………… 21
1-1-7 不確実性への対応 ……………………………………………………………………… 21
1-1-8 グローバル対応 ………………………………………………………………………… 22
1-1-9 災害対策 ………………………………………………………………………………… 22
1-1-10 人材確保 ………………………………………………………………………………… 23
1-1-11 ワークスタイル変革の実現 …………………………………………………………… 23
1-1-12 新しいビジネスの実現 ………………………………………………………………… 24
1-2 クラウド反対派の意見 ………………………………………………………………… 25
1-2-1 「コストは下がらない」と言われたら ………………………………………………… 25
1-2-2 「予算があるから変動費では払えない」と言われたら ……………………………… 27
1-2-3 「セキュリティに問題がある」と言われたら ………………………………………… 27
1-2-4 「米国企業にデータを預けるのは問題である」と言われたら ……………………… 29
1-2-5 「パフォーマンスはオンプレミスの方がよい」と言われたら ……………………… 30
1-2-6 「高い可用性が求められるので、クラウドは使えない」と言われたら …………… 30
1-2-7 「サービス提供者がサービスをやめるリスクがあるので使えない」 と言われたら …………………………………………………………………………… 33
1-3 誰に伝えるか? …………………………………………………………………………… 34
1-4 クラウドを使わない理由はない …………………………………………………… 36
第 2 章 AWS が提供するクラウドサービス2-1 AWS の構成 ……………………………………………………………………………… 40
2-1-1 世界に存在するデータセンターとしての AWS ……………………………………… 40
2-1-2 仮想プライベートネットワークを提供する Amazon VPC ……………………… 44
2-1-3 仮想サーバー機能を提供する Amazon EC2………………………………………… 46
2-1-4 さまざまなマネージドサービス ……………………………………………………… 48
Contents
8
Contents
2-1-5 アクセス権を統括管理する IAM ……………………………………………………… 51
2-2 カスタマーアグリーメントと責任共有モデル ………………………………… 54
2-2-1 AWS サービスの規約となるカスタマーアグリーメント ………………………… 54
2-2-2 責任共有モデル ………………………………………………………………………… 55
2-3 AWS の基本的な操作 ………………………………………………………………… 56
2-3-1 AWS アカウントを取得する …………………………………………………………… 56
2-3-2 AWS マネジメントコンソールを使った操作 ………………………………………… 56
2-3-3 料金情報を参照する …………………………………………………………………… 58
2-4 AWS を使い始める前に設定しておきたいこと ……………………………… 59
2-4-1 ルートアカウントを安全に使うため MFA を設定する …………………………… 59
2-4-2 管理者アカウントを作成する ………………………………………………………… 67
2-4-3 IAM ユーザーと IAM グループを作成する …………………………………………… 68
2-4-4 操作記録をロギングする CloudTrail を有効にする ………………………………… 78
2-4-5 支払額のアラートを出す Billing Alerts を設定する ……………………………… 81
第 3 章 シナリオ「業務システムの AWS 移行を小さく始める」3-1 シナリオ解説 ……………………………………………………………………………… 86
3-1-1 オンプレからクラウドに方針変更 …………………………………………………… 86
3-1-2 運用負担の軽減が最大の狙い ………………………………………………………… 87
3-2 アーキテクチャー設計 ………………………………………………………………… 89
3-2-1 まずはネットワーク環境の整備 ……………………………………………………… 89
3-2-2 使いたい OS を選択 …………………………………………………………………… 90
3-2-3 運用を楽にするマネージドサービス ………………………………………………… 90
3-2-4 デメリットは機能制約と利用料金 …………………………………………………… 91
3-3 構築の流れ ………………………………………………………………………………… 94
3-3-1 オンプレミス環境の一部を AWS 環境に移行する ………………………………… 94
3-3-2 VPC を作成する ………………………………………………………………………… 94
3-3-3 サブネットを作成してインスタンスを配置する …………………………………… 96
3-3-4 セキュリティグループで通信を制限する …………………………………………… 97
3-3-5 社内 LAN とオンプレミス環境とを VPN で接続する ……………………………… 98
3-4 ネットワーク部の作成ガイド……………………………………………………… 100
3-4-1 VPC を作成する ……………………………………………………………………… 100
9
Contents
3-4-2 サブネットを作成する ……………………………………………………………… 103
3-5 EC2 インスタンスの作成ガイド ………………………………………………… 105
3-5-1 EC2 インスタンスタイプの選定 …………………………………………………… 105
3-5-2 EC2 インスタンスを作成する ……………………………………………………… 106
3-6 RDS インスタンスの作成ガイド ………………………………………………… 118
3-6-1 データベースの種類とインスタンスクラス ……………………………………… 118
3-6-2 DB サブネットグループの作成 ……………………………………………………… 118
3-6-3 RDS インスタンスを作成する ……………………………………………………… 123
3-7 セキュリティグループを設定する ……………………………………………… 131
3-7-1 セキュリティグループの考え方 …………………………………………………… 131
3-7-2 このシナリオにおけるセキュリティグループ …………………………………… 131
3-7-3 EC2 インスタンスのセキュリティグループを設定する ………………………… 132
3-7-4 RDS インスタンスのセキュリティグループを設定する ………………………… 134
3-8 社内 LAN やオンプレミス環境と接続する …………………………………… 137
3-8-1 ハードウエア VPN 接続 ……………………………………………………………… 137
3-8-2 VPN ルーターの設定 ………………………………………………………………… 138
3-8-3 VPN 接続を作る ……………………………………………………………………… 139
3-8-4 疎通確認する ………………………………………………………………………… 147
3-9 システムの移行とログの記録……………………………………………………… 149
3-9-1 システムの移行 ……………………………………………………………………… 149
3-9-2 通信記録のログをとる ……………………………………………………………… 149
3-9-3 通信記録のログの確認と保存期間の設定 ………………………………………… 156
第 4 章 シナリオ「 ミッションクリティカルな業務システムを AWS に移行する」
4-1 シナリオ解説 …………………………………………………………………………… 160
4-1-1 「単一障害点」を無くせ ……………………………………………………………… 160
4-2 アーキテクチャー設計 ……………………………………………………………… 162
4-2-1 ミッションクリティカルなら専用線 ……………………………………………… 162
4-2-2 データセンターにまたがる冗長化 ………………………………………………… 163
4-2-3 一方が故障しても継続処理する構成 ……………………………………………… 164
4-2-4 必要に応じてサーバーを自動追加 ………………………………………………… 165
10
Contents
4-3 構築の流れ ……………………………………………………………………………… 168
4-4 アプリケーションサーバーの冗長化ガイド ………………………………… 171
4-4-1 冗長構成用のサブネットを作る ……………………………………………………… 173
4-4-2 EC2 インスタンスを配置する ……………………………………………………… 174
4-4-3 ELB(CLB)を構成する …………………………………………………………… 174
4-4-4 CLB が EC2 インスタンスに接続できるようにする …………………………… 182
4-5 EC2 インスタンスへのアプリケーション構成ガイド …………………… 185
4-5-1 テスト用の Apache をインストールする ………………………………………… 185
4-5-2 CLB 経由のアクセスを試す ………………………………………………………… 186
4-6 データベースを負荷分散する……………………………………………………… 189
4-6-1 マルチ AZ 構成のデータベースを作成する ……………………………………… 189
4-7 Direct Connect を使って専用線で接続する ……………………………… 191
4-7-1 Direct Connect とは ……………………………………………………………… 191
4-7-2 APN パートナーと契約する ………………………………………………………… 192
第 5 章 シナリオ「迅速かつ低予算でキャンペーンサイトを作成する」5-1 シナリオ解説 …………………………………………………………………………… 194
5-1-1 大量アクセスサイト、ページの入れ替えが必要 ………………………………… 194
5-2 アーキテクチャー設計 ……………………………………………………………… 196
5-2-1 コンテンツ・デリバリー・ネットワークがおすすめ …………………………… 196
5-2-2 Amazon S3 ………………………………………………………………………… 198
5-2-3 Amazon CloudFront ……………………………………………………………… 199
5-2-4 設計ポイント ………………………………………………………………………… 200
5-3 構築の流れ ……………………………………………………………………………… 202
5-4 S3 バケットを作る …………………………………………………………………… 204
5-4-1 S3 バケットの基礎知識 ……………………………………………………………… 204
5-4-2 S3 バケットを作成する ……………………………………………………………… 205
5-4-3 ファイルをアップロードする ……………………………………………………… 207
5-5 Web サーバー機能を有効にする ………………………………………………… 210
5-5-1 静的ウェブサイトホスティングを有効にする …………………………………… 210
5-5-2 バケットポリシーを設定する ……………………………………………………… 212
5-6 CloudFront を構成する …………………………………………………………… 216
11
Contents
5-6-1 CloudFront の基礎知識 ……………………………………………………………… 216
5-6-2 CloudFront を構成する ……………………………………………………………… 217
5-6-3 CloudFront 経由でアクセスする …………………………………………………… 224
5-6-4 S3 バケットのバケットポリシーを調整する ……………………………………… 225
5-6-5 キャッシュの有効時間を調整する ………………………………………………… 227
5-6-6 キャッシュを無効にする …………………………………………………………… 229
5-7 独自ドメインで運用する …………………………………………………………… 231
5-7-1 Certificate Manager で証明書を作る …………………………………………… 231
5-7-2 CloudFront を独自ドメインでアクセスできるようにする ……………………… 236
第 6 章 シナリオ「キャンペーンサイトに会員登録機能をつける」6-1 シナリオ解説 ……………………………………………………………………………… 240
6-1-1 会員登録機能をつける ……………………………………………………………… 240
6-2 アーキテクチャー設計 ……………………………………………………………… 241
6-2-1 EC2 を使わない方法 ………………………………………………………………… 241
6-2-2 カラム指向型 NoSQL データベース ……………………………………………… 242
6-2-3 API Gateway + Lambda + DynamoDB ……………………………………… 243
6-2-4 サーバーレスアーキテクチャーの長所短所 ……………………………………… 245
6-3 構築の流れ ……………………………………………………………………………… 246
6-4 DynamoDB にテーブルを作成する …………………………………………… 247
6-4-1 DynamoDB の基礎知識 …………………………………………………………… 247
6-4-2 テーブルを作成する ………………………………………………………………… 247
6-5 API Gateway と Lambda を構成する ……………………………………… 252
6-5-1 API Gateway の基本………………………………………………………………… 252
6-5-2 Lambda 関数と API Gateway を作成する ……………………………………… 252
6-6 Lambda の動作テストをする …………………………………………………… 266
6-6-1 テスト方法を設定する ……………………………………………………………… 266
6-6-2 テストする …………………………………………………………………………… 269
6-6-3 DynamoDB の内容を確認する …………………………………………………… 270
6-7 API Gateway の動作テストと権限の調整…………………………………… 271
6-7-1 リソースを確認する ………………………………………………………………… 271
6-7-2 ANY メソッドの挙動を確認する …………………………………………………… 272
12
Contents
6-7-3 テストする …………………………………………………………………………… 274
6-7-4 Lambda の呼び出し権限を付与する ……………………………………………… 276
6-8 HTML フォームを書く ……………………………………………………………… 281
6-9 Ajax から呼び出す …………………………………………………………………… 283
6-9-1 ユーザーへの出力をカスタマイズする …………………………………………… 283
6-9-2 CORS を回避する …………………………………………………………………… 286
第 7 章 シナリオ「 Web サイトが停止してもユーザーがいなくならないようにしたい」
7-1 シナリオ解説 ……………………………………………………………………………… 292
7-1-1 メンテナンスページを表示 ………………………………………………………… 292
7-2 アーキテクチャー設計 ……………………………………………………………… 294
7-2-1 Route53 ……………………………………………………………………………… 295
7-2-2 設計ポイント ………………………………………………………………………… 295
7-3 構築の流れ ……………………………………………………………………………… 298
7-4 VPC とサブネットを構成する …………………………………………………… 302
7-4-1 VPC を作成する ……………………………………………………………………… 302
7-4-2 インターネットゲートウェイを作成する ………………………………………… 303
7-4-3 サブネットを作成する ……………………………………………………………… 306
7-4-4 インターネットゲートウェイを通じて インターネットに通信できるようにする ………………………………………… 308
7-4-5 調整用の EC2 インスタンスを配置する …………………………………………… 313
7-4-6 調整用 EC2 インスタンスに CMS ソフトなどをインストールする …………… 318
7-4-7 AMI を作る …………………………………………………………………………… 321
7-4-8 負荷分散用の EC2 インスタンスを作成する ……………………………………… 322
7-5 ELB を構成して負荷分散する …………………………………………………… 327
7-5-1 SSL 証明書の作成 …………………………………………………………………… 327
7-5-2 ELB を作成する ……………………………………………………………………… 327
7-5-3 ELB の動作を確認する ……………………………………………………………… 334
7-6 メンテナンス用の CloudWatch Logs と S3 バケットを作成する … 337
7-7 Route 53 の DNS フェイルオーバーを構成する ………………………… 338
7-7-1 ELB と CloudFront で DNS フェイルオーバー ………………………………… 338
13
Contents
7-7-2 ゾーンにフェイルオーバーのレコードを設定する ……………………………… 339
7-8 動作のテスト …………………………………………………………………………… 343
第 8 章 シナリオ「アプリケーションの頻繁な変更に対応する」8-1 シナリオ解説 ……………………………………………………………………………… 348
8-1-1 稼働させた状態でサイトの内容を変更 …………………………………………… 348
8-1-2 人手の弊害 …………………………………………………………………………… 349
8-2 アーキテクチャー設計 ……………………………………………………………… 350
8-2-1 1 台ずつのデプロイ ………………………………………………………………… 350
8-2-2 Blue/Green デプロイ ……………………………………………………………… 350
8-2-3 自動化 ………………………………………………………………………………… 352
8-2-4 設計ポイント ………………………………………………………………………… 353
8-3 構築の流れ ……………………………………………………………………………… 355
8-3-1 CloudFormation を使った自動構築 ……………………………………………… 356
8-3-2 CodeDeploy を使ったデプロイ …………………………………………………… 357
8-3-3 CodeCommit を使ってプライベートな Git リポジトリを作る ……………… 357
8-3-4 CodePipeline を使ってデプロイからテストまでを実施する ………………… 358
8-3-5 構築するネットワークと ELB、EC2 の構成 ……………………………………… 358
8-3-6 デプロイ周りの構成 ………………………………………………………………… 360
8-3-7 この章の手順の流れ ………………………………………………………………… 361
8-3-8 米国東部(バージニア北部)リージョンへの切り替え ………………………… 364
8-4 CloudFormation でネットワークを構成する ……………………………… 365
8-4-1 構築するネットワーク構成 ………………………………………………………… 365
8-4-2 テンプレートとスタックの関係を理解する ……………………………………… 365
8-4-3 ネットワークを構成するためのテンプレートを作る …………………………… 367
8-5 スタックを作成して動作テストする …………………………………………… 379
8-5-1 テンプレートからスタックを作成する …………………………………………… 379
8-5-2 作成された VPC やインスタンスを確認する ……………………………………… 384
8-5-3 スタックを削除する ………………………………………………………………… 386
8-6 リポジトリを作ってユーザーがアクセスできるようにする …………… 388
8-6-1 EC2 インスタンスに CodePipeline で管理したソースコードを デプロイするための構成 …………………………………………………………… 388
14
Contents
8-6-2 CodeCommit のリポジトリを作る………………………………………………… 390
8-6-3 IAM ユーザーに対して CodeCommit へのアクセス権を設定する …………… 393
8-6-4 SSH の鍵を登録する ………………………………………………………………… 396
8-6-5 リポジトリにアクセスしてソースコードを配置する …………………………… 399
8-6-6 ソースコードをコミットする ……………………………………………………… 400
8-7 CodeDeploy でデプロイ可能な EC2 インスタンスを作る …………… 402
8-7-1 EC2 インスタンスのための IAM ロールを作る ………………………………… 402
8-7-2 EC2 インスタンスを作る …………………………………………………………… 405
8-7-3 EC2 インスタンスを Web サーバー化する ……………………………………… 409
8-7-4 CodeDeploy Agent をインストールして起動する……………………………… 410
8-8 CodeDeploy でデプロイを構成する ………………………………………… 413
8-8-1 全体の流れ …………………………………………………………………………… 413
8-8-2 AppSpec ファイルの例 …………………………………………………………… 417
8-8-3 CodeDeploy 用の IAM ロールを作る……………………………………………… 420
8-8-4 アプリケーションのデプロイを構成する ………………………………………… 423
8-8-5 CodePipeline を構成する ………………………………………………………… 429
8-8-6 パイプラインを実行してデプロイする …………………………………………… 436
8-9 CloudFormation で ELB や EC2 インスタンスを作成する ………… 440
8-9-1 全体の流れ …………………………………………………………………………… 440
8-9-2 AMI を作る …………………………………………………………………………… 441
8-9-3 CloudFormation で ELB や EC2 も作るように修正する ……………………… 443
8-9-4 セキュリティグループを作る ……………………………………………………… 448
8-9-5 EC2 インスタンスを作る …………………………………………………………… 449
8-9-6 ALB を作成する ……………………………………………………………………… 451
8-9-7 スタックを作って実行する ………………………………………………………… 453
8-9-8 パイプラインをもう一度実行してデプロイする ………………………………… 455
付録 第 9 章 シナリオ「業務端末も AWS へ移行する」9-1 シナリオ解説 ……………………………………………………………………………… 460
9-1-1 業務端末の運用における問題 ……………………………………………………… 460
9-2 アーキテクチャー設計 ……………………………………………………………… 462
9-2-1 標準 OS イメージの準備 …………………………………………………………… 463
15
Contents
●本書の内容は、執筆時点の情報の基づいており、お読みになるときには変わっている可能性があります。
●本書の内容には十分な注意を払いましたが、本書のご利用や記載している内容を適用した結果生じたことについて、著者、
出版社とも一切の責任を負いませんのでご了承下さい。
●本書に記載の会社名・製品名は、各社の登録商標または商標です。
9-2-2 BYOD を許可 ………………………………………………………………………… 464
9-2-3 既存 AD サーバー利用 ……………………………………………………………… 464
9-2-4 WorkSpaces の注意点 ……………………………………………………………… 465
9-3 新システムの動き……………………………………………………………………… 466
付録 第 10 章 シナリオ「AWS における DR 対応」10-1 シナリオ解説 ………………………………………………………………………… 470
10-1-1 オンプレミスで断念したディザスターリカバリーを検討 …………………… 470
10-2 アーキテクチャー設計 …………………………………………………………… 472
10-2-1 ランニングコスト最小限で実現する DR ………………………………………… 472
10-2-2 DR サイトのアプリケーションサーバー ………………………………………… 473
10-2-3 RDBMS は、DR 先へレプリケーション ……………………………………… 473
10-2-4 DR 先へはハードウェア VPN で切り替え ……………………………………… 474
10-2-5 DR 対応システムの動き …………………………………………………………… 475