TxKxZxWx's blog

AWS SAA取得に向けて学習

AWS SAA取得に向けて 111日目 EBSスナップショットの作成

「EBSスナップショットの作成」

 

EBSスナップショットを作成している間も通常に読み書きをすることが出来る。

 

EBSボリュームのポイントインタイムスナップショットを作成して、新規ボリュームやデータバックアップ用のベースラインとして使用出来る。

ボリュームのスナップショットを定期的に作成する場合、スナップショットは増分。

新しいスナップショットは、最後のスナップショット以降に変更されたブロックのみを保存する。

スナップショットは非同期に行われる。

ポイントインタイムのスナップショットはすばやく作成されるが、スナップショットが完了する(変更されたすべてのブロックがS3に転送される)まで、スナップショットのステータスはpending。

大きな初期スナップショットや、多数のブロックが変更されている後続のスナップショットの場合は、数時間かかることがある。

この処理の完了中に、進行中のスナップショットはボリュームに対する継続的な読み取りと書き込みの影響を受けない

 

docs.aws.amazon.com

AWS SAA取得に向けて 110日目 問題 シャーディング、ELBヘルスチェック、S3パフォーマンスの最適化

間違えた問題を復習

 

問題1:

 

データベースを複数のホストにまたがって分けること、または大規模なデータベースをいくつかの小さなデータベースに分散する方法は?

  1. DDLオペレーション
  2. 障害回復
  3. シャーディング
  4. フェデレーション

 

解答:

 

解説:

「シャーディング」

複数のデータベースサーバーで書き込みパフォーマンスを上げる方法に「シャーディング」がある。

基本的には、同じ構造のデータベースを用意して適切なテーブルのカラムをキーにして分割し、書き込み処理を分散する。

クラウドが提供するRDBMSサービスを用いれば、可用性が高く、運用効率も良いシャーディングが可能になる。

 

qiita.com

 

 

 

問題2:

ウェブアプリケーションは、単一のカスタムAMIから起動された10個のEC2インスタンスで実行される。

EC2インスタンスは、ALBの背後にある。

Route53は、アプリケーションにDNSを提供する。

ウェブアプリケーションのEC2インスタンスに障害を発生した場合、自動的に回復する最適な方法は?

  1. ELBヘルスチェックでAuto Scalingグループ内のインスタンスを起動する。
  2. インスタンスヘルスチェックを使用して、各インスタンスにRoute53レコードを追加する。
  3. 複数のAZでインスタンスを起動し、ALBのマルチAZを有効にする。
  4. インスタンスにCloudWatchアラームアクションを追加して、ステータスチェック(全て)が失敗した場合に再起動する。

 

 

解答:

 

解説:

「ELBヘルスチェック」

ELBヘルスチェックを使用するように、Auto Scalingグループを設定できる。

これにより、ロードバランサーによって提供される追加のテストに基づいて、グループはインスタンスのヘルスを判断できるようになる。

ロードバランサーは定期的にpingを送信するか、接続を試みるか、またはEC2インスタンスのテストをリクエストする。

これらのテストはヘルスチェックと呼ばれる。

 

Auto Scalingインスタンスのヘルスステータスは、正常または以上のどちらか。

一方でELBヘルスチェックを使用するようにAuto Scalingを設定した場合、EC2 Auto ScalingはEC2ステータスチェックELBヘルスチェックの両方を調べて、インスタンスのヘルスステータスを判断する。

 

docs.aws.amazon.com

 

以下は間違い:

2:インスタンスヘルスチェックを使用して、各インスタンスにRoute53レコードを追加する。

→Route53は、アプリケーションにDNSを提供している。

インスタンスにRoute53は、アプリケーションにDNSを提供している。

インスタンスにRoute53レコードを追加するのは適切な方法ではない。

 

3:複数のAZでインスタンスを起動し、ALBのマルチAZを有効にする。

複数のAZでインスタンスを起動し、ALBのマルチAZを有効にしただけでは、要件は満たせない。

ALBヘルスチェックを使用するようにAuto Scalingグループを設定する必要がある。

マルチAZを有効にするのがおすすめ。(ALBでは、マルチAZを有効にする必要がある。)

この設定では、1つのAZが利用できなくなったか正常なターゲットがなくなった場合、ロードバランサートラフィックを別のAZの正常な登録済みターゲットにルーティングできる。

AZを無効にすると、そのAZ内のターゲットはロードバランサーに登録されたままだが、ロードバランサートラフィックをターゲットにルーティングしなくなる。

 

docs.aws.amazon.com

 

4:各インスタンスにCloudWatchアラームアクションを追加して、ステータスチェック(全て)が失敗した場合に再起動する。

→フロントなるELBなどがないため要件を満たせないため間違い。

 

 

 

問題3:

会社の開発チームは、数百万の画像を含むS3バケットを作成することを計画している。

S3の読み取りパフォーマンスを最適化して使用する命名規則は?

  1. 16進数のハッシュをサフィックスとして追加する。
  2. 16進数のハッシュをプレフィックスとして追加する。
  3. 命名規則を使用して最適化する必要はない。
  4. サフィックスとして連続IDを追加する。
  5. プレフィックスとして日付を追加する。

 

解答:

 

解説:

「ベストプラクティスの設計パターン:S3パフォーマンスの最適化」

S3は高いリクエスト率に自動的にスケールされる。

例えばアプリケーションでバケット内のプレフィックスごとに1秒あたり3,500回以上のPUT/COPY/POST/DELETEリクエストと5,500回以上のGET/HEADリクエストを達成できる。

バケット内のプレフィックスの数に制限はない。

読み取りを並列化することによって読み取りまたは書き込みのパフォーマンスを向上させることができる。

例えばS3バケットに10個のプレフィックスを作成して読み取りを並列化すると、読み取りパフォーマンスを1秒あたり55,000回の読み取りリクエストにスケールできる。

 

以前のS3パフォーマンスガイドラインでは、頻繁なデータ検索のパフォーマンスを最適化するために、ハッシュ文字を使用して、プレフィックス命名をランダム化することを推奨していた。

現在は、パフォーマンスを向上させるためにプレフィックス命名をランダム化する必要はなくなりプレフィックスに日付順の名前を使用できるようになった。

docs.aws.amazon.com

AWS SAA取得に向けて 109日目 問題 オリジンアクセスアイデンティティ

間違えた問題を復習

 

問題1:

Office (Excel, Wordなどの使用方法)のトレーニングビデオを従業員に配布するシステムを構築している。

S3に格納されているコンテンツをS3から直接公開せずにCloudFrontから公開させるために、どんな方法を使用しますか?

  1. CloudFrontのオリジンアクセスアイデンティティ(OAI)を作成し、そのOAIへS3バケット内のオブジェクトのアクセスを許可する。
  2. CloudFront用のIDおよびIAMユーザーを作成し、S3バケット内のオブジェクトへのアクセスをIAMユーザーに許可する。
  3. CloudFrontアカウントセキュリティグループ "amazon-cf / amazon-cf-sg"を適切なS3バケットポリシーに追加する。
  4. クラウドフロント配布IDをプリンシパルとして、ターゲットバケットAmazonリソース名(ARN)としてリストするS3バケットポリシーを作成する。


解答:

 

解説:

「オリジンアクセスアイデンティティを使用したS3コンテンツへのアクセス制限」

オリジンアクセスアイデンティティのみが読み取り許可(または読み取りとダウンロードの許可)を持つように、S3バケットに対する許可またはバケット内のオブジェクトに対する許可を変更する。

ユーザーがCloudFrontを使用してS3オブジェクトにアクセスすると、CloudFrontオリジンアクセスアイデンティティがユーザーに代わってオブジェクトを取得する。

ユーザーが直接S3 URLを使用してオブジェクトをリクエストすると、ユーザーはアクセスを拒否される。

オリジンアクセスアイデンティティには、S3バケット内のオブジェクトにアクセスするための権限があるが、ユーザーにはない。

 

docs.aws.amazon.com

AWS SAA取得に向けて 108日目 問題 許可されたサービス

間違えた問題を復習

 

問題1:

EC2インスタンスの進入テストについて、AWS利用規定の正しい説明は?

  1. 明示的に全ての状況下で禁止されている。
  2. AWSへの事前許可を得て、お客様が所有するインスタンス上で行うことができる。
  3. EC2インスタンスへのテストは事前に承認することなく、お客様が所有するインスタンス上で行うことができる。
  4. お客様の要求に応じてAWSによって行われる。
  5. 定期的にAWSによって行われる。

解答:

 

解説:

「許可されたサービス」 

 EC2インスタンス、NATゲートウェイ、ELBを含む複数のサービスは、事前に承認することなく、AWSインフラストラクチャに対するセキュリティ評価または侵入テストを実施できる。

 

aws.amazon.com

 

AWS SAA取得に向けて 107日目 問題 Egress-Only インターネットゲートウェイ、DynamoDB Accelerator

間違えた問題を復習

 

問題1:

プライベートサブネット内のインスタンスは、インターネットへのIPv6トラフィックを確立出来る必要がある。

自動的に拡大縮小され、追加費用が発生しないようにする必要がある。

要件を満たす方法は?

  1. Egress-Only インターネットゲートウェイ
  2. NATゲートウェイ
  3. カスタムNATゲートウェイ
  4. VPCエンドポイント

 

解答:

 

解説:

「Egress-Only インターネットゲートウェイ 

Egress-Only インターネットゲートウェイは、IPv6トラフィックでのみ使用される。

Egress-Only インターネットゲートウェイはステートフル。

サブネットのインスタンスからインターネットや他のAWSサービスとの通信が出来る。

一方でインターネットからインスタンスとの通信はできない。

 

以下は間違い:

2:NATゲートウェイ

→NATゲートウェイIPv6トラフィックには対応していないため、Egress-Only インターネットゲートウェイを使用する。


3:カスタムNATゲートウェイ

→自動的な拡大縮小および追加費用面で間違い。


4:VPCエンドポイント

VPCエンドポイントでは、PrivateLinkを使用するとAWSサービスやVPCエンドポイントサービスにVPCをプライベートに接続出来る。

VPCと他のサービス間のトラフィックは、Amazonネットワークを離れない。

 

 

 

docs.aws.amazon.com

qiita.com

 

 

問題2:

会社がDynamoDBを使用して、1GBの製品カタログをステージングしている。

製品エントリは平均で100KBのデータで構成され、平均トラフィックは1秒当たり約250リクエストであるため、データベース管理者は3,000の読み取りキャパシティーユニット(RCU)をプロビジョニングした。

ただし、一部の製品は非常に人気があり、遅延またはタイムアウトが発生している。

この問題の長期的な解決策を提供する改善方法は?

  1. S3に主要な製品属性のみを保存することで、DynamoDBの負荷を軽減させる。
  2. スループットプロビジョニングを6,000RCUに増やす。
  3. 製品キーだけでなく、製品キーと製品タイプのハッシュで構成されるようにパーティションキーを変更する。
  4. DynamoDB Acceleratorを使用して、DynamoDBの負荷を軽減させる。

 

解答:

 

解説:

「DynamoDB Accelerator」

DynamoDB Accelerator(DAX)を用いることで今後増加する需要に対応出来る。

 

DynamoDB Accelerator(DAX)は、フルマネージド型高可用インメモリキャッシュで、DynamoDBに特化している。

1秒あたりのリクエスト数が数百万件になる場合でも、ミリセカンドからマイクロセカンドへの最大10倍のパフォーマンス向上を実現する。

 

以下は間違い:

1:S3に主要な製品属性のみを保存することで、DynamoDBの負荷を軽減させる。

→レスポンスが良くなる可能性があるが、長期的な解決策に繋がらないため間違い。


2:スループットプロビジョニングを6,000RCUに増やす。

スループットのプロビジョニングを増やしても、長期的な解決策にならないため間違い。


3:製品キーだけでなく、製品キーと製品タイプのハッシュで構成されるようにパーティションキーを変更する。

パーティションキーのトラフィックが3,000読み込みキャパシティーユニットを超えた場合は、DynamoDBはプロビジョニングしたスループットを使用してアクセスパターンを自動的にサポートしないため間違い。

 

docs.aws.amazon.com

 

aws.amazon.com

AWS SAA取得に向けて 106日目 問題 EC2 リザーブドインスタンス

間違えた問題を復習

 

問題1:

あなたの会社は、複数のメモリの最適化・現行世代のr4.2xlargeインスタンスを使用して、全ての期間で容量を予約する必要があるワークロードを設計している。

ワークロードは今後2年間24時間365日実行され、Linuxを使用する。

必要なコンピューティング容量を得るための費用対効果の高い方法は?

  1. Standard RI
  2. Standard RI(リージョン指定)
  3. Convertible RI
  4. スポットフリート

 

解答:

 

解説:

「EC2 リザーブインスタンス

Standard RIはConvertible RIより大幅に割引され、必要なコンピューティング容量の予約を提供する。

Convertible RIを使用することで、RIの料金割引が適用されるだけでなく、ファミリー、OSタイプ、テナンシーを簡単に変更できるようになる。

Standard RIは割引率が最も高く、定常状態の使用に最適。

Standard RIとConvertible RIはAWSリージョンにおける全てのAZに使用を適用できる。

一方で、容量を予約するためには、特定のAZを指定する必要がある。

 

aws.amazon.com

 

AWS SAA取得に向けて 105日目 問題 CloudWatchカスタムメトリクス

間違えた問題を復習

 

問題1:

あなたはAmazon LinuxWindowsを実行している全てのEC2インスタンスのメモリとディスクスペースの使用率を監視するソリューションを設計している。

要件を満たすソリューションを選択してください。

  1. EC2インスタンスの詳細モニタリング
  2. Amazonインスペクタのリソース監視
  3. CloudWatchデフォルトのメトリクス
  4. CloudWatchカスタムメトリクス

 

 

解答:

 

解説:

「CloudWatchカスタムメトリクス」

メモリとディスクスペースの使用率等は、CloudWatchデフォルトのメトリクスで監視することができない。

CloudWatchカスタムメトリクスを導入することで、監視できるようになる。

CloudWatchを使用すると、お客様自身のアプリケーション、スクリプト、サービスで生成されたデータをモニタリングすることができる。

カスタムメトリクスとは、CloudWatchでモニタリングするためにお客様自身が用意するメトリクスのこと。

カスタムメトリクスを使用してモニタリングできるものの例としては、ウェブページのロードに要する時間、リクエストエラー率、インスタンス上のプロセスやスレッドの数、アプリケーションで実行された作業の量などがある。

カスタムメトリクスを使用するには、PutMetricData APIを使用する。

WindowsおよびLinux向けのモニタリングスクリプトのサンプル、CloudWatchプラグイン集が用意されているほか、AWSパートナーからも多数のアプリケーションやツールが提供されている。

 

以下は間違い:

1:EC2インスタンスの詳細モニタリング

→デフォルトのモニタリングのデータは自動的に5分間無料で取得できる。

詳細のモニタリングは、1分間のデータを取得できる。

追加料金がかかる。

取得タイミングに関わる設定のため間違い。

 

 

aws.amazon.com