AWS Certified Solutions Architect – Associate Memo
AWS AWS 助理解决方案架构师认证 学习笔记汇总
to be continued..
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)
プライマリデータはオンプレに格納。データ全体が低レイテンシーアクセス可能。