無事に合格しました!
SAA試験対策 メモ
ワンポイント
S3
・デフォルト設定でパフォーマンスの最大化が可能
・CORS(Cross-Origin Resource Sharing)
別サーバのドメインに対して共有できるようにすること。
→Ajax通信を使用したアプリケーションの構築が可能
・特定のIPアドレスからのアクセスはIAMロールで設定。SGでの制御はできない!
・S3は書き込み後の読み取りの強い整合性モデルを利用しているため、反映に誤差が生じることはありません。
・デフォルトで高可用性であり1つのAZに依存していない
・S3のクロスリージョンレプリケーションとはS3のオブジェクトを別リージョンのバケットに自動複製するサービス。
オブジェクトの登録と同時に実行される。バージョニングが有効化されている必要あり。
・サーバーサイドの暗号化はSSE-S3(暗号化方式はAES-256)。
暗号化、復号化は自動。暗号化キーの管理に手間がかからない。
バケットの暗号化によりログの暗号化も自動で実行される。
・Access Analyzerで不正アクセスの確認、アクセス権限の最小化構成のモニタリングが可能
・ストレージクラス分析で適切なデータをいつ適切なストレージクラスに移行するかを判断可能
・全てのデータに対するパブリックアクセスを拒否する場合、S3パブリックアクセス設定機能でブロックを有効化する
・Amazon S3のパフォーマンスを最大化することができる設定
『日付ベースの順次命名を使用してオブジェクトを保存すること』でアクセス時のパフォーマンスを最大化。
・S3 イベント通知
SNS、SQS、Lambda
・マルチアップロード
CLIでaws s3 cpコマンド
ストレージクラス
・S3 Standard
標準。アクセス頻度の高いデータ向け
・S3 Intelligent-Tiering
アクセスパターンが不明または変化するデータに対して自動的にコストを削減する。
低頻度アクセスのオブジェクトを自動的に低頻度アクセス層に移動できる
・S3 Standard-Infrequent Access (S3 Standard-IA)
Infrequency Access=まれなアクセス
低頻度アクセス用のストリームタイプ
IAは標準とOne-zoneの2つがありますが、重要なデータは標準IAを利用することになります。
1Zoneは永続性なし。
S3 Glacier
アーカイブ最大容量250MB
データ取得時間
迅速 - 1~5分
標準 - 3~5時間
大容量 - 5~12時間
※Glacier Deep Archive
標準 - ~12時間
大容量 - ~48時間
データ保持期間
最低 - 90日
Amazon Athena
データ解析が最も容易にコスト最適に実現。サーバレス。
Amazon S3 から直接データに対してSQLクエリ処理が可能
CloudFront
ウェブアプリケーションのコンテンツ配信処理を向上させる
ALIASコード
*S3との連携がポイント!HTTPベース
Amazon S3 Transfer AccelerationでクライアントとS3の間で長距離にわたるファイル転送を高速・簡単・安全に行う。
Transfer AccelerationはCroudFrontのエッジロケーションを利用
CloudFrontのディストリビューションにWAFで作成したWEB ACL(WAFの設定の塊)を関連づけることでアクセス制御が可能
× CroudFrontにおけるReferer制限を実施する
○ AWS WAFでRefererによって制御する。
オリジンアクセスアイデンティティ (OAI) と呼ばれる特別な CloudFront ユーザーを作成してアクセス制限が可能
・コストはトラフィックの分散地域、リクエスト数、データ転送アウトにかかる
・AWS Global Accelerator
1 つ以上の AWS リージョンで実行されているアプリケーションにエッジでパケットをプロキシすることにより、
TCP または UDP を介した幅広いアプリケーションのパフォーマンスを向上させます。
アプリケーションをエッジロケーションで実行。CDNのアプリケーション版。
Amazon EKS
Amazon Elastic Kubernetes Service (Amazon EKS) は、フルマネージド型の Kubernetes サービスです。
Amazon ECSはKubernetes を利用していません
Amazon ECS
Amazon Elastic Container Service (ECS) は、非常にスケーラブルで高性能なコンテナ管理サービスで、Docker コンテナのみ対応。Dockerコンテナサービスです。
AWS Fargate
Amazon ECS と Amazon EKS の両方で動作するフルマネージドサービス(サーバレス)。
管理はAWS側となるため、ユーザーでは不要。
Lambda
最大一時実行ボリューム 512MB
デフォルトアイムアウト時間3秒。最大実行時間は15分
APIゲートウェイはURL(APIエンドポイント)を用意できる
環境変数によって、機密情報を保存できる。
SQS
・メッセージサイズ
最大 - 256KB
※拡張クライアントライブラリを利用すると最大2GBまで
・メッセージ保存期間
デフォルト - 4日
最小 - 60秒
最大 - 14日
優先度の設定が可能
Auto Scalingトリガーを構成する場合はSQSのキューサイズを確認する
・メッセージ上限数
無制限
・可視性タイムアウト
重複を無くすことができる。
EBS
・DLM(Data Lifecycle Manager)を使用すると定時バックアップが可能
EBS自体には、SnapShotのライフサイクル機能、レプリケーションという機能はない
・バックアップは最初はフルバックアップでその後は増分バックアップ
・プロビジョンドIOPSのみ複数のEC2インスタンスをアタッチできる(2020/02~)何百は無理。
・アクセス頻度の低いが大切なデータの保存のストレージにはEBSのコールドHDDを選択
・レガシーアプリの独自のファイルシステムも対応可能。
Amazon KMS
AWS Key Management Service (KMS) を使用することで、キーを簡単に作成・管理し、幅広い AWS のサービスやアプリケーションで暗号化の使用を制御できるようになります。EBSに対応しており、KMSによりEBSに保存されたデータを暗号化することができます。
S3 における暗号化方式
SSE-S3・・・Amazon S3 がキーを管理。キーは定期的に更新される。(暗号化方式はAES-256)
SSE-KMS・・・ユーザがKMSでキーを生成して管理。
SSE-C・・・ユーザーがキーを準備し管理。
AWS CloudHSM
EUなどの各国の厳しいセキュリティ基準を満たす。
RDS
・マルチAZ配置を有効化することでDBインスタンスの高可用性及びフェイルオーバーサポートを提供
※RedshiftはマルチAZ構成は不可
・自動的にバックアップを取得しS3に保存
・スナップショットを元にDBインスタンスを作成してリストアが可能。データ復旧、災害対策、システム拡張に利用できる。
・フェールオーバーするとDBインスタンスのCNAMEレコードを自動で切り替える
・RDS Proxy(プロキシ)がアプリ(lambdaとか)とRDSを仲介する
LambdaをRDSと連携させたいときに利用。利用しないとデータセッションを効率的に継続できない
・RDSの拡張モニタリングを有効化するとCPUの使用率がCloudWatchLogsで表示できる
・シャーディングが可能
・データベースの暗号化はサーバサイド暗号化を有効にする。
・RDS のPostgreSQLはAuroraに比較すると性能が劣る(RDS PostgreSQL<Aurora)
・Storage Auto Scaling 可能。
AWS Secrets Manager
パスワード保存に使用。パスワードの自動ローテションも可能。
Redshift
・Redshiftを暗号化する。
AWS KMS と HSM
・WLM(Work Load Management)
Redshiftのクエリ処理に対して割り当てるRedshiftのリソースを指定する機能。RedshiftのSQSみたいなもの。
DynamoDB
・メタデータ・ユーザー設定・セッションデータや一連のストリームデータを蓄積することでビッグデータ解析に利用できる。シームレス。フルマネージドサービス。強力な整合性。集中管理。
・DynamoDBストリームの有効化により、イベントによるLambda関数起動などが可能(※DynamoDBイベントという機能は無い)S3内は解析不可。
・DynamoDB Accelerator(DAX)はコスト高い!リードレプリカを増設する際はDAXを有効化する必要がある
・Auto Scaling可能
・グローバルセカンダリインデックス
テーブルとはパーティションキー または パーティション/ソートキーが異なるインデックス。
・ローカルセカンダリインデックス
テーブルとパーティションキーは同じですが、ソートキーが異なるインデックス
CloudWatch
CloudWatchエージェントのインストールによりEC2とオンプレミスサーバーのログの詳細なログを収集し、CloudWatchLogsで取得したログを集約できる。
・カスタムメトリックス・・・メモリ使用率
CloudFormation
テンプレート
例)
NetworkACL
RuleNumber:100
RuleAction:allow
Egress:true ※アウトバウンドトラフィック設定。falseだとインバウンド。
・・・
(以下略)
※port番号
80/HTTP
20/FTP
22/SSH
3389/TCP&UDP リモートデスクトップ接続
・CloudFormation スタックセット
複数の AWS アカウントやリージョンにリソースを展開
・CloudFormationドリフト
リソースとCloudFormationテンプレートの内容に乖離があることをドリフトという。
Amazon EMR
Amazon EMR は、オープンソースのフレームワークである Apache Spark と Hadoop を使用して、膨大な量のデータを迅速かつコスト効率よく処理して分析するサービス。
活用例:マシーンラーニング、データ抽出、変換、読み込み (ETL)、ストリーム分析、リアルタイムストリーミングデータ蓄積、
インタラクティブ分析(チャート表示など)、ゲノミクス(ゲノム、遺伝子研究のための分析)
ElastiCache
RDSなどのDB(NoSQL型)の読み込み処理を高速化する
可用性、性能は、Memcached < Redis
Redisは静的コンテンツはキャッシュできない。
AWS Elastic Beanstalk
Dockerの仕組みを利用して構成したアプリケーションを展開する
アプリケーションのバージョン管理や状態の監視の詳細を自動化する。運用ダッシュボードとLinux OSのバッチ配布も可能。
ウェブアプリケーションやワーカー環境の構築に利用される
RDSと長時間実行ワーカーに適している。
AWS STS
高セキュリティ。AWSセキュリティトークンサービス(AWS STS)を使用して、信頼されたユーザーを作成し、AWSリソースへのアクセスを制御できる一時的なセキュリティ認証情報を提供することが可能。 一時的な認証情報は、「アクセスキー」と「シークレットアクセスキー」、「セッショントークン」の3つから成立。OpenID Connect互換は、ウェブ ID フェデレーション(ID連携)によるアクセス認証。
Amazon SES
・SNSでもメール通知は可能ですが、特定IAMユーザーへのメール通知に向いており、不特定多数の一般ユーザーへのメール通知にはSESを利用する。
ウェブ ID フェデレーション(ID連携)
必要に応じて一時的な AWS セキュリティ認証情報を動的に要求するようにアプリを構築します。提供される一時的な認証情報は、モバイルアプリケーションで必要とされるタスクの実行に必要なアクセス許可のみを持つ AWS ロールにマッピングされます。
AWS Storage Gateway
オンプレミスから実質無制限のクラウドストレージへのアクセスを提供するハイブリッドクラウドストレージサービス
iSCSI、SMB、NFS
・Amazon S3 ファイルゲートウェイ
NFSやSMBプロトコルを使用して、S3 でオブジェクトの保存と取得を実行。
・Amazon FSx ファイルゲートウェイ
SMB プロトコルを使用して Amazon FSx for Windows ファイルサーバーでファイルを保存および取得
AD統合可能。
・ボリュームゲートウェイ
>キャッシュ型ボリュームゲートウェイ(iSCSI)
プライマリデータはS3に格納。アクセス頻度の高いデータはローカルにキャッシュする。
>保管型ボリュームゲートウェイ(iSCSI)
プライマリデータはオンプレに格納。データ全体が低レイテンシーアクセス可能。
用語集
・RedShiftの拡張VPCルーティング
インターネットを介さず、VPC内の全てのデータ移動のトラフィック制御・モニタリングが可能
・プレイスメントグループ
単一のAZ内のEC2間の通信を高速化。拡張ネットワーキングを選択する必要アリ。
・Amazon FSx for Windows
ファイルシステムあたり最大2GB/秒のスループット、数百万のIOPS、一貫したミリ秒未満のレイテンシーという高速パフォーマンスが可能な高性能なストレージ。SMBプロトコルで転送を行う。AD統合可能。DFSRをサポート。
HPC(ハイパフォーマンスコンピューティング)→Amazon FSx for Lustre
・Amazon EFS
NFSv4プロトコル。POSIX準拠。
・AWS Storage Gateway
オンプレミスアプリケーションによる AWS クラウドストレージのシームレスな使用を可能にするハイブリッドストレージサービス
NFS、SMB、iSCSI などの標準ストレージプロトコルを使用
・AWS Cognito
Webアプリの認証許可、MFA、ユーザー管理をサポート
・AWS Certificate manager(ACM)
SSL証明書を集中管理する
・AWS DataPipeline
定期的なデータ移動やデータ処理といったアクティビティのスケジュールを簡単に設定できるウェブサービス
・Snowball Edge Storage Optimized
AWSとオンプレミス間でのデータ転送。利用可能な領域ー80TB
・Aurora Serverless (サーバレス)
Aurora 用のオンデマンドの Auto Scaling 設定。アプリケーションの使用状況に合わせて自動的に起動・シャットダウンを行う
・カスタマーゲートウェイ
オンプレミス環境とのサイト間VPN接続を利用して、AWSとを接続する際に利用する(カスタマーゲートウェイに静的ルートテーブルを構成)
・AWS Transit Gateway
VPCが増えたらこちらを使用する。ネットワーク間の連携・管理を効率化する。
・SAML(Security Assertion Markup Language)
ユーザー情報を一元管理するActiveDirectoryやクラウドサービスとの連携、シングルサインオンを実現
・AWS CloudTrail
ユーザーのアクティビティ、APIコールのログの取得。AWSアカウントのガバナンス・コンプライアンス・運用監査・リスク監査に利用する。
S3とCloudwatchLogsに配信。すべてのリージョンの証跡を有効可能。IAMを含めるにはグローバルで作成する必要あり。
・AWS Config
AWS リソースの設定を評価、監査、審査できる構成管理のサービス。AWS ConfigはEC2インスタンスのログは取得できません。
・VPCフローログ
EC2インスタンスとネットワークインターフェイスとの間で行き来する IP トラフィック情報をキャプチャできる。このデータをCloudWacthlogs またはS3に発行可能。
・AWS Step Functions
個々のサーバーレスの関数(Lambda、SQSなど)を簡単につないでプロセス処理を実行するアプリケーションを構築する。人間による操作を必要とするような半自動化されたワークフローの作成が可能。SWFは古い。
・AWS Trusted Advisor
AWS Trusted AdvisorはAWS 環境を最適化することで、コスト削減、パフォーマンスの向上、セキュリティの向上に役立つオンラインリソースです。
・Amazon Inspector
自動化されたセキュリティ評価サービス
・パイロットライト
利用可能であるアプリケーションの最小バージョンを準備しておくこと。DBは継続し、残りはAMIやCloud Formationを使用する。
・Route Origin Authorization (ROA)
既存のホワイトリストを移行
・AWS AppSync
ビッグデータ解析処理(リアルタイム分析、ランキング処理)
・AWS SAM
サーバーレスアプリケーション構築用のデプロイツール
・AWS Shield
マネージド型のDDoS攻撃に対する保護サービス
・AWS Server Migration Service (SMS)
オンプレミスワークロードを従来よりも簡単に、かつ短時間で AWS に移行できるエージェントレスサービス
・AWS Database Migration Service(DMS)
データベースの移行ツール
・AWS DataSync
既存のストレージからEFS,S3,FSxへのデータ移行を効率的に実施
・拡張ネットワーキング
複数のリージョン間の通信向上。HVM AMIが必要。
・AWS Directory Service
マネージド型ADを作成する。IT管理も減る。
どっちか迷う問題
S3へのアクセス制御
※バケット‥オブジェクトの保存場所
オブジェクト‥ファイル
トラフィック制御
・セキュリティグループ
インスタンス間。ステートフル。
デフォルトはインは許可しない。アウトは許可。
グループに関連付けられているインスタンス間は通信可能。
ルールの許可のみ可能。
全てのルールがすぐに適用
・ACL
サブネット間 自動化。ステートレス。
ルールの許可と拒否が可能。
ルールは順番通りに適用
Cloud formation
容易 YAMLファイルまたはJSONファイル
Opsworks
ムズイ。異なるレイヤーを用意するのに相応しい。ChefレシピやPuppetを利用した環境構築が可能
署名付きURL
署名付きURLを利用する場合は、現在のオブジェクトURLが変更される
署名付きcookie
現在のオブジェクトURLを変更したくない
Amazon Kinesis
・Streams
ストリームデータ処理用を収集し、リアルタイム処理するサービス
Lambda統合し、データ処理可能。
・Firehose
Lambdaを組み込み、データ変換可能。
ストリーミングデータをキャプチャして変換しつつ、Amazon S3、Amazon Redshiftに保存するサービス。
DynamoDBに配信することはできません。
・Analytics
SQL使用して、ストリーミングデータの分析、実用的なインサイトの取得やリアルタイムなデータ処理対応を実施
DNSレコード
・CNAME
ドメインを別のドメインにマッピング!DBを自動的にセカンダリDBに切り替える。自動フェールオーバー。
・A (Address)
IPv4アドレスとドメインをマッピング。グローバルIPアドレスの関連づけを定義するレコード
・AAAA レコード
IPv6アドレスとドメインをマッピング。
・ALIAS
AWSサービスと連携(S3バケット、CloudFront、ELB、Elastic Beanstalk)のエンドポイントのIPアドレスを返答
物理対応可能なインスタンス
・エイリアスコードを用いてZone Apex(頂上)を設定できる。
ハードウェア専有インスタンス
同じAWSアカウントのインスタンスとはHWを共有する可能性がある物理サーバー
Dedicated Host
完全に1アカウントのユーザー専用として利用できる物理サーバー
VPCエンドポイント
・ゲートウェイ型
特殊なルーティングを設定し、VPC 内部から直接外のサービスと通信する
対象サービス…S3/DynamoDB
・プライベートリンク型
サブネットにエンドポイント用のプライベート IPアドレスを生成し、DNSが名前解決でルーティングする。
RDSはない。
リザーブド購入
EFSとS3にはリザーブド購入方式はありません。
・EC2リザーブドインスタンス
・RDSリザーブドインスタンス
・ElastiCacheリザーブドキャッシュノード
・DynamoDBリザーブドキャパシティ
・Redshiftリザーブドノード
スポットインスタンス
・永続的 : スポットリクエストをキャンセルしてからインスタンス終了。
・それ以外: インスタンス終了のみ
メモ
VPC内のEC2インスタンスにアクセスできない要因
VPCのDNS hostnamesオプションが有効化されていない
IGW(インターネットゲートウェイ)がサブネットに設定されていない
パブリックIPアドレスが付与されていない
ネットワークACLの設定でインターネットアクセス許可がない
SG(セキュリティグループ)の設定でインターネットアクセス許可がない nat-gateway-diagram.png
本番環境のインスタンス削除防止法
1.開発者向けのアカウントを作成
2.インスタンスにタグを付与
3.開発環境とのVPCを分割
NATゲートウェイ
IPv4
Egee-Onlyゲートウェイ
IPv6
ALB レイヤー7 (HTPPS、HTTP)
NLB レイヤー4(UDP)