- Transit gateway
- CloudFormation
- EC2
- Systems Manager
- DHCP
- AWS Service Catalog
- 第三者へのアクセス許可
- DMS
- Aurora
- STS
- Route53
- ベストプラクティス
- ECS
- Secrets Manager
- Port
- License Manager
- Bastion ホスト
- AWS Import/Export
- サブネットの CIDR ブロックが同じ場合はオーバーラップエラーが発生
- 国単位のアクセス制限
- S3
- AmazonMQ
- Kinesis
- オンプレの LDAP 認証
- EC2 で実行している Windows Server のアップグレード方式
- SSL セキュリティ責任分担
- AWS Organizations
- AWS とオンプレのハイブリッド構成
- Canary リリース
- CloudFront
- Amazon Elastic Transcoder
- Amazon EMR
- IPSec VPN 接続特徴
- Organizations
- Amazon Rekognition
- トラフィック制御
- タグ戦略
- Server Migration Service(SMS)
- Redshift
- ActiveDirectory
- Cloud Trail
- ELB
- Gateway 種別
- Storage Gateway
- Elastic Beanstalk デプロイオプション
- VPC CIDR ブロック
- IAM による証明書設定
- Cloud Watch
- CloudHSM
- 拡張ネットワーキング
- プライベートホストゾーン
- EC2 個別コンポーネントに別々の SSL 証明書
- 個別のデバイスごとに個別の SSL
- ロールの資格情報
- Elasticache
- Amazon DLM(Data Lifecycle Manager)
- SCP と IAM ポリシーの違い
- ポリシー
- AWS Organizations ボリュームディスカウント
- Code シリーズ
- WAF
- モバイル認証管理
- ブルーグリーンデプロイメント戦略
- Dynamo
- Data Pipeline
- 永続的な Mac アドレス
- Step Functions
- SWF
- クライアント証明書認証
- Shield Standard
- Application Discovery Service (ADS)
- Migration HUB
- TCP/IP プロトコルスタックの事前定義範囲
- Amazon Macie
- ELB バックエンド EC2 の IP 確認
- VPC フローログ
- IAM ロールに付与するポリシーの種類
- パブリック証明書
- PrivateLink
- SNS
- SES/SNS 違い
- HVMAMI
- SR-IOV(シングルルート IO 仮想化)
- IAM ロールと AWSCLI にアタッチされたロールの共存
- 同じ IP によるフェイルオーバー
- Raid
- Serverless
- AWS ブロックチェーンサービス
- Mechanical Turk
- パブリック仮想インターフェイス
- AWS Direct Connect Gateway
- LAG
- VPC 予約 IP アドレス
- AWS X-Ray SDK
- ElasticSearch
- VPC エンドポイント
- Work Spaces
- EKS
- コスト配分タグ
- Snow Family
- RDS
- Aurora MySQL
- Lambda
- エラーコード対応
- API Gateway
- コストと使用状況レポート
- OpsWorks
- SQS
- EFS
- オンプレ RDS
- MFA を利用する際は Get SessionToken API を利用します。
- 注意事項
- ソリューション
- 【余談】合格記
Transit gateway
- VPC のハブのようなもの
- Peering しなくてよくなる
- 集約してここからオンプレに接続する
- ログ取得
AWS Transit Gateway network manager
- ネットワークトポロジーの変更
- ルーティングの更新
- 接続ステータスの更新に関する組み込みのイベント通知
CloudFormation
組み込み関数
- テンプレートの特定の部分でのみ使用可能
- 現在: Resource プロパティ、Output、Metadata、および Update
DeletionPolocy スタック削除時の挙動
- Snapshot
- スナップショットを削除時に作成: EC2, RDS
- Retain
- 削除せず保持: あらゆるリソースタイプ
- Delete
- すべて削除: あらゆるリソースタイプ
ResourceSignal パラメーター
- 成功シグナルを受信
resource Tags プロパティ
- リソースにタグを適用(対応サービスのみ)
待機属性
- WaitCondition
- CreationPolicy
- 成功シグナルを受信するかタイムアウトするまでスタックを停止
- EC2, AutoScaling では CreationPolicy が推奨
クロスリージョン展開
- Mappings と FindInMap でリージョン固有の AMI ID を構成
- スタックセットの作成、更新権限 IAM ロール作成
スタック管理
- 開発グループで分けるのが効率的
- スタックごとにロールでアクセス制限可能
CFn / OpsWorks
違い
- CFn
- AWS リソースのモデリング、プロビジョニング、バージョン管理
- ほぼあらゆる AWS リソースのプロビジョニングと管理を、JSON ベースのドメイン固有言語で行える
- OpsWorks
- ソフトウェア設定、アプリケーションのデプロイ、スケーリング、モニタリングを簡素化
- サポート範囲は、Amazon EC2 インスタンス、Amazon EBS ボリューム、Elastic IP、Amazon CloudWatch メトリクスなど、アプリケーション志向の AWS リソースに限られる
連携
- OpsWorks スタックにネストした CFn テンプレートを使用可
EC2
ハードウェア専有
- Dedicated Host
- Dedicated Insetance
- どのハードウェアで起動するかまでは固定できない
AMI コピー時の挙動
- 公開鍵: 同時にコピーされる
- 秘密鍵(PEM キー): 同時にコピーされない、AWLCLI でインストール
EC2 へのトラフィックが均等に分散されていない
単一の EC2 のセキュリティ強化
- 複数の ENI(Elastic Network Interface)を接続
Instance Profile
- EC2 にロールを紐づける際に作られるもの
- ロールを入れる箱(コンテナ)
- 同時に割り当てられるロールは 1 つのみ
EC2 ハイバネーション
- 既存のインスタンスには不可(再起動が必要)
- 前回起動時の内容を修復
- C, M, R 系が対応(T 系は非対応)
休止機能
休止の機能は、現在、Amazon Linux、Amazon Linux 2、Ubuntu、および Windows を実行する、C3、C4、C5、I3、M3、M4、M5、M5a、M5ad、R3、R4、R5、R5a、R5ad、T2、T3、および T3a の各インスタンスで利用が可能です。Windows の場合、休止機能がサポートされるのは、使用する RAM が最大で 16 GB のインスタンスまでです。
インスタンス性能
-
i3
- 高いランダム IO パフォーマンス
- 低レイテンシー
-
c4
- コンピューティング集約型ワークロード
- コスト効率
-
t 系
- 高負荷処理時のみバーストできる
- アイドル状態時にクレジットを蓄積
インスタンスストアボリュームのバックアップ
- EBS と異なり CLI やコンソールからは不可
- ec2-bundle-vol や ec2-upload-bundle などのツールを使用
- スナップショットではなく AMI を作成する
プレイスメントグループ
- インスタンス間の通信高速化
- グループ内のインスタンスタイプは同じである必要がある
スポットフリート
- 予め最高価格と復数のインスタンスタイプと Availability Zone を設定しておくことでその中で一番安いスポットインスタンスを n 個用意するということを自動で出来るようになる
Auto Scaling 内のインスタンスの終了
- Auto Scaling グループに属していると停止できない(次のコマンドを実行)
- terminate-instance-in-auto-scaling-group
- 必須パラメータ(グループサイズを調整するかの指定)
- --should-decrement-desired-capacity
- --no-should-decrement-desired-capacity
- 必須パラメータ(グループサイズを調整するかの指定)
ステートフル/ステートレス
- ステートフル
- セッションがアクティブな限り DB に接続
- 負荷が増大
- ステートレス
- 分散
- スケールイン、アウトが容易
セキュリティグループ
- ステートフル
- インスタンスからのリクエストに関する応答トラフィックは受信セキュリティグループのルールに関わらず送信可能
ネットワークACL
- ステートレス
- 送信・受信共に明示的な許可が必要
EC2 から SQS エンドポイントへのアクセス
Amazon SQS エンドポイント(sqs.us-east-1.amazonaws.com)に接続するには、Amazon EC2 インスタンスがインターネットにアクセスできる必要があります。 したがって、パブリックサブネットにあるか、パブリックサブネットに NAT インスタンス/Gateway があるプライベートサブネットにある必要があります。
IPv6 対応
- 現行世代は全対応
- m3.large 以前は非対応
- CIDR ブロックを VPC およびサブネットに関連づける
Systems Manager
Systems Manager Automation
- 問題の診断とシューティングを自動化
AWSSupport-ExecuteEC2Rescue runbooks
- Automation で自動化
Systems Manager Run Command
- マネージドインスタンスの設定を管理
Systems Manager パラメータストア
- SecureString: 機密性の高いパラメータストア
- 作成、更新時に CFn でパラメータストアの値を使用
- update-stack API で ec2 更新
Patch Manager
- マネージドインスタンス・オンプレサーバー・仮想マシンにパッチ適用を自動化
- メンテナンスウィンドウでスケジュール設定
- SSM Agent(Systems Manager エージェント)を全てのインスタンスにインストール
- バッチベースラインを各環境に作成
- EC2 をバッチグループで分類してベースライン適用
- EC2 タグを使用してグループのインスタンスにパッチインストール
ステートマネージャー
- プロセスの自動化
- スクリプトの定期実行
DHCP
- オプションは設定変更不可。再作成する。
- 以下二つのオプションが存在
- domain-name-servers=AmazonProvidedDNS
- domain-name=domain-name-for-your-region
AWS Service Catalog
- デプロイされたリソースにタグを自動付与
第三者へのアクセス許可
- ポリシー作成
- ポリシーに基づいた IAM ロールを作成、クロスアカウントアクセスを許可
- ロールを Web アプリに設定
DMS
- データベース間の移行
- オンプレ to オンプレは非対応
- テーブルマッピング(JSON 形式)
- DMS タスクにソースエンドポイントやターゲットエンドポイントを指定
- コンソールで移行タスク定義
- JSON 形式で移行タスク定義
- 移行タイプ
移行タイプ | 特徴 |
---|---|
Migrate existing data (FullLoad) | 現時点でソース DB にある全てのデータを移行 |
migrate existing data and replicate ongoing changes | ソース DB の変更をキャプチャしターゲットに適用。アプリは稼働したまま移行可 |
Replicate ongoing changes only(Change Capture Data = CDC) |
- Schema Conversion Tool を使用してソーススキーマとコードをターゲットと一致するよう変換
- 移行中にデータ型自動変換
- 移行用のレプリケーションインスタンスの用意が必要
- EC2 インスタンスではなく DMS コンソールで作成
コスト最適の場合は Direct Connect より IPSec VPN 接続を利用する
- EC2 インスタンスではなく DMS コンソールで作成
Aurora
- MariaDB からの移行には適さない
- DB クラスターにパブリック IP 割り当ては不可(VPC 内からのみアクセス可能)
AutoScaling
- ワークロードに応じてレプリカ数を自動調整
- スケーリングポリシーで最大・最小レプリカ数を定義
- MySQL, PostgeSQL両方で利用可能
移行パターン
移行元 | ソリューション |
---|---|
RDS for MySQL DB インスタンス | リードレプリカをスタンドアロン DB に昇格させる |
RDS for MySQL DB スナップショット | スナップショットから直接移行 |
RDS 外部の MySQL データベース | mysqldump をインポート |
^ | S3 に配置したバックアップファイルをインポート |
^ | S3 に配置したテキストファイルをインポート |
MySQL と互換性がないデータベース | Database Migration Service (AWS DMS) |
STS
- 無効化するには IAM コンソールでロールを取り消す
Route53
シャッフルシャーディング / anycast ルーティング
- DDoS をうけていてもアクセス可能にする
ベストプラクティス
アプリログの持ち方
- アプリログは SSE で暗号化して S3 に保存
NAT インスタンスの冗長化
- 異なるパブリックサブネットに 2 つのインスタンスを配置
- マルチ AZ 構成に設定
- 障害発生時に自動で再起動するようなスクリプトを任意言語で記述・設定
- スクリプト設定は NAT Gateway では不可
スケーラブルで弾力性を満たした 3 層 Web アプリケーション構成
- RDS はリードレプリカを利用する
- データベースを EC2 インスタンスにインストールするのは非効率なので RDS を使う
- EBS のスナップショットは自動で定期的に S3 に保存される
- セッション管理には DynamoDB を使う
開発者アクセス制限
- タグによるグループ分け
- SCP は細かい制限には向かない
ECS
タスク配置戦略
- binpack
- CPU またはメモリの最小利用可能量に基づいてタスクを配置
- 使用するインスタンス数を最小限に抑える
- CPU またはメモリの最小利用可能量に基づいてタスクを配置
- random
- タスクをランダムに配置
- spread
- 指定された値に基づいてタスクを均等に配置
- AZ 均一の場合属性に以下を指定
attribute:ecs.availability-zone
ECS クラスターのオートスケーリング
-
Capacity Provider を設定
-
1 つの Capacity Provider は 1 つの EC2 Auto Scaling グループに関連付け
-
関連づけた Provider を ECS クラスターに追加すると以下によってオートスケーリング
- Capacity Provider Reservation という新しいメトリックに対応するスケーリングポリシーが自動的に生成され、Auto Scaling グループにアタッチ
-
既存の Auto Scaling グループを ECS に設定するのではなく、Amazon ECS Cluster Auto Scaling と呼ばれる専用機能を利用した構成を行う。
Secrets Manager
- ローテーションを提供
Port
システム | ポート |
---|---|
多くの Linux カーネル (Amazon Linux カーネルを含む) | 32768〜61000 |
Windows Server 2003 を介する Windows オペレーティングシステム | 1025〜5000 |
Windows Server 2008 以降のバージョン | 49152〜65535 |
NAT Gateway | 1024〜65535 |
AWS Lambda 関数 | 1024-65535 |
Elastic Load Balancing が送信元のリクエスト | 1024〜65535 |
License Manager
- License をエミュレート
- オンプレ DB のライセンスは RDS では流用できない
- License Manager コンソールで状況追跡
Bastion ホスト
- パブリックサブネットに配置される
- プライベートサブネットのインスタンスに SSH アクセスを許可
AWS Import/Export
- ストレージデータの移行
サブネットの CIDR ブロックが同じ場合はオーバーラップエラーが発生
- VPC とサブネットで重複の場合は問題なく作成可能
国単位のアクセス制限
- CloudFront
- 全ファイル一括制限(ファイル単位制御が不可)
- 国レベルでのアクセス制御
- サードパーティの位置情報サービスを利用
- 関連するファイルサブセットへのアクセスを制御
- 国より詳細レベルでのアクセス制御
- Route53
- クライアントの IP から国を特定、近い地域からルーティング(制限はできない)
S3
RRS
- 非推奨ストレージ
Glacier
- 標準取り出し時間= 3~5H
Glacier Deep Archive
- 取り出しは 12 時間以内
- 3 つの AZ で可用性担保
S3 Intelligent Tiering
- 30 日連続アクセス無しは低頻度に移動
- アクセスされると高頻度に再移動
オブジェクト暗号化
- AES-256 暗号化
- 以下を API コールヘッダに含める(aws:kms の値含める)
x-amz-server-side-encryption-customer-algorithm
x-amz-server-side-encryption-customer-key
x-amz-server-side-encryption-customer-key-MD5
バージョン管理
- 有効化すると既存ファイルのバージョン ID は Null になる
特定 Web サイトからの S3 オブジェクトにアクセス拒否
- aws:Referer キーをバケットポリシーで使用
S3 クロスリージョンレプリケーション
- 異なるリージョンのバケット間で自動的に非同期コピー
S3DistCp
- 大量のデータコピーに使う Apache DistCp の拡張。
- S3 - Amazon EMR の HDFS 間で大量のデータコピー
- S3 バケット間でデータコピーも可能
Transfer Acceleration
- CloudFront 経由で大陸間高速データ通信
- テラバイト単位のデータを頻繁に転送などがユースケース
S3 MFA Delete
- S3 でオブジェクトを削除(※)する際に MFA 認証を必須とする機能。
- ※ ここでいう削除は特定バージョンの削除。表面的なファイル削除は可能。
- 該当 S3 バケットのバージョニングが有効になっていることが前提条件
- マネジメントコンソール上で MFA 認証は行えないため、同設定を行った場合、CLI からのみしか操作ができない
- 利用可能な MFA 認証は root アカウントの MFA デバイスのみとなる
- MFA Delete が有効になっている際はバージョニングの無効化不可
静的サイトホスティング
- KMS暗号化が有効になっているとアクセスできない。代わりにAES-256暗号化を使う。
- バケット所有アカウントがオブジェクトのOwnerでもある必要がある。
外部IPの監視方法
- S3サーバーアクセスログを有効化
- 有効化に数時間かかる可能性がある
- CloudTrailデータイベント
- 過去90日間のPut/Delete Bucketイベントをキャプチャ
- オブジェクトレベルLoggingを有効化するとPut/Delete ObjectしたIPを捕捉可能
s3バケットに設定したCloud Front Distribution が HTTP 307 temporary redirect responseになる場合
- バケット作成後全リージョンに反映されるまで24時間かかる可能性がある
- 回避するためにはバケットと同一リージョンにdistributionを設定する
- CloudFrontはデフォルトではus-east-1のバケットに向く
AmazonMQ
- オンプレで ApacheActiveMQ を使っててそのまま移行したい場合に選択。
- そうでない場合、コスト効率敵には SQS/SNS を選択。
- 単純なメッセージ通知では SNS、並列処理には SQS メッセージによるポーリング処理
Route53
- トラフィック処理最適化やフェイルオーバー設定で可用性向上につながる
- 処理性能向上にはつながらない
シンプルルーティング
- 標準の DNS レコードのみ
- 加重ルーティングやレイテンシールーティングなどの特別なオプションを必要としない
- トラフィックを 1 つのリソースにルーティングする場合に使用
- 同じ名前やタイプの複数のレコードを使用することはできない
- ただし、1 つのレコードに複数の値 (複数の IP アドレスなど) を含めることができる
複数値回答ルーティング
- 複数のリソースに DNS レスポインスを分散する場合に使用
- 複数のルーティングレコードを Route 53 ヘルスチェックに関連付ける場合に使用
- DNS クエリに複数の値を返したり、複数の IP アドレスにトラフィックをルーティングしたりする場合に使用
- 可用性とロードバランシング改善
- Alias レコードに No と設定、複数値回答ルーティングを選択。
フェールオーバー
- アクティブ/アクティブ
- 複数のリソースを返す
- 全てのリソースを殆どの時間に利用可能にする場合に選択
- アクティブ/パッシブ
- プライマリリソースを返す
- プライマリリソース(リソースグループ)を殆どの時間に利用可能にする場合に選択
- プライマリが使えなくなるとセカンダリを返す
- Evaluate Target Health
- フェールオーバースタンバイ構成の有効化
Kinesis
- Kinesis Data Streams の収集データ解析は Lambda で実装するより Data Analytics や KCL を使う
Kinesis Data Streams
- 何十万ソースから毎秒ギガバイトデータを継続キャプチャ
Kinesis Data Firehose
- データを変換して S3 などに蓄積
Kinesis Data Analytics
- データ分析
Kinesis Client Library
- アプリ構築(EC2 とかに)
Agent
- データ収集方法を提供する Java ソフトウェアアプリケーション
- ファイルを監視、Streams に送信
- Linux ベースサーバーにインストール
Worker(処理ユニット)
- 分析
Kinesis Video Streams
- 3 つのストリーミング処理方法
- GetMediaAPI
- 独自のアプリ構築が必要
- HLS
- 通信プロトコル
- 標準のブラウザプレイヤーで再生可
- MPEG-DASH
- 通信プロトコル
- 従来型
- GetMediaAPI
パフォーマンス
- リシャーディング
- シャードを分割
- パフォーマンス向上
- シャードをマージ
- パフォーマンス低下
- 分割およびマージは常に 2 セットペア
- シャード単位での請求のため分割するとコスト増加
- シャードを分割
オンプレの LDAP 認証
- カスタム ID ブローカーを開発
- STS で AssumeRole または GetFederationToken アクションを呼び出し
- 一時利用資格取得して S3 アクセス
- LDAP で AD 認証
EC2 で実行している Windows Server のアップグレード方式
- インプレース
- OS ファイルをアップグレード。個人の設定、ファイルは維持される
- 並行
- 古いインスタンスを終了して新しインスタンスのセットを展開
SSL セキュリティ責任分担
- 開発者がアクセスできない ELB に証明書を保持して SSL 接続を終了する
- X.509 証明書 = 公開鍵証明書標準フォーマット
AWS とオンプレのハイブリッド構成
- Amazon VPC VPN 接続でデータセンターを VPC にリンク
- カスタマー Gateway(オンプレ) ⇄ 仮装プライベート Gateway(AWS)
- 接続点に別のデュアルトンネル VPN 接続を追加して可用性向上
Canary リリース
- 本稼働の API に比べ以下の制限で新しい API をリリースする。
- 低いトラフィック
- ランダム選択
- ユーザーは悪影響を受けづらく、継続して受けることがない
- テストメトリクスが要件を満たしたら本稼働リリースに昇格させ、Canary を無効化
CloudFront
キャッシュ
- デフォルト設定でキャッシュ実行には GET リクエストが必要
- 他のメソッドでキャッシュしたい場合はオプション設定が必要
- 全ての TTL(Time to live)を 0 に設定することで変更即時反映
Origin Protocol Policy
- Cloud Front とビューワ間の通信接続を設定
- 3つのオプション
- HTTP Only
- HTTPS Only
- Match Viewer
- ビューワーリクエストに応じて HTTP or HTTPS を選択
配信最適化
- Cache-Control max-age ディレクティブ最長設定でキャッシュヒット率向上
- エッジロケーションでの ZIP 圧縮
オンプレの負荷分散
- CloudFront はオンプレミスサーバーをオリジンサーバーとして使用できる。
- CloudFront 設定のみで可能
- DirectConnect, VPN 接続は不要
S3 直接 URL アクセス拒否制限
- Cloud Front を利用せずに期間指定アクセス許可実現には S3 の「事前署名付き URL」
- Cloud Front 利用の場合は署名付き URL か Cookie で制限
- URL or Cookie 作成後に OAI を作成しバケット内ファイルへのアクセス許可を付与
- クライアントには直接アクセス URL ではなく OAI を介したアクセスを要求
多言語対応
- QueryString Forwarding を有効化してパラメータで振り分け
Amazon Elastic Transcoder
- 様々な動画形式への変換
- MP4 から HTTP Live Streeming(HLS)
- CloudFront ディストリビューションで動画ストリーミング
Amazon EMR
- Hadoop フレームワークを利用する Web サービス
- インフラは EC2 or S3
- インスタンス
- コア・マスターといった重要な処理ノードはオンデマンドが望ましい
- タスクノード(オプション)はスポットでコスト最適化
- SQL を使った分析はしない
Organizations
- マスターアカウントでクロスアカウントルールを作成して各アカウントに設定する
- マスターアカウントからでなく IAM から有効化
- マスターアカウントに対してアクセス権限を付与する。
- OrganizationAccountAccessRole
- メンバーアカウントの完全な管理権限
- Organizations コンソールを使用してメンバーアカウントを作成すると作成される
- 既存アカウント招待の場合には自動的に作成されない
推奨 Organization Units (OUs)
- セキュリティとインフラストラクチャを基盤(Fondational)とし、目的ごとにOUを作成する。
https://docs.aws.amazon.com/ja_jp/whitepapers/latest/organizing-your-aws-environment/recommended-ous-and-accounts.html
SCP
- サービスコントロールポリシー
- 組織(OU)内アカウントのアクセス権限を一元的に管理
- 組織外のユーザーには適用されない
- 組織を作るとデフォルトで有効になる
- Amazon ECS による事前定義済みのロール(個別のサービスにリンクされたロール)には影響しない
- 全ての機能が有効の場合のみ使用可能
- 統合請求のみでは不可
- 導入時は誤り防止の為1アカウントか少数アカウントごとに OU に移動することを推奨
組織間のアカウント移動
- 古い Organization からメンバーアカウントを削除する。
- 新しい Organization からメンバーアカウントに招待を送信する。
- メンバーアカウントで新しい Organization への招待を受け入れる。
AWS Config
- 組織内全アカウントでルールを一元的に作成・更新・削除
Amazon Rekognition
- API に画像・動画を与えて解析
- インスタンスは不要
- RecognizeCelebrities
- 有名人画像認識
- SearchFaces
- 類似顔検索
- DetectFaces
- 画像内顔検索
トラフィック制御
タグ戦略
- OU にタグ文字や有無の標準化を設定
- タグ設定を強制実行
- OU の IAM ポリシーで ForAllValues 修飾子を使用
- 大文字小文字区別: aws: TagKeys
Server Migration Service(SMS)
- VM のオンプレからの移行
- Server Migration Connector をオンプレミス側の VMware にインストール
- SMS コンソールからサーバーカタログをインポート
- レプリケーションプロセス中に S3 バケットを作成しサーバーボリュームをレプリケート、EBS スナップショットを作成
- バケットのアイテムは 7 日後に削除
- VM Import/Export はバックアップや災害対策でリポジトリ作成目的
- VM Ware の移行要件のみに限定
Redshift
- マルチ AZ 不可
- 別リージョンにフェイルオーバー不可
- 同一 AZ 内で復元
- ワークロード管理(WLM)で優先順位を管理
- 実行ノードにスポットインスタンスは安定性が脅かされる為不向き
DR(ディザスタリカバリ)
-
DR 元リージョンで KMS 暗号化されたクラスターのクロスリージョンスナップショットコピーを有効にする
- DR 先にコピーを移転できるようになる
-
暗号化操作を実行できるように DR 先でマスターキーのスナップショットコピーを許可する
-
Redshift のスナップショット
- ポイントインタイムバックアップ
- 自動・手動
- スケジュール登録できる
- 手動はいつでもできる
- 増分スナップショット(自動対応)
- 復元後、オンデマンドでストリーミングするのですぐ使える
- バックグラウンドでロード
バックアップ&リストア | パイロットライト | ウォームスタンバイ | マルチサイト |
---|---|---|---|
DR 時に復元 | DB のみ同期 | 低スペックで常時起動 | 同等スペックで常時起動 |
VPC ピアリング
- フルメッシュ
ネットワークを構成する個々の要素(ノード)をすべて直接接続するもの。
- 推移的な接続は不可 (A - B - C)
- 一方にインターネット接続が発生している場合、拡張できない
- NAT、インターネット Gateway、AWS へのエンドポイント、IPv 6 ClassicLink 接続
- 1 つの VPC でのピアリング接続上限は 125
ActiveDirectory
- 既存の AD の移行は AD Connector より AWS Managed Microsoft AD が適切
- オンプレミス環境の IdP において、オンプレミス環境のユーザーまたはグループを IAM ロールにマッピングするアサーションを定義
AD SSO
- ID ストアを構成、メタデータドキュメントを作成
Active Directory Service
- AD を簡単に構築
Simple AD
- AD をより簡単に構築
- 一部機能制限あり
AD Connector
- オンプレ AD にリダイレクト
- 認証情報、ポリシーなどオンプレを流用可
Cloud Trail
- API コールログ
- 個人特定
- ユーザートークンを照合
- sharedEventId, userIdentity 情報
組織の一括ログ取得
- マスターアカウントで組織の証跡を有効化
- マスターアカウントを使わない場合は Cloud Trail にクロスアカウントアクセス権限付与
- S3 でバケット内データ削除不可設定を実施
複数リージョンログ
- 複数リージョンのログを 1 つの アカウントの 1 つの S3 バケットに配信可
- --is-multi-region-trail, --include-global-service-events パラメータを設定
ELB
特徴
-
ルーティングアルゴリズム
-
ALB
- ラウンドロビン = デフォルトのアルゴリズム。均等にルーティングする
- 最小未処理リクエストルーティング = リクエストが来た時点で、処理中のリクエストがもっとも少ないターゲットにルーティングする
-
NLB
- フローハッシュアルゴリズム = プロトコル、送信先/送信元アドレス、送信先/送信元ポート、TCP シーケンス番号が⼀致している
通信を⼀つのフローとし、これらが⼀致している場合は同じターゲットにルーティングする
- フローハッシュアルゴリズム = プロトコル、送信先/送信元アドレス、送信先/送信元ポート、TCP シーケンス番号が⼀致している
-
TCP はポート 80
- CLB
- L4(TCP)または L7(HTTP(S)), SSL
- 加重ルーティング不可
- NLB
- L4(TCP, UDP), TLS
- ALB
- L7(HTTP(S))
- CLB
-
均一にトラフィックを分散
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html -
ドメイントラフィックを ELB にルーティング
- Route53 で Alias レコードを作成
スティッキーセッション
- "AWS ELB" 名の Cookie を使用
- MultiAZ 間でなく EC2 間
- 同じターゲットにリクエストをルーティングする設定
- 状態維持が必要な場合に役立つが、処理が長時間にわたる場合トラフィックが不均衡となる可能性がある
設定
- Connection Draining
- 登録解除中、異常発生中のインスタンスにリクエストを送信しないようにする
- ヘルスチェック
- 異常な EC 2を検知
Gateway 種別
- 仮想プライベート Gateway: AWS 側
- カスタマー Gateway: オンプレ側
- 動的ルーティングの場合、Static
- 静的ルーティングの場合、BGP ASN は不要
- Egress Only Gateway: IPv6 でインターネット接続
- NAT Gateway の IPv6 版
Storage Gateway
- オンプレとクラウドストレージ(S3, EBS, Glacier)を接続
- AWS と各 Gateway 間のデータ転送は SSL で暗号化
- クラウドストレージ側のデータは AES-256 を用いて暗号化
File Gateway
- SMB などのファイルインターフェイスを提供
- S3 に直接アクセス・保存
- (注意)S3コンソールなどで直接バケットのオブジェクトを操作してもStorage Gatewayには反映されない。キャッシュの更新(Refresh Cache)が必要。
Volume Gateway
- オンプレサーバーから iSCSI として S3 をマウント
キャッシュ型
- プライマリデータを S3 に保存
- 頻繁にアクセスするサブセットをローカルにキャッシュ
- 低レイテンシー
保管型
- メインデータはローカルに保存
- ポイントインタイムスナップショットで S3 に非同期バックアップ(EBS 復元可)
TapeGateway
- クラウドベースの仮想テープストレージ
- Glacier または Deep Archive に退避
DataSync
- AWS 他クラウド、オンプレ間でデータ移行
- ユースケース
- オンプレデータ削減
- BCP目的でレプリケート
- コピーしたデータ量に対してのみ課金
- データソースのマシンにAgentをインストール
- VPC Endpoint経由でセキュアにデータ転送
Elastic Beanstalk デプロイオプション
- All at once
- Rolling
- Rolling with additional batch
- Immutable
VPC CIDR ブロック
- IPv4: /16
- IPv6: /56
IAM による証明書設定
- get-server-certificate
- set-load-balancer-listener-ssl-certificate
Cloud Watch
- Cloud Watch Logs Agent : 古いバージョンであり非推奨
- Cloud Watch Agent 推奨
- Cross Account Data Shareing
- Kinesis Data Streams, Firehose, Lambdaなどで、別のAWSアカウントからのログを受信できる
- サブスクリプションフィルターでログを受信する
メトリクス
- SurgeQueueLength
- ルーティング保留中リクエスト/接続合計数
- SpilloverCount
- サージキューオーバーによる拒否リクエスト数
- HealthyHostCount, UnHealthyHostCount
- 正常/異常インスタンス数
- RequestCount
- 1 分または 5 分間の完了リクエスト/接続数
- 4XX Error
- クライアントエラー
- 5XX Error
- サーバーエラー
- IntegrationLatency
- バックエンドレイテンシー
- Latency
- API Gateway レイテンシー
複数リージョン監視
- 1 つのダッシュボードでモニタリング可能
- 他のリージョンで設定は不要
CloudHSM
- SSL オフロード
- サーバーの処理を肩代わりする
- SSL アクセラレータ
- 本来サーバが行う SSL 鍵交換やデータ暗号化を専用ハードウェアで行う
拡張ネットワーキング
- Elastic Network Adapter
- 最大 100Gbps
- Intel 82599 Virtual Function インターフェイス
- 最大 10Gbps
プライベートホストゾーン
- カスタムドメインをデータベースに割り当てることができる
- 関連づける VPC を指定
- 応答するレコードを作成(A または AAAA レコード)、データベースの IP を指定
EC2 個別コンポーネントに別々の SSL 証明書
- ENI を使用
個別のデバイスごとに個別の SSL
- 個別の ELB を使う
ロールの資格情報
- EC2 にロールが設定されると資格情報は EC2 インスタンスメタデータに保存される
Elasticache
- インメモリデータストア
- NoSQL なので OLTP アプリには不向き
https://aws.amazon.com/jp/elasticache/redis-vs-memcached/
Memcached
- マルチスレッド
Memcached はマルチスレッドであるため、複数の処理コアを使用できます。これは、コンピューティング性能をスケールアップすることで、より多くの操作を処理できることを意味します。
- シンプル
- 自動検出機能
- セッション管理。
Redis
- ゲームのリアルタイム処理に適切
- 複雑な設定、より高性能。
- レプリケーション可能(高可用性)
- シングルスレッド
- キャッシュデータの DR、フォールトトレランスの為の機能
- 自動バックアップ
- Redis AOF(Append-Only File)を使用した手動バックアップ(デフォルト無効)
- 自動フェイルオーバーを備えたマルチ AZ のセットアップ
Amazon DLM(Data Lifecycle Manager)
- EBS ボリュームスナップショット取得を定期実行
SCP と IAM ポリシーの違い
- SCP
- OU に対してのみ権限設定
- IAM ポリシーはユーザ単位
ポリシー
要素 | 説明 |
---|---|
Effect | ポリシーがアクセスを許可または拒否するかどうか |
Action | ポリシーによって許可または拒否されるアクションのリスト |
Resource | アクションを起こすことができるリソースのリスト |
Condition (オプション) | ポリシーがアクセス許可を付与する状況 |
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucketVersions", "s3:ListBucket"],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": ["custom"],
"s3:VersionId": ["1234"]
}
}
}
]
}
バケット名に s3:ListBucket プレフィックスが含まれている場合、custom アクションに対するアクセス許可
AWS Organizations ボリュームディスカウント
- 組織全体でリソースを購入・利用
- ボリュームディスカウントが設定されているリソース料金を下げる
- マスターアカウントによる共有設定
- リザーブドインスタンス共有のオンオフ切り替え
- オフにするとディスカウントが適用外
Code シリーズ
CodeStar
- プロジェクト生成
- 単一ダッシュボードで管理
- 類似リソース
OpsWorks: インフラ展開
Elastic Beanstalk: Web アプリ向け(≠ サーバレスアーキテクチャ)
CodeDeploy
CodePipeline
- 承認フロー
- SNS を使用
- メールで通知、コンソール, CLI, SDK でコメント確認後承認可否
- 7 日以内に承認されないと失敗扱い
WAF
-
トラフィック制御のルールを作成可能
-
クロスサイトスクリプティング、SQL インジェクション対策ルールを作成可能
-
IP set statement
- IPでアクセスを制限
-
Geo match statement
- 国と地域で制限
WAF サンドウィッチ
- 2 つの ELB の間に WAF を配置
WebACL
- 特定のアクセスを制御して APIGateway、CloudFront ディストリビューション、ALB などで応答
- 防御対象
- 特定の IP、国、正規表現パターン
- 悪意ある SQL、悪意あるスクリプト
- 5 分にわたって指定された数のリクエスト
- CSRF
GuardDuty
-
AWSアカウント、EC2、EKS、S3に保存されているデータへの悪意のあるアクティビティを継続監視
- 異常なAPIアクティビティ
- VPC内ポートスキャン
- ログイン失敗の異常なパターン
-
(注意)検知するのみでブロックするサービスではない
Inspector
- EC2とコンテナのワークロードを継続的にスキャンし、ソフトウェアの脆弱性や意図しないネットワークへの露出を検出。
モバイル認証管理
- FGAC(Fine Grained Access Control)
- Dynamo テーブル所有者が詳細なアクセスコントロールを実施
- IAM と組み合わせて使用
- WebID フェデレーション
- IdP 認証
- 受け取ったトークンを IAM ロールにマッピング
ブルーグリーンデプロイメント戦略
- 稼働中のインフラをブルー、新しい構成をグリーン
- 平行で移行を進める
- 問題があればブルーを継続してロールバック
Dynamo
- ローカルセカンダリーインデックスはテーブル作成時に設定する必要がある
Lambda から のアクセス許可
- インラインポリシーの Action に
dynamodb:GetItem
とdynamodb:PutItem
- add-permission AWS Lambda コマンドを実行して、Amazon API Gateway サービスプリンシパルに呼び出し許可を設定
負荷改善とコスト削減の両立
- AutoScaling を有効化して一時的なスループットキャパシティ増加
- ワークロードの増減が数分間維持された場合のみ発動することに注意(急激なスパイクには対応できない可能性)
- バーストキャパシティ(貯金的な?)
DynamoDB は、未使用の読み込みおよび書き込み容量を最大 5 分 (300 秒) 保持します。読み込みまたは書き込みアクティビティが時折バーストする間、これらの余分な容量ユニットをすばやく消費できます。
- SQS でバッファ構築
- アンチパターン(ケースバイケース)
- DAX は永久的にパフォーマンス向上でコスト増
- DynamoDB グローバルテーブルで複数リージョンにデータ保存するのはコスト増
DynamoDB への Migrate
- エクスポートした CSV を S3 に配置
- Dynamo をエンドポイントに指定
- テーブルマッピング(外部テーブル定義)を追加
パフォーマンス
- カーディナリティの高いパーティションキーを使用する
- カーディナリティが低い=とりうる値が少ない ≒ 性別
- 複合プライマリキーはパーティションが増えパフォーマンス低下
キャパシティ
- 結果整合性
- 4KB = 1Unit/s
- 強い整合性
- 8KB = 2Unit/s
- 上限
- 40,000/テーブル
レプリケーション
- Stream を有効化
- グローバルテーブルを作成
- リージョン間で共有
DocumentDB
- VPC内部にデプロイされるため、EC2などから直接アクセス可能(VPCエンドポイントは不要)
- VPC外部からのアクセスにはSSHトンネリングを使用。
Data Pipeline
-
Dynamo のクロスリージョンレプリケーションも可
-
3 つの項目で関連付け
- コンポーネント
- ビジネスロジック
- データ管理のルールを定義(データソース、アクティビティ、スケジュール、前提条件)
- 親コンポーネントから継承可
- インスタンス
- コンポーネントをコンパイルして実行するインスタンス(EC2, EMR)
- Attempt
- 失敗したオペレーションを再試行
- 最大許容回数まで試行
- 以前の試行と同じリソースで再試行
- コンポーネント
-
複数のコンピューティングリソースを使用可
- 複数のクラスターオブジェクトを定義ファイルに定義し、使用するクラスターを runsOn フィールドで各アクティビティに関連付け
- 例えば、簡易スクリプトは t1.micro を使用して安価に実行し、その後で大型インスタンス群の能力が必要な Amazon EMR ジョブをそのパイプラインに設定することができる
永続的な Mac アドレス
- ENI(Elastic Network Interface)を EC2 にアタッチ
- ENI に Mac アドレスを付与
- EC2 が停止した場合には ENI を再アタッチ
Step Functions
- あるステップの出力 ⇨ あるステップの入力になる
- 対応リソース
- Lambda
- Fargate
- SageMaker
- 優先順位を定義可能
- SNS・SES でメール通知可能
- 標準ワークフローと Express ワークフローが存在
- Express は毎秒 10 万リクエスト
SWF
- タイマー
- 実行時間を通知
- タグ
- 実行のリストをフィルタリング
- シグナル
- 実行中のワークフローに情報を注入
- マーカー
- 実行履歴のイベントを記録、実行回数など記録
Step Functions より SWF を選択するユースケース
- プロセスにおいて介入する外部信号が必要な場合、または結果を親に返す子プロセスを起動する場合
クライアント証明書認証
- ELB で TCP リスナー
- Route53 レコードに EIP をセットして直接ルーティング
Shield Standard
- CloudFront のデフォルト設定(設定は不要)
- SYN フラッド, UDP リフレクション攻撃
Amazon Elastic Compute Cloud (EC2)、Elastic Load Balancing (ELB)、Amazon CloudFront、AWS Global Accelerator、および Amazon Route 53 などのリソースで実行されるアプリケーションを標的とした攻撃に対する高レベルな保護には、AWS Shield Advanced を使用できます。
- DDoS 保護
- Adbanced
- ほぼリアルタイム通知
- 可視化
Application Discovery Service (ADS)
- オンプレデータセンターの情報を収集
- ADS のデータストアに結果を暗号化形式で保存
- 総所有コスト見積もりや移行計画に使用
Migration HUB
- 複数移行アプリステータスを追跡
TCP/IP プロトコルスタックの事前定義範囲
1024〜65535
Amazon Macie
- AWS 内機密データを自動検出、分類、保護
ELB バックエンド EC2 の IP 確認
L7
- X-Forwarded-For ヘッダーを確認
L4
- Proxy protocol
- L4 で使えない x-forwarded-for の代わりに ClientIP を保持する
- TCP 接続 ELB がいる場合にクライアント IP アドレス識別に使える
VPC フローログ
- トラフィックのログのみ
- CloudWatch consoleからログを確認
IAM ロールに付与するポリシーの種類
- 信頼ポリシー
- 必須
- 信頼するプリンシパルを定義
- 権限ポリシー
- 使用できるアクションとリソースを定義
パブリック証明書
- IAM と ACM を使う2種類が存在
- ACM が使えないリージョンでのみ IAM を利用
- ACM に SSL 証明書を保存
- Amazon CloudFront、Elastic Load Balancing、または Amazon API Gateway で利用可能
- プライベート証明書と異なり EC2 で使用は不可
PrivateLink
- NLB 配下の WEB 等のサービスを、同一リージョン内の他の VPC に公開できる
SNS
- Subscription 解除方法
- 管理者が削除
- メールで解除リンク送信
SES/SNS 違い
- SES(Simple Email Service)
- メール送信に特化
- メールの装飾が可能
- メルマガ、キャンペーンなどの用途
- SNS(Simple Notification Service)
- 通知に特化
- 他サービスとの連携
- 運用系の用途
HVMAMI
- HVM AMI > PVCAMI
- クラスタ配置グループは単一 AZ
SR-IOV(シングルルート IO 仮想化)
- ハイパーバイザー層を介さずに直接 I/O する技術
- EC2 固有ではなく一般的な技術ワード
https://jp.fujitsu.com/platform/server/primergy/software/windows/technical/tips/w2012/pdf/03-01.pdf - メリット
- ネットワークスループットの向上
- CPU 使用率の低下
- ホストごとの VM のサポート
- ホストでのネットワーク帯域幅利用率の向上
IAM ロールと AWSCLI にアタッチされたロールの共存
- インスタンスプロファイルロールと AWSCLI によるロール両方更新が必要
同じ IP によるフェイルオーバー
- ELB や Route53 では同じ IP を使用したフェイルオーバールーティングは不可
- ENI とセカンダリ IP を使用する
Raid
- EBS では全ての標準的な Raid 構成を使用できる
- 標準的な Raid 構成
- Raid0: 複数ディスクに分散読み書き=ストライピング。 アクセスの高速化 耐障害性低い
- Raid1: 複数ディスクに同じデータを書き込み=ミラーリング。耐障害性を実現。ディスク効率 50%
- Raid5: 3 台以上に分散書き込み。誤り訂正符号(パリティ)を同時に保存
- Raid6: 4 台以上に分散書き込み。誤り訂正符号(パリティ)を同時に保存
- Raid10: Raid0/1 を組み合わせ
- Raid10 は 0/1 どちらをベースにするかで呼称が変わる
- RAID10(1+0): RAID1(ミラーリング)された領域を RAID0(ストライピング)で構成
- RAID01(0+1): RAID0(ストライピング)された領域を RAID1(ミラーリング)で構成
- 誤り訂正符号
- HDD に同時に保存。HDD の故障時にパリティをもとに復元。
Serverless
- SAM 定義リソースを含めるには以下が必要
- AWS :: Serverless-2016-10-31 の Transform
- AWS :: Serverless :: Lambda は SAM にない
- AWS :: Serverless :: Table は SAM にない
AWS ブロックチェーンサービス
- Amazon QLDB
- Amazon Managed Blockchain
- AWS Blockchain Templates
- 素早くデプロイ
- AWS ブロックチェーンパートナー
- オンプレには展開できない
Mechanical Turk
- S3, SQS, SNS, SWF と統合(StepFunctions は不可)
Site-to-Site VPN
- IPSec トンネルで通信し、イントラとAWS間にセキュアな接続を確立
- SSL は使われない
- AWS Classic VPN or AWS VPN をサポート
- ユースケース: 緊急の必要があり、低〜中大域幅
- 高スループットを求める場合はDirect Connectと組み合わせる
https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/images/image10.png
パブリック仮想インターフェイス
Direct Connect
- VPC で作成したサブネットとの通信、AWS クラウドサービスへのアクセスが可能
- VPN より 高速
- 手順
- Direct Connect を使用して接続するサブネットを選択
- 仮想プライベートゲートウェイ(VGW)へのルート伝播を有効化
- 単体ではデータセンターとクラウド間の接続を暗号化できない
https://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/encryption-in-transit.html
VPC に VPN 接続を確立
- インターネット経由より速くて安全
プライベート仮想インターフェイス
- プライベート IP アドレスを使って Amazon VPC にアクセス
パブリック仮想インターフェイス
- パブリック IP アドレスを使用して、すべてのパブリックな AWS のサービスにアクセス
有効化手順
- 仮想プライベート Gateway(VGW)ルート伝播を有効化
- EC2 からオンプレに戻るルートを追加
- BGP を介してオンプレの特定ルートを設定する
- BGP(Border gateway protocol セッションで最大 100 ルールまで接続
- インターネット Gateway ルートより優先される
- デフォルトルートは 1 つしか設定できない
- BGP を介してオンプレの特定ルートを設定する
- VPC サブネットルートテーブルを更新
AWS Direct Connect Gateway
- Direct Connect の機能の一つ
- VPC ごとの BGP セッション確立が不要
- 管理作業・ネットワークデバイス負荷軽減
- ネットワークメッシュ
- データ転送パフォーマンス向上のために網の目状にネットワークを構築すること
- 複数リージョンに Direct Connect を通じてアクセス
- 次のいずれかに関連づけ - 複数 VPC in 単一リージョン: トランジット Gateway - 仮想プライベート Gateway
LAG
- ルール
- 全て同じ帯域幅である必要がある
- 最大 4 つ
- 全ての接続は同じ Direct Connect Endpoint で終了する
- Link Aggregation Control Protocol(LACP)を使用して複数の接続を集約する
VPC 予約 IP アドレス
•10.0.0.0:ネットワークアドレス。
•10.0.0.1:AWS によって VPC ルーター用に予約されています。
•10.0.0.2:AWS により予約済み。 DNS サーバーの IP アドレスは、常に VPC ネットワーク範囲のベースに 2 を加えたものです。 ただし、各サブネット範囲のベースに 2 を加えたものも予約しています。
•10.0.0.3:将来の使用のために AWS によって予約されています。
•CIDR ブロックの最後(10.0.0.255 など):ネットワークブロードキャストアドレス
AWS X-Ray SDK
- アプリケーション着信トラフィック解析
- 着信トラフィック解析には CloudWatch よりこちらを選択
- Elastic Beanstalk コンソールで設定
- 設定ファイル場所
- .ebextensions
ElasticSearch
- DynamoDB のデータを ElasticSearch に移動が必要
- より優れたクエリオプションで検索
VPC エンドポイント
- インターネット Gateway を介さず VPC 外の AWS サービスにアクセス
- 2種類
- Gateway 型
- S3, Dynamo のみ
- S3 バケットポリシーで許可する VPC と VPC エンドポイントを設定
- インターフェイス型
- Gateway 型
Work Spaces
- RDP
EKS
- 2 つの AZ 構成が必要
- systems:master アクセス許可が付与されたロール、IAM でクラスター制御
コスト配分タグ
- 2種類のタグ
- ユーザー定義タグ
- AWS 生成タグ
- createdBy を生成、リソース作成者を特定
- それぞれマスターアカウントで Billing and cost management コンソールでアクティブ化が必要
Snow Family
- 耐久性のあるローカルストレージ
- 現在は Edge のみ利用可
- 数テラバイトから数ペタバイト対象
Snowball
- データを Amazon S3 にインポート/エクスポート
- 80TB
Snowmobile
- エクサバイトデータ移行
Snowball edge
Storage Optimized
- データのインポート、エクスポート
- ローカルコンピューティングインスタンス
- 100TB
Compute Optimized
- データのインポート、エクスポート
- ローカルコンピューティングインスタンス
- AWS Lambda を使用したローカルコンピューティング
- デバイスのクラスターで使用する
- AWS Greengrass(IoT)で使用
- GUI を使用して NFS 経由でファイルを転送する
- GPU オプション
- 42TB
RDS
- クロスリージョンレプリケーションは非同期で行われる
- SSL エンドポイントを使用してインターネット経由でレプリケーションするのは不適切
- Oracle の特定機能、RAC, 統合監査, Database Vault などをサポートしていない
- それらを使うなら EC2 インスタンスに移行が必要
- Oracle Recovery Manager(Oracle RMAN)
- マーケットプレイスの AMI で EC2 にデプロイが可能
- 自動バックアップは提供されていない
- Raid設定を使いたいならEC2上でRDSをセットアップし、EBSを使う必要がある
- Raid0: I/Oパフォーマンス向上
- Raid1: ミラーリングし、冗長性向上
- RDS Provisiond IOPS Storage で SSDにし、パフォーマンス向上
リードレプリカ
- インスタンスレプリカを複数作成、読み取りトラフィックをコピーから提供
- スループット向上
- スタンドアロンの DB インスタンスに昇格可能
ログの種類
- 一般ログ
- mysqld の一般的な実行ログ
- スロークエリログ
- 設定値以上に時間がかかったクエリのログ
- エラーログ
- サーバー実行中のあらゆるクリティカルエラーログ
バックアップ
- DB だけでなくサーバーのファイルシステムも必要であれば AMI をコピーして S3 に保存する
- EC2 with RDB はやむを得ない場合のみ選択する
DB サブネットグループ
- 最低 2 つの AZ にサブネットが必要
- プライベートかパブリックのいずれか(混在はできない)
- VPC に作成した RDS インスタンスは DB サブネットグループから IP を選択してネットワークインターフェイスを割り当て
- IP は Mutable なので通常 DNS を指定
- DB サブネットグループのサブネットごとに最低 1 つのアドレスを確保が必要
RDS on VMWare
- サポート対象
- パッチ適用
- ポイントインタイムの復元
- スケーリング、モニタリング
- フェイルオーバー
- サポート外
- マルチ AZ
- VPC による IP アドレス割り当て
Aurora MySQL
- 128TiB まで自動拡張
- CloudWatch Logsにログ連携可能
- エラーログはデフォルトで有効
- 一般、スロー、監査ログは明示的に有効化が必要
Lambda
- Lambda から EMR クラスタを起動できる
- Lambda コンソールで関数のモニタリング
- 合計リクエスト、実行時間、エラー率
- CLI でアクセスするには
list-metrics
get-metric-statistics
カスタムランタイム
- Lambda で他言語を動かせる
- Bootstrap ファイル(エントリポイント)必須
エラーコード対応
Aws::CharlieInstanceService::Errors::UnrecognizedClientException -The security token included in the request is invalid.
- AWS OpsWorks の外部リソースが編集または削除された場合に発生
- ELB をマニュアルで設定
- インスタンスオフライン時にストレージを変更
No 'Access-Control-Allow-Origin' header is present on the requested resource
- 以下が必要
- オリジンの cross-origin resource sharing (CORS) ポリシーで、オリジンが「Access-Control-Allow-Origin」ヘッダーを返すことを許可している。
- CloudFront ディストリビューションで、適切なヘッダーが転送されている、ホワイトリストに登録されている
- CloudFront ディストリビューションのキャッシュ動作が HTTP リクエストに対して OPTIONS メソッドを許可している。
The request could not be satisfied.Bad Request.
- Origin Protocol Policy が適切でない
- 関連づける CNAME の設定が必要
EC2ThrottledException
- プライベート VPC 内のリソースにアクセス時発生
- 十分なサブネット ENI がない
- 十分なサブネット IP がない
EIP ではない
API Gateway
レスポンス設定
- メソッドリクエスト・レスポンス
- API Gateway ⇄ フロントの設定
- 統合リクエスト・レスポンス
- API Gateway ⇄ Lambda の設定
段階的リリース
- ステージ変数
- キーバリューペア
- デプロイステージに関連づけられた属性
- セットアップやマッピングテンプレートで利用可能
タイムアウト
- Lambda: 1s~15m 緩和不可
- 502 の Bad Gateway を返却
- API Gateway: 50ms~29s 緩和不可
- INTEGRATION_TIMEOUT 504 を返却
- https://oji-cloud.net/2019/07/02/post-2258/
コストと使用状況レポート
- 統合請求機能有効の場合はマスターアカウントのみ利用可
- 以下サービスと連携
- Athena
- Redshift
- QuickSight
OpsWorks
自動ヒーリング
- EC2 ヘルスチェックに合格してもスタック内異常インスタンス、失敗したインスタンスを再起動
- 失敗したインスタンスは自動置き換え
ライフサイクルイベント
イベント | タイミング |
---|---|
Setup | 起動した後 |
Shutdown | 終了する前 |
スタックインスタンスに更新パッチ適用
- Chef 11.10 以前のスタックの Linux ベースのインスタンス
- Update Dependencies スタックコマンドを実行
Blue/Green
- レイヤーに新しい AMI を追加
- Route53 加重ルーティング
SQS
- 標準キューと FIFO キューの2種類
- メッセージグループ ID + FIFO キューで同じメッセージグループ内は順番保証
- デッドレターキュー
- 長時間未実行キューを隔離
可視性タイムアウト
- その時間内は他のキューから見えなくなる
- 最大 12 時間, 最小 0
- Console or SDK for Java で時間変更
- SDK では特定の Json ヘッダー付きメッセージに対して時間変更など可能
メッセージ重複排除 ID
- 同一の重複排除 ID が設定されたメッセージをキューへ送っても 5 分間の間は受付けられない
需要に応じたスケーリング
- 適正バックログをメトリクスに設定
トラフィックや処理時間は不適切
EFS
-
マネージドファイルサーバー
-
NetApp ONTAP、OpenZFS、Windows ファイルサーバー、Lustreから選択
-
Single-AZ1
- SSD、Microsoft 分散ファイル システム レプリケーション (DFSR)、カスタム DNS 名の使用をサポート
-
Single-AZ2
- SSD, HDDをサポート
-
Single-AZの場合はファイル システムのメンテナンス中、インフラストラクチャ コンポーネントの交換中、およびアベイラビリティ ゾーンが利用できない場合に利用できなくなるが低価格
-
大抵の場合においてMulti-AZを推奨
-
複数 EC2 からアクセス可
-
インターネットからアクセス不可、ローカルファイルシステムとして機能
-
単一リージョン、マルチ AZ に分散
-
- データ保管時: ファイルシステム作成時に有効化可能
- データ転送時: EC2 にマウント時に有効化可能
FSx
オンプレ RDS
- AWS クラウド上 RDS 同様自動バックアップ可能
MFA を利用する際は Get SessionToken API を利用します。
注意事項
リソース | MultiRegion |
---|---|
EC2 | 不可 |
RDS | 不可 |
RDS(?)
- Route53 を利用した構成にする
- フェイルオーバーする設定必須
GraphQL API
- グラフ DB の Neptune ではホストできない
- EC2 でホストする
ソリューション
URL ベースルールによるアウトバウンドアクセスの制御
- EC2 をプライベートサブネットに配置する
- プロキシサーバーでクライアントからの要求をブロック
- 以下では URL ベースで制御不可
- Route 53
- ネットワーク ACL, セキュリティグループ
- ポート範囲、送信先 IP、プロトコルのみで制限可
VPN でのアクセス制限
- パブリックサブネットに VPN SSL ソリューションを実装
- アクセス対象ユーザは端末に SSL クライアントをインストール
- アプリはプライベートサブネットにデプロイ
【余談】合格記
試験前
2 時間前に会場付近のコメダ珈琲で最後の復習。
このノートの見直しと、今更ながら公式のサンプル(初めて目を通した)
サンプルで半分以上間違えて自信喪失しつつ、会場へ。
試験後
全問解き終わって時間は 90 分くらい余っていたと思います。
あれだけ勉強したのに、知らない単語が結構な数出てきた。覚えているもので DataSync とか。S3 の block とか。 CloudFormation のドリフト検出(これ2問くらい出てきた気がする)とか。結果合っていたのかはわからないが、英語と同じで知らない単語でも諦めず前後の文脈から判断して答えたのがよかったのかもしれない。
あとはやはり長文なので、よく読まないと物凄く細かい要件を見落としてミスというのが多そうだなと思った。見直していてそういうのを3、4つくらいは回収できたと思う。
最終的な勉強内容
- AWS Blackbelt
- Udemy 模擬試験問題集
- 唯一の参考書
- WEB 問題集で学習しよう
勉強ルーチン
- Udemy で全5回の模擬試験を合格点(75%)に達するまで(5回くらい)繰り返し。ポイントをノートにメモ。解説読んでわからなかったところは BlackBelt や公式ドキュメントで補足。
- 参考書の模擬試験を合格点(75%)に達するまで(3 回くらい)繰り返し。重要そうなポイントをマーキング。
-
WEB 問題集で学習しようを試験の一ヶ月前くらいに総仕上げ的に登録。
- Udemy が合格点に達した後なのにかなり間違えてしまったのだが、内容が古かったり、間違ってたり、日本語が微妙でそもそも問題の意味がわからなかったり、といった問題がかなり合ったように思う。ただ、Udemy と参考書でも出てこなかった内容があったりしたので登録する意味はなくはないと思う。が、6千円の価値があるかというと微妙か。
- 業務でほぼ使っておらず特に自信のない範囲(ネットワーク系、Snow ファミリー、AD 系)中心に BlackBelt で仕上げ。AD 系は最後まで各サービスの違いなどがよくわからなかった・・(本試験では全く出てこなかったのでラッキーだった)