SOA
Amazon RDS
Amazon RDS Performance Insights
詳細な待機イベントによって分類された負荷を表示する
待機イベント:データベースインスタンスがリソースの処理を待機している状況を示すイベント
Amazon Auroraバックトラック機能
データベースクラスターを72時間までの指摘した時間に復元
Amazon Auroraポイントインタイムリカバリ
新しいデータベースクラスターに復元
特徴 | バックトラック | ポイントインタイムリカバリ(PITR) |
---|---|---|
目的 | 過去の状態への即時巻き戻し | 過去の時点を基にした新しいインスタンスの作成 |
リカバリ対象 | 現在のデータベースの状態を変更 | 新しいデータベースインスタンスを作成 |
リカバリ範囲 | 最大72時間前まで | バックアップ保持期間内(最大35日間) |
データベースの影響 | 現在のデータベースの状態を直接変更 | 現在のデータベースには影響なし |
スキーマ変更の対応 | サポート外(DDL操作は巻き戻せない) | サポート(DDL含むすべての状態をリカバリ可能) |
処理速度 | 高速(すぐに過去の状態に戻る) | 遅い(新しいインスタンス作成に時間がかかる) |
用途 | 誤操作やテスト環境での迅速なリセット | データ損失や障害からの復旧、特定時点のデータ参照 |
S3
静的サイトをホスト
- index.htmlをS3にアップロード
- Block all public accessをオフにし、バケットポリシーのs3:GetObject許可する
- バケット全体ではなくオブジェクトへのアクセス許可をする
オブジェクトロック
上書きや削除から守る(デフォルトの指定は90日間)
バージョニング
更新は旧バージョン、削除は削除マーカ付きとして保存される
アクセスサーバログ
リクエスト送信元を調査できる
エンドポイントの種類
エンドポイント種類 | 概要 | 特徴 | 使用例 |
---|---|---|---|
パブリックエンドポイント | インターネット経由でアクセスするデフォルトのエンドポイント。 | - URL形式: https://s3.<リージョン>.amazonaws.com - インターネット経由。 |
S3バケットにインターネット上のユーザーやアプリケーションからアクセスする場合。 |
ゲートウェイ型VPCエンドポイント | VPC内からS3へプライベート接続するためのエンドポイント。 | - インターネットを経由せず、AWSバックボーンネットワークを利用。 - S3とDynamoDB専用。 |
EC2やLambdaがインターネットなしでS3にアクセスする場合。 |
インターフェース型VPCエンドポイント | プライベートIPアドレスを使用してVPC内からS3に接続。 | - ENIを使用。 - プライベートDNSを有効化すると標準のS3 URLでプライベート接続可能。 |
AthenaやGlueがVPC内からS3にアクセスする場合。 |
アクセスポイント | バケットごとに複数のカスタムエンドポイントを作成可能。 | - URL形式: <アクセスポイント名>-<アカウントID>.s3-accesspoint.<リージョン>.amazonaws.com - VPCアクセスポイントで特定のVPC内アクセスを制限可能。 |
チームやアプリケーションごとに異なるアクセス制御ポリシーが必要な場合。 |
リージョン固有エンドポイント | 特定のリージョンでのみ使用されるエンドポイント。 | - URL形式: https://s3.<リージョン>.amazonaws.com - データがリージョン内にとどまることを保証。 |
データを特定のリージョンに閉じ込めておきたい場合。 |
Transfer Accelerationエンドポイント | 地理的に分散したクライアントから高速アップロードを提供。 | - URL形式: https://<バケット名>.s3-accelerate.amazonaws.com - CloudFrontを利用した転送高速化。 |
グローバルアプリケーションで大量のデータを高速にアップロードする必要がある場合。 |
S3ゲートウェイエンドポイント
S3専用のVPCエンドポイント
インターネットに出ずS3に接続
1つのゲートウェイで複数のS3にアクセス
S3 Block Public Access
公開をしない
AWSアカウントレベルで設定する
s3 cpコマンド
マルチパートアップロード
S3 Batch Operations
複数のオブジェクトに対してオペレーションを実行(タグの書き換え等)
S3 Transfer Acceletion
エッジロケーションとS3の間で高速なバックボーンネットワークを利用してデータ転送を最適化する
AWS Compute Optimizer
リソースの設定、使用率のメトリクスを分析、コスト削減とパフォーマンス向上の推奨事項を生成
Compute Savings Plans
AWSでのコンピューティングリソースのコスト削減を支援するための柔軟な料金プランです。このプランは、利用量に基づくディスカウントを提供し、特定のインスタンスタイプやリージョンに縛られずに、AWSの幅広いコンピューティングサービスでコスト効率を最大化できる。
Amazon Elastic File System(Amazon EFS)
マウントターゲットはAZ毎に作成する必要がある
Amazon Trusted Adviser
AWS Supportプラン(Basic、Developer、Business、Enterprise、Enterprise On-Ramp)によって検査項目量が異なる
使用料がサービスクォータを超えるときにCloudWatchアラームと連携しSNS経由でアラート
CloudFormation
E2起動時にInsufficientInstance Capacityエラー
- AZ内のインスタンス容量超過している
インスタンスタイプを低性能にする、別のAZで起動などで対応する
E2起動時にInstance LimitExceededエラー
- リージョンで実行できるインスタンスの上限に達している
Service Quotasでクォータの引き上げを申請する
VPCは指定不要
です。
リソースのプロビジョニング順を制御
DpendOn属性で制御する
ロールバックする
CreactionPolicyのタイムアウトを設定する
condition
スタックからリソースを作成する際に作成条件を適用する
StackSets
複数のAWSアカウントやリージョンに対して、統一したインフラの展開や管理を行うための機能
OUTDATEDエラー
名前が一意でないグローバルリソースを作成しようとした場合に発生
Mappingセクション
テンプレート内で定義されるキーと値のペア(マッピング)を格納するセクション
これにより、特定の条件に基づいて異なる設定を適用したり、リソースを動的に設定したりすることができる。
環境やリージョン、アーキテクチャに応じてテンプレートのパラメータをカスタマイズするのに役立つ
デフォルトのVPCの数(クォータ制限)
5つまで
別リージョンでのデプロイが失敗
- 別リージョンで利用できないAMIを参照
- 別リージョンに存在しないサービスをリクエスト
プロビジョニング失敗時の動作
ロールバック(デフォルト)
CloudFront
更新されたファイルをすぐに反映
古いオブジェクトの無効化(キャッシュを削除)
ブラウザが最新のオリジンであるS3の内容を取得する
max-age=0 ブラウザは常に最新のオブジェクトを取得
Cache-ControlヘッダーフィールドをS3に追加する(ブラウザのキャッシュ制御)
ALBとの組み合わせでセッション管理
- CloudFrontディストリビューションのキャッシュ動作設定で、Cookie転送を構成する
- ALBのターゲットグループで、スティッキーセッションを有効化する
グローバルサービス
グローバルサービスのためリージョン指定ではない
Behavior機能
リクエストをどのように処理するかを定義するルール。
特定のパスやファイルタイプに応じて、キャッシュ設定やオリジンへのリクエスト処理方法をカスタマイズできる。
オブジェクトの自動圧縮
特定のタイプのファイルを圧縮してダウンロードを短縮化
Managed-CachingDisabled
キャッシュを完全に無効化するためのCloudFrontマネージドポリシー
Managed-CachingOptimized
高パフォーマンスのためにキャッシュを最適化する設定。
静的コンテンツ(画像、CSS、JavaScriptなど)の配信。
頻繁に変更されないデータ。
開発環境の整備
- CloudFormationテンプレートを開発者に提供
- 夜間帯は消す場合は、EvnetBridgeとLambdaで消す
NAT Gateway
- セキュリティグループは不要
- AZに依存しない
インターネットにアクセスできない
- 通信プロトコルがサポートされていない(TCP、UDP、ICMPをサポート、GRE、IPSecは非サポート)
- 状態がAvailable(利用可能)ではない
Amazon Route 53
ALIAS
- Route 53の独自機能
- ドメイン名を別のドメイン名に関連付ける(EC2のドメイン名をALBに向ける)
- IPアドレスを直接返すのでCNAMEより効率的(CNAMEはDNSクエリが2回発生する)
位置情報ルーティング
地理的場所(クエリの送信元)に基づいて最適なルーティング
複数リージョンで冗長構成
Aレコード、フェイルオーバールーティングポリシー、ヘルスチェック機能
インバウンドリゾルバーエンドポイント
外部ドメイン(VPCの外部)からRoute53 Resolverを利用してVPC内のインスタンスの名前解決を行う
(オンプレミスのDNSサーバからのクエリをRoute53に転送する)
アウトバウンドリゾルバーエンドポイント
VPC内のインスタンスが名前解決を行う
ヘルスチェック
ルーティングやヘルスチェックはプライマリを指定する
ゾーンアペックス(Zone Apex)をALB配下のWebサーバにマッピング
Zone Apexに対するエイリアスレコードを設定
(AレコードやAAAAレコードはALBのようにIPアドレスが動的に変更されるので不向き)
ゾーンアペックス(Zone Apex)とは、DNSのドメインゾーンにおける最上位のドメイン(ルート)を指す
AWS Organizations
サービスコントロールポリシー(SCP)
- 組織のAWSアカウントの使用許可を一元管理する
- 未承認のリージョンにEC2をプロビジョニングできないようにするには、ec2:Runinstanceアクションを拒否
コスト配分用タグキー
リソースに配分されているタグを、コスト配分タグとしてアクティブ化することで料金を把握できる
コスト配分タグをアクティブにできるのは、管理者アカウントのみ
組織単位(OU)でグループ化して管理負荷を軽減
AWS Personal Health Dashboard
- AWSのメンテナンス予定を確認できる
- 自身のAWS環境に影響を及ぼすイベント(メンテナンスや障害情報)を確認できる
AWS Service Health Dashboard
AWS全般のステータス(リージョン規模の障害等)を確認できる
IAM
IAMポリシーのCondition要素でタグを指定してアクセス制御できる
AssumeRole
Security Token Service (STS)のAPI操作で、指定したIAMロールを一時的に引き受けるためのアクション
ElastiCache Memcached
CreateCache Cluster API
Memcashedクラスターはノード変更できないのでスケールアップ/ダウンする際は新規にクラスターを作成する
ElastiCache Reids
Memcashedよりも高可用(マルチAZや自動フェイルオーバー機能あり)
エビクション(キャッシュが満杯の状態でエントリーを削除)
対応策は、ノードの追加、ノードのサイズを増やす
AWS Service Catalog
CloudFormationと連携してガバナンスが適用されたリソースをプロビジョニング
インポート済みポートフォリオは、ローカルポートフォリオに追加できる
CloudWatch
CloudWatchエージェント append_dimensisonsフィールド
CloudWatchエージェントによるメトリクス収集時にカスタムディメンションを追加するための機能。
構成ファイル内にappend_dimensisonsフィールドを追加し識別子として機能させる
CloudWatchアラーム
-
異常検知に基づくアラーム
過去のメトリクスデータを分析し予想されるモデルを作成 -
欠落データを違反として扱うアラーム
メトリクスのデータが欠落(例えば、予期しないデータの欠如)した場合に、アラームをトリガーする
StatusCheckFailed_Systemメトリクス
基盤となるハードウェア障害を検知できる
カスタムメトリクス
EBSボリューム
Amazon EFS
既存のファイルシステムを暗号化する場合は、新規作成して暗号化してコピーする
AWS Resource Groups
AWSリソースを論理的にグループ化し、一元的に管理・操作できるサービスです。リソースをグループ化することで、プロジェクト、環境、または用途別にリソースを効率的に管理し、特定の操作やモニタリングを簡単に行えるようになる。
Tag Editor
指定したリソースタイプのタグを一括表示、編集できる(タグ付き、タグ無しの洗い出しも可能)
Lambda
ログの出力
- デフォルトでCloudWatch Logsに出力
(CloudWatchのアイテムを作成する権限は必要)
Invocationsメトリクス値
Lambada関数が呼ばれた回数(処理がされなかったことを監視すること等に利用できる)
DirectConnect
パブリック仮想インターフェース
Amazon S3、Amazon EC2、Amazon DynamoDBなどのインターネット経由でアクセス可能なAWSサービスへの接続に使用される
プライベート仮想インターフェース
VPC内のインスタンスやその他のプライベートリソース(例: プライベートサブネットにあるEC2インスタンス)への接続に使用される
セキュリティグループ
拒否設定はできない
特徴 | セキュリティグループ | ネットワークACL |
---|---|---|
適用範囲 | リソース単位(例: EC2インスタンス、RDS) | サブネット単位 |
ステートフル/ステートレス | ステートフル | ステートレス |
ルールの種類 | 許可(Allow)のみ | 許可(Allow)と拒否(Deny)の両方 |
トラフィック方向 | インバウンドとアウトバウンドを個別に設定 | インバウンドとアウトバウンドを個別に設定 |
適用順序 | リソースにアタッチされたすべてのルールが適用 | 数字の小さい順にルールが評価される |
ユースケース | リソース単位でのセキュリティ制御 | サブネット全体でのトラフィック制御 |
EC2
スプレッドプレイスメントグループ
1つ1つのインスタンスが別々のハードウェア上で起動する
特徴 | クラスター(Cluster) | スプレッド(Spread) | パーティション(Partition) |
---|---|---|---|
配置戦略 | 密接に配置(同一AZ内) | 異なる物理ハードウェアに分散配置 | パーティション単位で異なるラックに配置 |
主な目的 | 高パフォーマンス | 高可用性 | 障害の影響を隔離 |
最大インスタンス数 | 制限なし | 各AZで最大7インスタンス | パーティションごとに複数配置可能 |
適用例 | HPC、ビッグデータ、マルチキャストアプリ | ミッションクリティカルなアプリケーション | 分散ストレージ、大規模データ処理 |
障害の影響範囲 | AZ内の全インスタンスに影響 | 個々のインスタンスのみ | パーティション単位で影響 |
ネットワーク性能 | 高性能(低レイテンシー、高帯域幅) | 標準的なネットワーク性能 | 標準的なネットワーク性能 |
停止と再起動
- 停止してから起動すると別のハードウェアで起動する
- 再起動の場合は同じハードウェアで起動する
AZの変更
作成時に決まり変更できない
変更する場合は変更したいEC2からAMIを作成し起動する必要がある
ユーザデータ
EC2インスタンスの初回起動時に実行されるスクリプトやコマンドを指定するための設定。
これを活用することで、インスタンスのプロビジョニングや初期設定を自動化できる。
ネットワークACL
ステートレス(戻りの通信も書く必要がある)
Amazon EBS
高速スナップショットの復元機能
初回アクセス時におけるI/Oレイテンシーが無い
特徴 | 通常のスナップショット復元 | 高速スナップショット復元(FSR) |
---|---|---|
データアクセスのパフォーマンス | 初期アクセスで遅延が発生 | 即時フルパフォーマンス |
データ復元の仕組み | オンデマンドでS3からブロックを取得 | 事前にすべてのブロックをプリロード |
コスト | スナップショット保存料金のみ | スナップショット保存料金+FSR有効化料金 |
主なユースケース | バックアップ、アーカイブ | データベース、緊急リカバリ、パフォーマンス重視の環境 |
ボリューム変更
1.AWS CELでEBSのボリュームを変更
2.OSにマウントされたファイルシステムを(ディスク管理ツールで)拡張する
EBSボリュームの読み取り、書き込みメトリクスをに基づくアラート
CloudWatchアラームでVolumeReadBytesとVolumeWriteBytesメトリクスを使用
プロビジョンドスループットモード
一貫したスループットを保証(50MB/秒)
AWS Config
- ルールに準拠していないアクションを制御(自動修復)
- EventBridgeと連携してSNS等を経由して通知
- AWS Configルールで設定変更の監視と移動修復
- AWS Systems Manager Automationと連携して非準拠への対応(タグを付けるなど)
AWS KMS
ローテーション
自動キーローテーションは1年、短くするには手動(新しいCMKを作成する)
キーポリシーによるアクセス制御
CMKに対するアクセス制御ができる
Amazon GuardDuty
AWS および主要なサードパーティーの ML と統合脅威インテリジェンスを組み合わせて
AWS アカウント、ワークロード、およびデータを脅威から保護する
AWSマネジメントコンソールの不正アクセスを監視
UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.Bの結果を監視する
デプロイ
Immutable
ELB配下にインスタンスを追加してアップデート
Rolling with addtional batch
インスタンスを追加してアタッチとデタッチを繰り返す
CloudTrail
ファイル整合性機能
操作ログファイルの変更・削除の検査が可能となる
整合性検証を有効
CloudTrailのダイジェストファイルからハッシュ値を検証し、削除や改ざんを追跡
ログの検索
Athenaを使用してログを検索できる
AWS Systems Manager
Session Manager
- EC2やオンプレサーバにSSH接続やPowerShell接続ができる
- EC2インスタンス上でのssm:StartSessionアクションを許可する必要がある
- SSM Agentのインストールが必要
アクセス権
Systems Managerに対するアクセス権をIAMインスタンスプロファイルをEC2にアタッチすることでSystems ManagerからEC2にアクセス可能となる
Cost Explorer
コスト配分用のユーザ定義タグを、コスト配分タグとしてアクティブ化することでタグ別に利用料金を把握できる
AWC CLI
MFA
get-session tokenコマンドで一時的な認証情報を使用することをユーザに要求する
AWS GuardDuty
AWSアカウントのセキュリティ状況をモニタリング、通知する
Egress-Onlyインターネットゲートウェイ
VPCからインターネット通信のみ可能となる
AutoScaling
ソースIPの確認
ソースIPの情報は、ELBのログを確認する
Route53を使ったフェイルオーバー
ALBをCloud Watchで監視するヘルスチェックを利用して、Route53フェイルオーバーを構成する
ヘルスチェックが失敗したい際に警告
UnHealthyHostCountメトリクスでCluodWachアラームを作成、0より大きいときにSNS通知を送信する
Billing and Cost Manager
請求額の閾値を超える際に、アラームを送る
課金アラートを有効→CloudWatchで課金アラームをセット→SNSメッセージを発行
VPCフローログ
拒否、許可、すべてから選択して設定。
一度設定すると変更不可。(新しいフィルタを作成する必要がある)
EC2
基本モニタリング(Standard Monitoring)
概要:デフォルトで有効化されるモニタリング機能。
特徴:5分間隔でメトリクスを収集。無料で利用可能。
取得可能なメトリクス例:
CPU使用率(CPUUtilization)
ネットワークの入出力(NetworkIn、NetworkOut)
ディスクの読み書き(DiskReadBytes、DiskWriteBytes)
詳細モニタリング(Detailed Monitoring)
概要:より高頻度(1分間隔)でメトリクスを収集するオプション。
特徴:詳細なリアルタイムモニタリングが可能。
有料(EC2インスタンスのタイプやリージョンにより料金が異なる)。
主なユースケース:
高トラフィックアプリケーションのパフォーマンス監視。
自動スケーリングポリシーの迅速なトリガー設定。
AWS Cost and Usage Report
AWSで発生するコストとリソースの使用状況を詳細に追跡し、分析するためのレポート。AWSアカウント全体のコスト管理において、最も包括的で詳細なデータを提供する。
Amazon Macie
AWSが提供するデータ保護とプライバシーの管理を支援するサービス。主にAmazon S3に保存されているデータのスキャンを行い、機密情報(PIIやクレジットカード情報など)の検出、モニタリング、保護を自動化する。
Amazon GuardDuty
AWSが提供する脅威検出サービスです。AWS環境全体を継続的にモニタリングし、不正アクセスや悪意のある行動など、セキュリティリスクを検出する。GuardDutyは、インフラ管理を必要としない完全マネージド型の脅威インテリジェンスサービス。
GuardDutyは以下のデータソースを分析する:
- VPCフローログ: ネットワークトラフィックのログ。
- DNSクエリログ: 不審なドメイン名へのクエリを検出。
- AWS CloudTrailイベントログ: AWS APIコールやアカウント操作のログ。
AWS PrivateLink
同一リージョン内のみ
NATゲートウェイ
特徴 | インターネットゲートウェイ(IGW) | NATゲートウェイ |
---|---|---|
通信方向 | 双方向通信(インバウンドとアウトバウンド) | アウトバウンド通信のみ |
サブネットタイプ | パブリックサブネット | プライベートサブネット |
リソースのIP | パブリックIPまたはElastic IPが必要 | プライベートIPのみでOK |
セキュリティ | インターネットから直接アクセス可能 | インターネットから直接アクセス不可 |
主な用途 | 公開ウェブサーバーやインターネットアクセスが必要なリソース | プライベートなデータベースやアプリケーションサーバーのアウトバウンド通信 |
ルートテーブル設定例 | 0.0.0.0/0 → IGW |
0.0.0.0/0 → NATゲートウェイ |
AWS Systems Manager
ssm:StartSession
AWS Systems Manager(SSM)Session Manager を利用して、EC2インスタンスやオンプレミスのサーバーへのリモートセッションを開始するためのアクション。このアクションを許可することで、ユーザーまたはシステムはSession Managerを使用して対象のリソースに接続できる。
SSMManagedInstanceCore
AWS Identity and Access Management (IAM) ポリシーの1つで、AWS Systems Manager (SSM) のマネージドインスタンスとして EC2 インスタンスやオンプレミスサーバーを登録・操作するために必要なアクセス権を提供する。
EC2にアクセス
- EC2にSSMエージェントをインストール
- EC2からSystems Managerにアクセスするネットワーク疎通や権限(IAMインスタンスプロファイル)が必要
AMI
起動設定と起動テンプレートの違い
項目 | 起動設定 | 起動テンプレート |
---|---|---|
変更の柔軟性 | 変更不可(再作成必要) | 変更可能(バージョン管理) |
設定の詳細 | 基本設定のみ | 高度な設定も可能 |
AMIの指定 | 1つのみ | 複数のAMIも選択可能 |
使用例 | レガシーなAuto Scaling用 | モダンなAWSリソース全般 |
Discussion