スポンサーリンク

【AWS DVA】 公式サンプル問題を解いてみた|解説と用語確認|AWS認定デベロッパーアソシエイト

AWS
スポンサーリンク

こんにちは!在宅カエルです!

先日SOAを取得しました。

SAAは昨年受験して合格したので、
残るアソシエイト資格のDVA取得に向けて勉強します。

まず公式が提供しているサンプル問題を解いたので
わからなかった用語を確認して記事に残そうと思います。

DVAの試験概要はこちらの記事からどうぞ

スポンサーリンク

サンプル問題

AWS DVAは過去問が販売されていないので、試験に関する情報が少ないです。

SAAやSOAの試験でも同様だったのですが
試験内容を公表することが規約でNGなので
受験した人のブログなどを見ても試験問題に関する情報は得られません。

そんな中で公式が提供しているのが
全10問のサンプル問題と2000円の模擬試験です。

模擬試験は受験前に解くとして
今回は試験問題を知るために、サンプル問題を解いてみます。

問題は下記公式サイトから入手できます。

AWS 認定 デベロッパー – アソシエイト 公式サイト

*模擬試験 2,000円(税別)

20問の模擬試験を本番と同じ形式で受験することができます。
有料ですがSAA・SOA合格時に無料のチケットが配布されます。
DVAを受験される方は多くの場合SAAかSOA取得してるかと思うので、
忘れずに利用しましょう。

解いてみた

早速解いてみました。
十問なのであっという間です。

各設問毎にわからなかった部分を調べます。

問1 データベース認証情報の管理

ハードコーディングされたデータベースの認証情報を
AWSサービスで管理する方法についての問題。

Secrets Managerを利用すればデータベースの認証情報を保存できて
定期的に自動ローテーション(自動更新)することができるとのこと。

Secrets Manager

Secrets ManagerはデータベースやAPIなどへの認証情報を管理したり
ローテーションできるAWSサービス

Systems ManagerのParameter Store
でも管理できそうと思ったのですが、
こちらのサービス単体では自動ローテーションができないようです。
(Lambdaと組み合わせるなどすればできる。)

問2 コメントへのリアルタイム返信機能の実装

コメントへのリアルタイムな返信を実現するAWSサービスの知識が問われていました。

AWS App SyncもしくはWebSocket APIを用いて実装することができます。

AWS App Sync

AWS App Syncは
GraphQL APIによる開発を行えるマネージドサービスです。

 

*GraphQLとは
APIを使うためのクエリ言語。
1回のリクエストで多数のデータにアクセスできることが特徴です。
そのため低速回線でも応答時間を短縮することができます。
App Syncは GraphQLを使って
Web Socketを介したリアルタイムのデータのやり取りを実現できるので
チャットアプリのようなサービスに向いています。

WebSocket API

WebSocketはWebにおいて双方向通信を低コストで行うためのプロトコル。
SNS等の普及によってリアルタイムの通信が必要になり普及した技術です。

AWSではAmazon API GatewayにてWebSocket APIを構築可能です。

問3 サインインイベントのロギング

Amazon Cognitoはサインイン・サインアウトの機能を実装できることを
SOAの勉強で知っていたので解答できました。

ログの出力方法は消去法的にLambdaを使うと分かりましたが、
Cognitoの認証後イベントでLambdaがトリガーできる点は押さえておきます。

問4 APIの認証の設定方法

APIを使う際に認証を設定するという問題でした。

選択肢としてIAMとCognitoを比較しているのでそれぞれの役割を知っていれば
消去法で解けてしまいます。

ポイントとしてはAPIのリクエストにIAMユーザーの認証情報
を付加することでアクセスユーザーを認証することですね。

問5 LambdaへのIAMロールの付加

LambdaからS3バケットとCloudWatch Logsへのアクセス時に
認証する方法についての問題。

IAMロールとIAMユーザーの違いについて押さえておきましょう。

*IAMユーザー・・・
認証情報を直接持っているため、AWSサービスと直接やり取りできる。
*IAMロール ・・・
認証情報を持たず、AWSサービスにリクエストを送信することができない。
IAMユーザーやアプリケーション、AWSのサービスなどの許可されたエンティティに割り当てる。

問6 データベースを他リージョンへコピー

暗号化されたAmazon Auroraを他リージョンで復元するという問題。

このテーマも他のアソシエイト試験でも頻出でした。

以下3点に気を付けましょう

  • 暗号化されたデータベースを途中から非暗号化することはできない
  • コピー元のリージョンでスナップショットを作成する
  • 復元の際に指定するKMSはコピー先リージョンのキーを指定する

問7 遅延読み込み機能の実装

デベロッパーらしくソースコードを読み込んで解答するという問題でした。

遅延読み込みとは、あるレコードが必要になるまで対象のレコードの
読み込みを遅らせることです。

ElastiCache for Memcached ユーザーガイド

正解の選択肢のコードにコメントして、
処理を理解できるようにしておきます。

//キャッシュからデータを読み込む
record_value = cache.get(record_key)
//キャッシュにデータがない場合
if (record_value == NULL)
    //データベースへクエリを実行してデータを読み込む
    record_value = db.query("SELECT Details FROM Records WHERE ID == {0}", record_key)
    //キャッシュにクエリ結果を書き込む
    cache.set (record_key, record_value)

問8 EC2インスタンスのモニタリング

EC2インスタンスのモニタリングに関してはSOAで勉強した範囲でした。

EC2のOS以上で発生する情報はCloudWatchエージェントを使って
カスタムメトリクスを収集することが必要です。

SOA受験時にCloudWatchについてまとめたので参考までに貼っておきます。

問9 Lambdaのデプロイ

Lambdaのデプロイ時の上限値は50MBと制限されています。

Lambdaレイヤーに外部モジュール、ライブラリをアップロードしておき
Lambda関数から参照することでこの問題を解決できます。

Lambdaレイヤーは、追加のコードまたはデータを含むことができる .zip ファイルアーカイブです。

問10 Webアプリケーションのリリース

API GatewayとLambdaを利用したWebアプリケーションのリリースについての問題。
わからない用語があったので整理します。

ステージ

各デプロイに対して名前をつけて管理しており、ステージと呼んでいる。
今回の問題で言えば開発用のステージと本番用ステージの2つを使用している。

ステージ変数

デプロイされたそれぞれのステージでステージ変数を設定できる。

開発ステージのステージ変数では開発用のLambdaのエイリアスを、
本番ステージのステージ変数では本番用のLambdaのエイリアスを指定する。

APIとLambda関数の紐付けにこのステージ変数を利用することで、
APIを1つのみで管理することができます。

リリース時にはLambdaのエイリアスを変更するだけで完了できます。

Lambda関数のエイリアスについては公式サイトより引用しておきます。

Lambda 関数の 1 つ以上のエイリアスを作成できます。Lambda のエイリアスは関数の特定のバージョンに対するポインタのようなものです。ユーザーは、エイリアス Amazon リソースネーム (ARN) を使用して関数のバージョンにアクセスできます。

AWS公式サイトより引用

まとめ

10問中半分程度はSAA、SOAを受験した時の知識で解けました。

要件に対してのAWSのサービスを利用した適切な実装、という観点は
DVAの試験ならではかと思うので意識して学習を進めていきたいです。

また、Lambdaについてサンプル問題の中で多く出題されたので
Black beltを読み込むなどして、サービスについての理解を深めます。

今回はここまでとしておきます。
ありがとうございました。

コメント

タイトルとURLをコピーしました