23
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Solution Archietct Professional 自分まとめ[合格]

Last updated at Posted at 2019-10-23

以下の内容で85%で合格
image.png
image.png

セキュリティ・認証系

CloudFront

署名付きURL

CloudFrontの署名つきURLを発行して、S3への直接アクセスを防ぐ
S3署名つきURLを発行して、他のユーザーからのアクセスを削除する。

地域制限

CloudFrontのGeo-Restrictionで国単位でのアクセス制限をかける。

OAI

S3でCFrontディストリビューションを経由してアクセスさせたい場合はOAIを使って、オリジンアクセスIDを許可し、S3 URLを使ってのアクセスを削除する
また、セキュリティを強化する場合は、信頼された署名者(AWSアカウント)による署名つきURLを発行する

証明書の配置

ViewerーCloudFrontーオリジン

Viewer-CFront間は、自己証明でもいいし、CA証明でもいい
CFront-オリジン間は、CA証明でなければならない。

ストリーミングはダウンロードオプションを用いる。

CDNとしての機能もあるので、動的コンテンツも対象になる。

オリジンへのTCP接続

クエリ文字列の転送を有効、TTLを0にしておくと常時接続

GuardDuty

VPCフローログおよびCloudTrailイベントログを分析および処理する継続的なセキュリティモニタリングサービス

KMS

KMSマスターキーとS3暗号化クライアントを使用して、クライアント側でデータを保護することもできる。

証明書(X.509証明書)を使って接続の際の認証を行いたい、しかもインスタンスごとに一意に

→インスタンス起動時にSNSでKMSに送信する。KMSで署名付き証明書を生成し、新しく起動したインスタンスに直接送信する。

※KMSはサービスをポーリング(見張る)する機能はない。

CloudFrontを用いた暗号化

KMSを使用してソースデータを復号化し、結果の出力を暗号化する。

また、OAIを使うので、コンテンツはS3 URLではなく、CFを介してのみ提供される。

個別管理

S3へのアクセスなどで個々のユーザーが、個々の暗号化キーにアクセスするためには、、、
・KMS管理のキーによるサーバ側暗号化を使用し、個別のCMKを作成し、キーポリシーを使用してアクセスを制御する。
・顧客のCMKを使用し、CloudHSMインスタンスを使用してキーを管理する。CloudHSMクライアントソフトで生成されるキーへのアクセスを制御する。

IAM

監査

監査人がAWSに入って確認したいとき、サードパーティツールがあるときは、クロスアカウント用のIAMロールを作成して、サードパーティツールがロールを引き受ける。

IAMロールを参照するには、インスタンスプロファイルからロールを参照する。あくまでEC2は資格情報を保持しない。
IAMロールをEC2にアタッチするとインスタンスメタデータから一時的なセキュリティ認証情報を取得する。

APIアクセス時に認証する場合

・インスタンス起動時にIAMロールを指定
・実行中または停止中にロールをアタッチする
・ロールを引き受けた後で、アプリで使用できるAPIを定義
・一時的な認証情報セットを取得して使用

オンプレ認証連携

オンプレのADで認証を一元化したい場合
・ADフェデレーションサービスなどのSAMLベースのIDプロバイダーと連携するためのIDプロバイダーを構築
・STSを使用して一時トークンを生成
・SSOエンドポイントをセットアップ
・IDプロバイダーを信頼できるエンティティとして識別するIAMロールを作成

具体的なUC

①アプリはLDAPに対して認証を行い、ユーザーに関連づけられたIAMロールの名前を取得する。次にアプリはIAMのSTSを呼び出して、そのIAMロールを引き継ぐ。アプリは一時視覚情報を使用して適切なS3バケットにアクセスする。

②LDAPに関して認証を行い、IAMのSTSを呼び出して、IAMフェデレーションされたユーザー資格情報を取得するIDブローカーを開発、アプリはIDブローカーを呼び出して適切なS3バケットにアクセスできるIAMフェデレーションユーザー資格情報を取得する。

※LDAP認証情報を使ってIAMログインはできない。

OpenIDによる認証連携

Webアイデンティティプロバイダを活用して、STSのAssumeRoleWithWebIdentityを利用して一時的な認証情報を生成する。そのWebプロバイダーのIAMロールを作成して、IAMロールのアクセス許可を設定し、S3へのGETやDynamoDBへのPUTなどを許可する。
※Cognitoを認証に利用しても良い。

S3

CORS(クロスオリジンリソース共有)

S3で別のドメインからアクセスがありファイルが引っ張ってこれないときはこれを疑う。

S3バケットの公開阻止

・PutObject呼び出しを行う
・S3がCloudTrailにログを刻むとともにCloudWatchEventsに通知
・Lambdaで蓋をする
※S3ログの監視だと1min以上かかる場合があるのでダメ
※Trusted Advisorはリアルタイムアラートは提供していないのでダメ

特定のユーザーに特定の時間だけS3にアクセスさせるには署名済みURLを利用する。

暗号化種類

SSE-S3:各オブジェクトが一意のキーで暗号化される、定期的にローテーションするマスターキーを使用してキー自体を暗号化する。
SSE-KMS:CMKマスターキーを管理する。いつ、誰によってキーが使用されたかの監査証跡も残る

AWS Config

### リソースポリシーの監視

:point_up:AWS ConfigでConfigカスタムルールをLambdaと関連づけ作成・変更・削除を継続的に評価

:point_up:CloudWatch Eventsのリアルタイムストリーム機能で検知して、Lambdaで直す。

証明書

SSL証明書を隔離したい場合、IAMもしくはCertificate Managerに配置し、アクセス制限を行う。
例:開発者はEC2の権限のみ、セキュリティ管理者はIAMやCMの権限を付与し、ELBでSSL終端する。

クライアント証明書

ELBは対応していないので、TCP/443で素通してWebサーバで解決
ELBを使わず、WebサーバにEIPをつけて解決させる方法もある。

SSL証明書

独自ドメインの場合はカスタムSSL証明書→IAMとかSCMで管理する

Systems Manager

コンテナ(ECS)内DBへのアクセスは、機密情報をSystems ManagerのParameter Storeもしくは、Secrets Managerを利用する。
ライフサイクル管理とキーローテーションが必要な場合は、Secrets Managerを使う。(SMのParameter Storeはそんな機能はない)

CloudHSM

CloudHSMを利用して、秘密鍵を保存し、SSLトランザクションを実行する。
また、アプリログはS3に暗号化されたログを蓄積することで秘匿性を守る。

EFS

EFSの暗号化

保存データの暗号化:EFS作成時

転送データの暗号化:EC2マウントされてる時

マウントターゲットはマウント前に作成する必要がある(当然)

EFSマウントヘルパーを使用してEC2にマウントする

・EFSファイルシステムID
・EFSマウントターゲット
・EC2
・EFSマウントヘルパー(ユーティリティを使用する場合は -o tlsの暗号化オプションを追加する)

AWS Shield

:point_up:CloudFront、Route53を使用するとメリットあり

WAF

:point_up:CloudFront、ALBと連携

モバイル認証

Cognitoを利用するか、WebIdPとやりとりするカスタムコードもしくはアプリを作成し、AssumeRoleWithWebIdentityを呼び出すことで認証を実現できる。

ネットワーク系

VPC内Lambda

Lambdaがインターネットアクセスが必要な場合、NATGWなどを利用する。
また、LambdaのSGのアウトバウンド設定にInternet向けが許可されているかを確認する。

CloudFront

配信系でデータの読み込みが遅い場合には、CloudFrontと静的コンテンツS3とインメモリキャッシュのECacheを用いるのが良い。
CloudFrontはDBクエリはキャッシュできない。

CloudHub

複数のAWS Site-to-Site VPN接続がある場合は、CloudHubを利用して、安全なサイト間通信を提供する
VPCの有無にかかわらず使用できるハブアンドスポークモデルで動作する。
複数のCGWを使ってVGWを作成する必要がある。
CGWの一位のBGP自律システム番号 (ASN)を使用する必要がある。
CGWは適切なルートをそのSite-to-SIte接続にアドバタイズする。
これらのルーティングアドバタイズが受信され、各BGPピアに再アドバタイズされることでサイト間でのデータ送受信が可能になる。
サイト間でIPが重複することは許されない。

VPC

1つのVPCに仮想プライベートゲートウェイは1つまで

VPN

DX +
各VPCのVGWでVPNトンネルを終了し、ルート管理用にBGPを設定

Route53

:point_up:VPC間でプライベートDNSを共有するには、共有VPCでRoute53のプライベートホストゾーンを関連づけ、各VPCと共有VPCをピアリングし、プログラム的に関連づける。

ELB

クライアントのIPを知るにはELBのProxyProtocol機能を用いる

各エンドポイント

ゲートウェイエンドポイント:S3,Dynamo
インターフェイスエンドポイント:EC2、ELBなど

プレイスメントグループ

プレイスメントグループと制御用EC2のネットワーク速度を改善したい
→いっそのこと、プレイスメントグループに制御用EC2も入れちゃう。

DirectConnect

インターネットからもオンプレからもアクセスしたいEC2がある時

→デフォルトルートをIGWにしておいて、DXのCGWでBGPを介してオンプレのスタティックルートを伝播する。

オンプレからS3などにアクセスしたい時、パブリックインタフェースを作成して、BGPを既存のルーティングに再配布する。NWの特定のルートをAWSにアドバタイズする。

BGPは「最適パス」で動作する

プロキシサーバ

特定のURL以外のアウトバウンド接続を拒否りたい時

DX Gateway

TransitVPC

VPCがハブとなって、オンプレミス群を管理する。

TransitGW

運用・コスト系

CloudWatch

CloudWatchログストリーム

単一のログストリームに複数のエージェントからログを送信することはできない。

アラーム

サポート範囲の確認
Auto Scaling起動設定に通知してスケールアップできない。

Service Catalog

エンドユーザーがデプロイできるものを制御する。

CloudFormation

:point_up:定期的にCFormationをメンテナンスしながら、環境を最新に保っておきたい時

CloudFormationとSystems Manager Parameter Storeを使用してテンプレートの最新のAMI IDを取得する。EC2を更新する場合は、CloudFormationテンプレートのupdate-stack APIを呼び出す。

Cloud Formationで作ったリソースの更新

Systems Manager Parameter Storeを使い、テンプレートの最新AMI IDを取得
CloudFormationでupdate-stack-APIを呼び出して更新する
ただし、別個に作ったリソースがネットワークに乗っかっている場合、サブネットの削除などのネットワークスタックの更新が失敗する。

別リージョンや別アカウントに環境を複製したい場合(DRとかではなく、単なるコピー)

CFormationのStackSetsを利用(リソースセクションでアプリの詳細を記述)して、アプリを他のリージョンにデプロイするスタックインスタンスを起動する。

EC2のユーザーデータを使うとアプリの展開と構成を自動化できる。

インプレースデプロイ

Blue/Greenとは違い、稼働中の環境にデプロイを仕掛けていく。

数十TB級のデータは、移行日が何週間かになっていればSnowballを使う。
また、移行時に入れたデータからの差分はVPN経由でオンプレからレプリケーションしてくる。

エンドポイント監視方法(Route53ヘルスチェック)

エンドポイントが2XXもしくは3XX系を返すことを確認する

特定のテキストがレスポンスの最初の5120バイト内に出現しているか確認する

:point_up:コールセンターの構築

Connect(クラウド型のコールセンター)

Lex(対話型で発信者の意図を認識する)

Lambda(関連サービスとの統合)

継続的デリバリー

CodePipelineとCodeCommitを使った組み合わせ

別のパイプラインを生成する

Codebuildで単体テストを行う

CodeDeployを使ってS3などに入っているコードをデプロイする

AWS Config

リソースの設定を継続的に監視および記録する

AWS Config Managed Rule
これで、承認済みのAMIを使用しているかなど監視する。

OpsWorks

OpsWorksの自動修復機能を利用して、障害発生時にすぐに再起動するようにする。
OpsWorks Stackでは起動中に最新の更新を行う。
→ライフサイクルイベントはインスタンス(AMI)そのものではなく、インスタンス内でのタスク実行

OpsWorksで立てたリソースのパッチ更新
・新しいインスタンスを起動して、現在のインスタンスと置き換える(新しいインスタンスには最新のセキュリティパッチが入っている)
・Linuxベースの古いインスタンスでは、Update Dependenciesスタックコマンドを実行する

DevOpsの構築

OpsWorksのスタック、レイヤー、インスタンスを構成

CodepipelineでソースをS3バケットとして、選択→アプリのzipファイル化

Opsworksスタックを展開プロバイダとして設定、アプリをスタックに自動でデプロイ

CloudFormation

RDSとS3をCFormationで作成したあと、いつでもデータを使用できるようにしたい時
DeletionPolicyについて
RDSをsnapshot、S3をretainにしておく。
RDSにアクセスを常にしたい場合はretain。

EFS

サーバが大量にあり、データの中身が急速に変化する場合は、EFSを用いる(S3ではなく)
また、EFSはオンプレとAWSの間でリソースを共有できる。

Systems Manager

Systems ManagerのState Managerは大規模サーバの一括構成管理に向いている。

パッチ管理はSSMエージェントをEC2にインストールして、Systems Managerで行う。

未承認のAMIでEC2を起動しようとした際の保護と監視について

Systems ManagerのPatch ManagerでインストールOKなパッチを定義したパッチベースラインを設定する。

承認済みAMIを使用しているかどうか、AWS Configのmanaged Ruleを用い、監視し、問題があれば、通知を行うため、CloudWatchを使う。

終了させる場合はLambdaを使う

パッチ運用
・AWS-DefaultPatchBaselineを使用してパッチを決定、メンテナンスウインドウを作成
・AWS-RunPatchBaselineドキュメントを使用してパッチを適用
※パッチグループのタグは1つしかつけられない。
※メンテナンスウインドウでは破壊的なパッチ適用は行わない。スケジューリングすることができる。

Step Functions

変更に伴うデプロイなどでサーバレス環境のワークロードを自動化したい

EBS

Data Lifecycle ManagerでEBSの自動バックアップアンド鮮度維持を行う。

Lambda

バッチ処理をLambdaでやった時にスケーリングできない
→IPが足りない
→VPCにサブネットENIおよびIPがない。

AWS Limit Monitor

CloudWatch + Lambda + SNS

ビジサポ必須

CloudTrail

CloudTrailはグローバルサービスオプションを有効にすると、複数のリージョンにおける証跡を一元化することができる。

データイベント→S3オブジェクトのAPIオペレーション

管理イベント→SGの設定、ログ記録の設定、デバイスの登録などなど

:point_up:CloudTrailとCloudWatchEventsを統合して、CloudWatchEventsがアラームを起こす。

:frowning2:CloudTrail単体では不正なアクティビティは検出できない。

CloudTrailの設定

新しいS3バケットを各アカウントに設定

S3バケットへのアクセス制御のIAMロールを作成する

S3バケットへのアクセス制御のバケットポリシーを作成する

トラフィック監視

VPCに出入りするトラフィックをIPS/IDSシステムでみはる

環境内の変更を見張るにはCloudTrailとCloudWatchを使う

ログの集約

ログ管理専門のAWSアカウントでKinesis Data Streamを作成する
各アカウントからData Streamのサブスクリプションを利用してCWatch LogsからData Firehoseストリームに配信してログ管理専門アカウントのS3バケットにログを保存する。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/Subscriptions.html

Redshift

Redshiftはクロスリージョンスナップショットコピーを行うことが可能である。
移行先でマスターキーのセットアップを行う。
ただ、Multi-AZは組めない。
自動スナップショットを持つようにし、クロスリージョンスナップショットコピーを実行すれば、DRサイトに自動で複製される。

IAM

リクエスタ支払いをしたい場合、クロスアカウントアクセスは使わない。ロール作成元(ブーメラン)に料金が飛んでしまうから。

PowerUserAccess

開発者の権限管理にうってつけ。
IAM、Organizationsの権限がなく、そのほかの権限が全てあるので。

Organizations

SCPをOUに付与する際は、アカウントを1つ1つ移動していく
IAMのサービス最終アクセスデータや、CloudTrailで問題ないか確認をしておく。

認可には使用できるが、認証には使用できない。

#ストレージ系

RDS

RDSで読み取り多発の場合は、

・ストレージをプロビジョニングIOPSタイプにする
・リードレプリカを準備する
・もしくはECacheを手前に置く。

RDSで書き込み多発して、将来的に厳しい場合

・Kinesis Data StreamsとLambdaを用いてデータを取り込み処理する
・RDSからDynamoDBに移行する。

別リージョンにリードレプリカを作成することができる。

これで1つのリージョンにデータを集約させることができる。

EC2

EC2で書き込みが遅い場合は

RAID0にしてストライピング(複数のHDに同時に分散して読み書き)化を行い、性能を上げる
RAID1はミラーリングで耐障害性を上げる。
インスタンスタイプをあげてIOPSを上げる。

ハードウェア専有インスタンスを作成しても同じ物理サーバ上で作り続けられるとは限らない

スケーリングする際は、CloudWatchアラームを使用してAuto Scalingポリシーを作成する。

EBSのI/Oパフォーマンステスト

テストの前に全てのブロックを読み取り、事前にEBSが温められていることを確認する

DynamoDB

書き込み

DynamoDBで動作が遅い場合(書き込み)には、SQSキューを起動

大量の書き込み案件には、
フロントにAuto Scaling EC2、その後ろにバッファリングのためのSQS、そしてDynamoDBがベスト。

DAX

DAXのメモリキャッシュサービスを使うことにより、読み込み性能が向上する。

リザーブドキャパシティ

DynamoDBで性能を上げたい場合は、
リザーブドキャパシティを購入しておいて、割り当てると良い。

リージョン間同期

DynamoDBで複数のリージョンでデータを同期させたい時は、
Dynamoグローバルテーブルを活用し、Streamオプションを有効にしておく。

昔はDatapipelineによるLastupdated属性によるフィルターによるコピー

リージョン間同期(DR的な)

クロスリージョンレプリケーションも使える

グローバルセカンダリインデックス

パーティションキーとソートキーをもつインデックス。ベーステーブルのものとは異なる可能性がある。
全てのパーテションにまたがりベーステーブル内の全てのデータを対象とする可能性があるので、グローバルと呼ぶ。

ローカルセカンダリインデックス

パーティションキーはベーステーブルと同じだが、ソートキーが異なる。
同じパーティションキー値を持つベーステーブルのパーティションに限定されるという意味でローカル。

Aurora

Aurora Serverless

使いどころ
・予測不可能なワークロードのとき
・使わない時がある場合(自動でシャットダウンできる)

制限
・パブリックIPを割り当てることはできない(VPC内からのみアクセス可能)

S3

S3DistCp→書き込み処理が原因でアプリ動作が不安定な場合

S3DistCp + EMRで分散DBのような振る舞いをさせることも可能
To オンプレDB
DistCpでHDFSに効率的にコピーできる。
そこからEMRの機能が使える。

S3 Transfer Acceleration

アップロードパフォーマンスを向上させる

Hadoop

MapReduce

Mapでキーバリューをマッピングし
Reduceで欲しいデータを集計する。

HiveはMapReduce処理をSQLライクにできる。

EFS

性能向上

1つのEBSボリュームを複数のEC2で共有する場合に、性能が出ないときはEFSを使う。

EFSは複数AZ間で共有できる

DBクラスタ

DBクラスターの性能を上げたい場合

・ENAの拡張ネットワーキングを使う
・クラスタープレイスメントグループを使う(単一AZ内のインスタンスを論理的にグループ化)
・ジャンボフレームを有効にする

ホストのアフィニティ

有効にしておくと、特定のホストで起動したインスタンスが停止しても常に同じホストで再開される。

大容量データの処理とBIをマネージド

Atheta + QSight

:point_up:Lambda@Edge

CloudFrontサイトなどでUX(ログインが遅いなど)が悪い場合

A/BテストやB/Gデプロイで役に立つ。

CloudFrontを使っていて、ログイン処理などが遅い時

・Lambda@Edgeで近いところで認証処理

・オリジングループを作って、オリジンフェールオーバーをセットアップ

RDS障害発生時

DB障害が起きた時、RDSイベント通知を行うように設定しておく

通知を受けたらLambdaをトリガーにして、リードレプリカがあればそれをマスターに昇格させる。

設計系

SQS

リージョン間でデータの処理などをレプリケーションしたい場合は、スケールアウトできるSQSを仲立ちして処理することもできる。

AppStream

マネージド型ストリーミング提供サービス

RDSを使用して、ユーザーアカウントの管理や保存などができる。

ECS

特徴

・Dockerコンテナに対応した管理システム
・VPCやELB、EBS、IAMなどが利用できる。

デプロイ

Elastic Beanstalkは、デプロイとスケーリングを簡単に行うことができるのでコードの記述に集中できる。
なので、この上にECSを乗っければ、環境を意識せずにより楽にアプリをリリースできる。

SAM

CI/CD

サーバレスでCI/CDパイプラインを構築する場合は、
SAMを使用して、CBuild、CDeploy、CPipelineを構築する。

Cognito

認証

モバイルアプリで大量ユーザーがいる場合、認証はCognitoを使う

SNSを使ってデバイスにサイレントプッシュ通知→ユーザーには表示されない。

モバイルアプリの設計

モバイルアプリでデータをクライアントに即時に投げたい時

SQSにリクエストを投げて、EC2 groupがDynamoからデータを引っ張り出し、Mobile Pushを使用してクライアントモバイルに送信する。

リアルタイムデータのDWHへの格納と過去データ削除

KinesisーLambdaーEMRーRedshift

API GW

API Gateway Lambda統合

・APIメソッドをLambda関数に統合する
・CognitoユーザープールでAPIヘのアクセス制御
・DynamoDBで永続的ストレージを提供
・保護されたS3バケットでコンテンツ配信するために署名つきURLを使用

Elastic Cache

Elastic Cacheクラスターのデータ耐久性は

・自動バックアップ
・Redis追加専用ファイル(AOF)を利用した手動バックアップ
・自動フェールオーバーを備えたマルチAZセットアップ

Kinesis

Data Streams

ストリーミング

拡張ファンアウト

コンシューマとシャード間に論理的な2MB/sのスループットパイプを提供する→データストリームから読み取る処理を増やせる。

Firehose

データストリームをAWSのサービスに直接ロードする
S3とか。

DataPipeline

タスクランナーはDatapipelineから実行するタスクを受け取るためにPollForTaskを呼び出す。

バックアップ系

バックアップサイトですぐに復旧させたい場合

DBはクロスリージョンレプリケーションで別リージョンのS3に保存
トランザクションログはRPO以内に収まるようにする。

クロスリージョンレプリケーションはS3でもGlacierでも使える

移行系

Snow系

Snowmobile1つよりはSnowball複数のほうが効率はいい。

SMS

SMSはDB2をサポートしていない。DB2はDMSを使え!

DMS

:frowning2:DMSはRDS on VMwareには対応していない。

:point_up:データ変換(SCT)

Aamzon MQ

:frowning2:Apache ActiveMQ用のメッセージブローカー

移行対象

DMSでOracleDBを移行する場合、暗号化などはほとんど対応している(TDEなど)

Storage Gateway

ファイルゲートウェイ

:point_up:NFSなどのファイルプロトコルを使用して、S3でオブジェクトの保存と取得ができる。直接アクセスできる。バックアップファイルなどをおいておくと良い。

テープゲートウェイ

:frowning2:S3に保存されたデータに直接アクセスすることはできない。(Storage Gateway APIを使う必要がある)
Glacierへのアーカイブが可能である。

キャッシュゲートウェイ

:point_up:AWS側でストレージボリュームを作成して、オンプレサーバにアタッチして低遅延アクセスを可能にする。

Discovery Service

各仮想マシンにエージェントを入れて、デプロイすれば、全ての情報を収集できる。
※エージェントレスだと全ての情報は収集できない。
※サーバ間のネットワーク情報や、ワークロードなどを入手したい場合はエージェントを入れるしかない。

別リージョンへの移行

PEMキーは別リージョンにコピーされないが、同じPEMキー名で起動されることを確認する必要がある。

オンプレ

オンプレアクセス低減

オンプレミスで、大量トラフィックを捌くためにはCloudFront distributionをAWSに立てて、Route53でそちらに向けておく。そうすることで、エッジにキャッシュされ、オンプレへのアクセスが減る。

移行ステージ

リホスト

手動で移行したり、SMSを使ったりなどでとりあえず移行すること

リプラットフォーム

既存のコアアーキテクチャを変更せずにメリットを享受する
RDSに置き換えたりなど

再購入

別の製品に移ること
使用してきたライセンスモデルを変更する

リファクタリング

使用停止

役に立たないのでやめる。

保持

移行する準備ができてないのでそのままにする。

その他

有限の顧客に専用のS3バケットを準備する

単一のS3バケットを作成して、顧客ごとにIAMユーザーを作成してusernameなどのポリシーh変数を使ってバケット内のサブディレクトリへのアクセスを制御すれば大量にバケットを作らなくてよくなる

外部ホストにアクセスしたい時に、ホワイトリストで管理する場合はnATゲートウェイのElasticIPでやり取りするのが良い

S3 One Zone-IAやStandard-IAは頻繁にアクセスされるデータには向かない

ストレージサービスの通知(容量制限が段階的くる場合)

DynamoDBのユーザーデータカウンターを更新するSWFのアクティビティワーカを用いて、SESで通知する。

オンプレのVCenterから大量のデータを持っていく場合

VM import Connectorを使うのもよろし

オンプレからVPCに大量のデータを持っていく場合に一回限りじゃない時

DXを使う

移行する場合にLDAPを使うときはVPN接続が必要

CloudFrontで提供されているサイトで更新が頻発する際はTTL0で設定して提供する

KMSのまとめ

マスターキーとデータキーの2種類のキーをサポートしている

マスターキーは最大4KiBのデータを直接暗号化および復号化するために使用できる、データキーを保護するためにも使用される

データキーは顧客データの暗号化と復号化に利用される。

誤ってEC2を削除した際のリカバリ

IAMユーザーとともにリソースベースのタグ付けを活用する

CloudFormationを活用したAWSへの移行

CFormationでVPCやNATGWなどのインフラを構築、Codecommitでバージョン管理

ネストされたテンプレートで、Opsworksスタックを作成してアプリをリリース

ストリーミングデータを複雑なクエリで分析する場合

まずはKinesisのデータストリームで送信し、変換

Lambdaで2爪のデータストリームに送信し、Kinesis Data AnalyticSでクエリ(分析)する

EMRで完了時間を短縮させたい時

同時マッパータスクの数を調整

MApreduceジョブ構成で入力分割サイズを変更

DXでS3パブリックエンドポイントへの接続を確立する

パブリック仮想インタフェースを構成する

顧客が大容量画像をDLしたい場合

IAMロールを作成して、署名つきURLを発行

CloudFrontディストリビューションを作成

S3バケットで静的ホスティングを有効

OpsWorksを使った新しいリリース法

OpsWorksでスタック、レイヤー、インスタンスを構成

CodepipelineでソースをS3バケットとして選択することによりアプリがzip化される。

これを用いてOpsWorksで展開する

I/Oパフォーマンステスト

事前に全てのブロックを読み取って、EBSボリュームを暖めておく

CloudFrontを用いた配信でのロード時間の短縮

distributionを作成する

クエリ文字列の転送を有効にしておく

TTL 0

他、ストリーミングの場合はダウンロードオプションを使う

キャッシュボリューム

頻繁にアクセスされるデータに対して低遅延で提供できる

S3に保存される

ストアドボリューム

スナップショットをS3に非同期でバックアップできる

EC2にリカバリすることができる

23
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?