メモです
みんなのAWS 〜AWSの基本を最新アーキテクチャでまるごと理解!:書籍案内|技術評論社
第1章 AWSの基礎知識
-
クラウドとは
- ITインフラの歴史
- メインフレームからクラウドの時代へ
- AWS のはじまり
- クラウドの定義
- クラウドの特徴
- オンデマンド・セルフサービス
- 幅広いネットワークアクセス
- リソースの共用
- スピーディな拡張
- サービスが計測可能であること
- クラウドのサービスモデル
- IaaS
- PaaS
- SaaS
- クラウドの特徴
- クラウドの物理的な世界へ
- 責任共有モデル
- ITインフラの歴史
-
AWS のベストプラクティス
- AWS Well-Architected フレームワーク
- 一般的な設計の原則
- 運用上の優秀性
- コスト最適化
- 信頼性
- パフォーマンス効率
- コンピューティング
- ストレージ
- ネットワーク
- セキュリティ
- 認証情報の管理
- データ保護
- 監視とログ管理
- セキュリティのベストプラクティス
- AWS Well-Architected フレームワーク
-
最低限押さえておくべきアカウント開設時のセキュリティ
- AWSセキュリティの概要
- AWS はセキュリティ的に安全なのか
- AWS クラウドセキュリティ
- データの保護
- コンプライアンスの要件に準拠
- コスト削減
- 迅速なスケーリング
- 責任共有モデル
- 日本国内の導入事例
- AWS クラウドセキュリティ
- AWS セキュリティの考え方
- AWS はセキュリティ的に安全なのか
- アカウント開設時のセキュリティ
- root ユーザーを利用せず、IAM ユーザーを利用する
- AWS CloudTrail を有効化する
- AWS Config を有効化する
- Amazon GuardDuty を有効化する
- その他アカウント開設時の参考情報
- IAM の概要と使い方
- ユーザー/グループ/ポリシー/ロール
- 権限設定の考え方
- AWS Well-Architected の「セキュリティの柱」
- 設計原則
- 強力なアイデンティティ基盤の実装
- トレーサビリティの実現
- 全レイヤーへのセキュリティの適用
- セキュリティのベストプラクティスの自動化
- 伝送中および保管中のデータの保護
- データに人の手を入れない
- セキュリティイベントへの備え
- ベストプラクティス
- アイデンティティ管理とアクセス管理
- 発見的統制
- インフラストラクチャ保護
- データ保護
- インシデント対応
- 設計原則
- その他の参考情報
- AWSセキュリティの概要
-
AWS における監視(モニタリング)
- 監視の基本用語にみる時代の変化
- メトリック、ログ、イベント
- モニタリング・4つの立ち位置
- ブラックボックス監視
- ホワイトボックス監視
- ヘルスチェック監視
- シンセティック監視、リアルユーザー監視
- 可観測性と「トレース」
- AI・機械学習による「AIOps」
- AWS上のシステムを「監視(モニタリング)」する
- Amazon CloudWatch
- AWS X-Ray
- その他の監視(モニタリング)機能
- AWS以外の選択肢
- 監視の基本用語にみる時代の変化
-
AWS を学習するコツ
- AWS 認定
- AWS Webinar
- よくある質問
- AWSの最新情報
第2章 AWS で作るWebサービス
- 本章で解説するアプリケーションの全体構成と利用する AWS サービス
- Amazon ECS
- PHP
- CodePipeline
- AWS のネットワーク基礎
- Amazon VPC
- Amazon VPN の構成要素
- サブネット
- ゲートウェイサービス
- ENI とIPアドレス
- ルートテーブル
- セキュリティグループとNACL
- Amzon Provided DNS
- VPC の設計
- CIDRの決定
- サブネットの分割
- ルートテーブルの設定
- パブリックドメインとSS:/TLS証明書
- Amazon Route53を用いたドメインの取得とレコードの管理
- AWS Certificate Manager とSSL/TLS 証明書
- Amazon VPN の構成要素
- Amazon VPC
- アプリケーション構築・運用手段としてのコンテナ関連サービス
- コンテナとは何かを理解する
- コンテナを使う意味を考える
- 複数の環境で使うか?
- 頻繁に変更するか?
- 増えたり減ったりするか?
- AWS におけるコンテナ関連サービスについて理解する
- Amazon Elastic Container Registory
- コントロールプレーンとデータプレーン
- Amazon Elastic Container Service
- Amazon Elastic Kubernetes Service
- AWS Fargate
- 要件に合ったコンテナ環境の選択が非常に重要
- CI/CD を実現する Code シリーズ
- AWS フルマネージド Git リポジトリ「CodeCommit」
- CodeCommitの利用方法(HTTPS)
- CodeCommitの利用方法(SSH)
- アプリケーションのテストやビルドを実行する「CodeBuild」
- CodeBuildによるテストスクリプトの実行
- Codeシリーズを束ねる「CodePipeline」
- CodePipelineの作成
- CodeCommitへのプッシュによるPipeline自動起動の確認
- CodePipelineのその他の機能
- アプリケーションのデプロイを実現する「CodeDeploy」
- インプレイスデプロイ
- Blue/Greenデプロイ
- AWS フルマネージド Git リポジトリ「CodeCommit」
- モニタリング:障害監視、リソース監視
- AWSコンポーネントでのデータ収集
- ログの収集
- メトリクスの収集
- CloudWatch Logsメトリクスフィルターを用いらログ内の特定イベント数の集計
- アプリケーションレイヤでのカスタムメトリクスの収集
- Container Insightsによるコンテナの詳細情報の収集
- ダッシュボードによる可視化
- 各サービスの標準ダッシュボード
- カスタムダッシュボード
- 作成可能なウィジェット
- メトリクスと統計値の取得
- CloudWatch Metric Math
- 各サービスの標準ダッシュボードからのウィジェットのインポート
- アラーム
- 設定の流れ
- メトリクスの選択
- 条件の設定
- アクションの設定
- 説明の追加、設定の完了
- 異常検知用学習モデルのカスタマイズ
- AWSコンポーネントでのデータ収集
- アプリケーションセキュリティ
- WAF と AWS WAF
- AWS WAF の設定
- Web ACLの作成
- ロギングの設定
- Amazon Athenaによるログの確認
- 分析データ準備
- コンテナセキュリティの概要
- イメージリスク
- レジストリリスク
- オーケストレーターリスク
- コンテナリスク
- ホストOSリスク
- Amazon ECR のイメージスキャン
- Aquaによるコンテナ環境の保護
- コードによるインフラの運用管理
- AWS CloudFormationとは
- CloudFormationのシステム概要
- CloudFormationのテンプレートの基礎を理解する
- CloudFormationを AWS マネジメントコンソールから実行する
- CloudFormationを CLI から実行する
- チェンジセットの活用
- CloudFormationで複数リソースを作成する
- 方法1 クロススタック参照
- 方法2 ダイナミック参照(動的な参照)
- 方法3 シェルスクリプトを利用する方法
- AWS CloudFormationとは
- CloudFormation を利用したコンテナアプリケーション構築
- ハンズオンの目的
- ハンズオンで作成するAWS サービスの構成図
- 管理者用管理画面
- アプリケーション画面
- ハンズオンに必要な環境の用意
- Bashの動作環境
- ハンズオンで利用するソースコードの取得方法、および内容の解説
- ハンズオンの実行方法
- エラーが起こったときの対処方法
- なぜCloudFormationだけで全環境を構築する構成にしなかったか
- 手順1:VPCの作成
- 手順2:SecuriryGroupの作成
- 手順3:CodeCommitの作成
- 手順4:ECRの作成
- 手順5:RDSの作成
- コンソールからパラメータストアへのデータベース接続パスワード登録
- CloudFormationからのRDS作成
- 手順6:ECSクラスターの作成
- 手順7:管理者用コンソール画面の作成
- 管理画面(phpMyAdmin)ページの作成
- アプリケーションから利用するテーブルの作成
- phpMyAdminで利用しているコンテナの解説
- 手順8:アプリケーション画面の作成
- 1.PHPコンテナのビルドとECRへのプッシュ
- 2.アプリケーションの公開(ALB、ECSタスク、ECSサービスの作成)
- CloudWatch Logsの確認
- Container Insightsによるコンテナ環境のメトリクスの確認
- 手順9:CI/CDパイプラインの作成
- 1.CodeCommitリポジトリへのソースコード格納
- ハンズオン環境に対するブラッシュアップの方向性
- ハンズオン環境の削除方法
- スタック削除時の注意点
第3章 サーバーレスプラットフォームで作るモバイル向けアプリケーション
- サーバーレスアーキテクチャとは
- なぜサーバーレスを選択するか
- サーバーレスサービス登場以前
- 提供したい価値と、それを実現するための効率的な手段
- サーバーレスアーキテクチャの定義
- マネージドサービスのみで構築されている
- イベントドリブンなアーキテクチャ
- 実使用リソース量・時間に対する従量課金(最大値に対する課金ではない)
- スケーリングが自動で行われる
- なぜサーバーレスを選択するか
- サーバーレスを実現する AWS サービス
- AWS Lambda
- Lambda の特徴
- Lambda の基本操作
- Lambda のトリガーとなるイベントソース
- Lambda のユースケース
- Web サービスのバックエンド
- データの整形・変数処理
- 定期的な処理
- Lambda 開発におけるポイント
- Lambda からRDSへの接続
- Lambda コールドスタート対策
- Lambda Layers
- Amazon API Gateway
- API Gateway の基本操作
- HTTP のメソッドを定義
- API Gatewayのテスト
- API のデプロイ
- API Gateway 利用時のポイント
- メソッド設定
- メソッドリクエスト
- 統合リクエスト
- 統合レスポンス
- メソッドレスポンス
- API に対する認証機能の追加
- IAM アクセス権限を利用する
- Lambda オーソライザーを利用する
- Cognito オーソライザーを利用する
- WAF によるセキュリティ対策
- メソッド設定
- API Gateway の基本操作
- Amazon DynamoDB
- DynamoDBの特徴
- DynamoDBの基本操作
- DynamoDB利用によるおけるポイント
- キャパシティユニット
- 結果整合性のある読み込みと強力な整合性のある読み込み
- Amazon S3
- S3の基本操作
- S3のユースケース
- データのバックアップ
- ログの保存
- コンテンツの配信
- S3を利用するときのポイント
- バージョニング
- ライフサイクル、ストレージタイプ
- Amazon CloudFront
- CloudFrontの特徴
- CloudFrontの基本操作
- CloudFront利用におけるポイント
- ディストリビューションとビヘイビアー
- カスタムエラーページ
- カスタムヘッダー
- AWS Lambda
- 構築するアプリケーションの全体構成
- クラウド開発キット(AWS CDK)の準備
- AWS CDK とは
- AWSCDK で利用する IAM ユーザーの作成
- credential ファイルの作成
- ランタイムのインストール
- AWS CDK のテンプレート生成
- Bootstrap処理
- バックエンドアプリケーション(API)の構築
- 必要なライブラリのインストール
- バックエンドの作成
- 全体構成
- API Gateway Endpoint の作成
- DynamoDB テーブルの作成
- Lambda Function の作成
- 処理の実装
- AWS CDK Appの定義
- ビルド&デプロイの定義
- デプロイの実行
- 確認
- フロントエンドアプリケーションの作成
- Vue.jsとは
- Vue.js登場前との比較
- PWAとは
- Vue.jsアプリケーションの作成
- main.js
- App.vue
- Tab.vue
- Home.vue
- Persons.vue
- index.js
- Vue.jsとは
- フロントエンドアプリケーションの配信
- 必要なライブラリのインストール
- フロントエンドの作成
- 全体構成
- S3バケットの作成
- CloudFront Distributionの作成
- AWS CDK Appの定義
- ビルド&デプロイの定義
- デプロイの実行
- 動作確認
- サーバーレスアプリケーションのモニタリング
- モニタリングの考え方
- 監視ポイント
- パフォーマンス(性能)モニタリング
- 異常検知
- キャパシティプランニング
- AWS X-Ray
第4章 AWS で作るデータの取集・可視化基盤
- AWS で作るデータ収集基盤
- 本節で構築するデータ収集基盤
- 想定するシナリオ
- 高速道路にあるETCゲート
- 構築するデータ収集基盤の概要
- 仮想IoTデバイス
- 構築するデータ収集基盤の詳細
- アーキテクチャと処理の流れ
- データの変換処理
- 使用しているAWSサービス
- IoT Core
- Kinesis Data Firehose
- Lambda
- DynamoDB
- S3
- プログラミング環境
- Python 3
- 想定するシナリオ
- AWS SAM(Serverless Application Model)
- データ収集基盤の構築
- 仕様を決める
- ETCゲートとIoT Core の仕様
- データ収集結果の内容
- DynamoDB の設計と格納するデータ
- Python 仮想環境の構築
- 必要なライブラリをインストール
- AWS SAMプロジェクトの作成
- デプロイ先S3バケットの作成
- デプロイ先のS3バケットのCloudFormationテンプレートを作成
- デプロイ先のS3バケットをデプロイ
- AWS SAM テンプレートの作成
- ライブラリを未使用にする
- Lambda 関数のコードを作成
- ビルド
- デプロイ
- データ収集結果を格納するS3バケットの情報
- 仕様を決める
- 動作確認(簡易)
- DynamoDBに格納するデータのJSONファイルを作成する
- ブラウザの IoT Core でテストする
- 仮想IoTデバイスの作成
- キーペアの作成
- IPアドレスの確認
- EC2インスタンスの作成
- EC2インスタンス内でAWS CLI を使うユーザーの作成
- EC2インスタンスに接続する
- Python 3 の環境を構築する
- AWSCLI の設定を行う
- IoT デバイスを IoT Core に接続するための準備
- IoT Core にモノを作成する
- IoT Core にポリシーを作成する
- 証明書の作成
- モノと証明書の紐付け
- 証明書とポリシーの紐付け
- サーバー認証用のルートCA証明書の取得
- IoT Core のエンドポイントを取得
- ETC ゲート用プログラムの作成
- AWSIoTPythonSDKのインストール
- データ送信用プログラムの作成
- 動作確認(仮想IoTデバイス)
- データの送信を終了する
- S3 バケットの様子
- より実用的に利用する場合
- 本節で構築するデータ収集基盤
- データ分析の基本知識と AWS サービス
- データ分析の基本知識
- データレイク
- データウェアハウス
- ETL
- Extract(抽出)
- Transform(変換)
- Load(ロード)
- 可視化
- データ分析で使用するAWSサービス
- Amazon S3
- AWS Glue
- クローラ
- データカタログ
- ジョブ
- トリガー
- ジョブフロー
- Amazon Athena
- Amazon Redshift
- Amaozn Quicksight
- データ分析の基本知識
- データレイクを構築する
- S3のデータをカタログ化する
- AWS Glue クローラの設定と実行
- データカタログ内のテーブル定義確認
- Athenaでログ検索
- S3のデータをカタログ化する
- データウェアハウスを構成し、グラフ表示する
- データウェアハウス構成
- Redshiftクラスター構築
- Redshiftテーブル作成
- AWS Glue からRedshiftへのコネクションの作成
- Redshiftテーブルのカタログ登録
- Glue ジョブの作成と実行
- Redshiftテーブル確認
- Amazon QuickSightからデータを参照する
- QuickSightアカウント作成
- Redshift-QuickSight間通信用VPCの作成
- データセットの作成
- グラフ作成
- データウェアハウス構成
- 機械学習を導入する
- AWS における機械学習利用のアプローチ
- AI サービスを利用する
- Amazon Forecast
- Amazon Personalize
- Amazon Comprehend
- Amazon SageMakerを使用する
- AI サービスを利用する
- 機械学習を導入する前にすべきこと
- AWS における機械学習利用のアプローチ
- 構築したシステム(AWSリソース)を削除する
- データ分析基盤の削除
- QuickSight環境の削除
- 分析の削除
- データセットの削除
- VPC 接続設定の削除
- QuickSightアカウントの削除
- Glueリソースの削除
- ジョブの削除
- クローラの削除
- カタログの削除
- Redshiftクラスターの削除
- VPCエンドポイントの削除
- QuickSight環境の削除
- 仮想IoTデバイスの削除
- モノと証明書とポリシーの紐付けを解除
- モノと証明書とポリシーの削除
- EC2インスタンス およびユーザーの削除
- データ収集基盤の削除
- S3バケット名の取得
- データ収集基盤の本体を削除
- S3バケットを削除
- データ分析基盤の削除