小西秀和です。
この記事は「AWS認定全冠を維持し続ける理由と全取得までの学習方法・資格の難易度まとめ」で説明した学習方法を「AWS 認定 Alexa スキルビルダー – 専門知識(AWS Certified Alexa Skill Builder – Specialty)」に特化した形で紹介するものです。
重複する内容については省略していますので、併せて元記事も御覧ください。
また、現在投稿済の各AWS認定に特化した記事へのリンクを以下に掲載しましたので興味のあるAWS認定があれば読んでみてください。
ALL | Networking | Security | Database | Analytics | ML | SAP on AWS | Alexa |
---|---|---|---|---|---|---|---|
DevOps | Developer | SysOps | SA Pro | SA Associate | Cloud Practitioner |
2021年2月現在12個あるAWS認定ですが、2020年11月末に発表があり、「AWS 認定 Alexa スキルビルダー – 専門知識」が2021年3月22日に廃止されることになりました。
今回は廃止されるAWS認定「AWS 認定 Alexa スキルビルダー – 専門知識」から学んだこと、またAWS認定の学習方法はどのようなものだったのかを記録として残しておきたいと思います。
AWS認定としては廃止されますが、Alexaスキルを使用した開発は今後も引き続き可能なため、Alexaスキルのラーニングパスの一つとして参考にしていただければと思います。
※筆者は当記事の寄稿にあたり、感謝と惜別の思いを込めて2021年3月15日に「AWS 認定 Alexa スキルビルダー – 専門知識」の再認定を受けてきました。
「AWS 認定 Alexa スキルビルダー – 専門知識」とはなんだったのか
「AWS 認定 Alexa スキルビルダー – 専門知識」は2019年1月7日から2019年2月1日にベータ版が提供され、2019年4月16日に正式発表となった「Alexaスキル」の設計・開発・テスト・運用に特化したAWS認定です。
AlexaスキルのオフィシャルサイトはAWSのサイトとは独立しており、Alexa Skills KitドキュメントもAWSドキュメントと別に用意されているなど、他のAWS認定とは一線を画している印象が強いです。
「AWS 認定 Alexa スキルビルダー – 専門知識」の受験に向けた学習内容はほとんどAlexaスキルの開発手法なので、それまでにAWSサービス間連携が学習の中心となる他のAWS認定を受験した人であれば全く違うラーニングパスであることを実感したのではないでしょうか。
ただ、一方でAlexaスキルはAWSサービスと全く関係無いわけではなく、発話を受け取るAmazon EchoデバイスなどのバックエンドでAlexaスキルをホスティングするサーバーにはAWS Lambdaを採用することができ、セッションを保存する永続ストレージとしてAmazon DynamoDBを使用し、Amazon Cloudfrontでコンテンツをキャッシュするなど、Amazon Cloudfront、AWS Lambda、Amazon DynamoDB、Amazon S3、Amazon CloudWatchといったサーバーレスサービスを中心にAWSサービスと連携させることができます。
また、バックエンドのAWS Lambdaなどのコード管理やデプロイにはAWS CloudFormation、AWS CodePipeline、AWS CodeCommit、AWS CodeBuild、AWS CodeDeploy、AWS CodeStarといったAWSサービスの開発者用ツールを使用することもできます。
つまり、Alexaスキルを使用したサービス開発のフロントエンドからバックエンドまでトータルで設計する場合、AWSサービスの専門知識が必要になってくるということです。
そして、Alexaスキル開発者はAWSサービスをある程度知らないと単独ではインフラも含めた実装が難しく、別のAWSエンジニアと協力する場合もお互いの開発思想を共有することが難しいことが想像できます。
こうした背景から「AWS 認定 Alexa スキルビルダー – 専門知識」はAlexaスキル開発者がAlexaスキルの専門知識を身に着けると同時に必要なAWSサービスとの連携についても学習することができ、インフラストラクチャーを主に担当するAWSエンジニアもAlexaスキル開発の理解を深めることができる両者を繋ぐラーニングパスとして設けられたものではないかと私は考えています。
私自身はアプリケーションエンジニアからAWSサービスを使用し始めた立場ですが、AWS認定の全取得を目指していた過程で「AWS 認定 Alexa スキルビルダー – 専門知識」を受験したことで、初めてAlexaスキルの開発手法を知りました。
ちょうどAWSサービスを活用したサーバーレスアーキテクチャで開発をすることが多かったためAlexaスキル開発の内容については理解できましたが、AWS認定が無ければその内容を詳しく知る機会はなかったでしょう。
「AWS 認定 Alexa スキルビルダー – 専門知識」は2年間に満たない公開期間ではありましたが、AWS認定の全取得を目指す人をはじめとして多くのAWSエンジニアにAlexaスキル開発の内容を周知したという意味では大きな意義と影響力があったAWS認定だったのではないかと思います。
「AWS 認定 Alexa スキルビルダー – 専門知識」とは
※ここから以降の内容は主に私が実際に「AWS 認定 Alexa スキルビルダー – 専門知識」を受験した際の学習方法をまとめた時の記事になります。今後、Alexaスキルを開発することになった際などのラーニングパスの参考やAWS認定の学習内容の想起として参考にしていただければと思います。
「AWS 認定 Alexa スキルビルダー – 専門知識(AWS Certified Alexa Skill Builder – Specialty)」は一言で言えばAlexaスキルを設計・開発・テスト・運用する専門知識を検証する認定と言えるでしょう。
「AWS 認定 Alexa スキルビルダー – 専門知識」は前提として推奨されているAWS認定は無く、受験にあたっては「Alexaスキル」に特化した専門知識を身に着けておく必要があります。
また、後述の『「AWS 認定 Alexa スキルビルダー – 専門知識」の学習方法』で紹介している「試験ガイド」や「Exam Readiness」を確認していただければわかると思いますが、「Alexaスキル」に特化した内容になっているため、学習しておくべきAWSサービスはAmazon Cloudfront、AWS Lambda、Amazon DynamoDB、Amazon S3、Amazon CloudWatchといった「Alexaスキル」を構成もしくは機能を拡張するサーバーレスサービスが中心となります。そのため、数あるAWS認定の中でも一つのAmazonのサービスである「Alexaスキル」に焦点を絞った認定です。
「AWS 認定 Alexa スキルビルダー – 専門知識」の学習方法
元記事「AWS認定全冠を維持し続ける理由と全取得までの学習方法・資格の難易度まとめ」で説明した学習方法をもとに「AWS 認定 Alexa スキルビルダー – 専門知識」に特化した学習方法を記載します。
共通の内容は省略するため、併せて元記事も御覧ください。
学習順 | 学習リソース | 学習リソースの活用ポイント | 費用(税別) |
---|---|---|---|
随時 | AWSサービス別資料 | AWS Black Belt Online Seminarの資料が中心に掲載されており、重要ポイントが非常によくまとめられています。「Alexaスキル」を構成または機能拡張するために使用されるAmazon Cloudfront、AWS Lambda、Amazon DynamoDB、Amazon S3、Amazon CloudWatchの機能概要を知らない場合に読みます。 | 無料 |
随時 | AWS認定対策本 | 受験するAWS認定の対策本が出版されていれば、その本から学習していくことも効率的な方法だと思います。私の場合は受験当時に対策本があまり無かったため、使用する機会がありませんでした。 | 2,000円~4,000円程度 |
随時 | 検索エンジンでキーワード検索 | 後述の学習リソースでわからなかったキーワードや内容を随時、検索エンジンで検索して出てきたブログなどを参考にします。特に日本語だけではなく英語で検索することは日本語サイトにはまだ掲載が少ない情報を英語圏のサイトから得ることで理解を深めることができるためおすすめです。 | 無料 |
1 | 試験ガイド | 試験ガイドで受験するAWS認定の試験範囲とどのような内容が出題されるかを把握します。 | 無料 |
2 | サンプル問題 | 試験ガイドとセットで掲載されているサンプル問題を解いて、出題傾向を把握します。 | 無料 |
3 | AWSトレーニングライブラリ(Exam Readiness) | Exam Readinessは試験準備のための要点がまとめられているデジタルトレーニングです。該当するAWS認定に関連するAWSサービスや出題傾向をここで把握します。「AWS 認定 Alexa スキルビルダー – 専門知識」にもExam Readinessはあるため受けてみることをおすすめします。 | 無料 |
4 | Alexa Skills Kitドキュメント | 「AWS 認定 Alexa スキルビルダー – 専門知識」はサービス特化型の認定のため、ほとんどこの「Alexa Skills Kitドキュメント」を使用した学習になります。このドキュメントでAlexaスキル作成に関わる知識を深く理解し、受験までに時間の余裕があればリンクされている関連ドキュメントにも目を通しておきます。 | 無料 |
6 | 模擬試験 | 受験するAWS認定の出題傾向や重要点を確認できるため、試験直前の腕試しではなく可能な限り早い段階で受けることをおすすめします。受験する分野の既存知識があれば最初に受けても良いと思います。「AWS 認定 Alexa スキルビルダー – 専門知識」の場合は4,000円ですが、以前にAWS認定に合格していれば模擬試験の無料バウチャーがあるはずです。 | 2,000円 or 4,000円 |
7 | Alexa Skills Kit Blog日本語版 | Alexaスキルのトピックに特化したブログです。受験までの時間に余裕があれば、タイトルを見て問題解決方法、アーキテクチャ、事例、認定が新設・改定される前にリリースされた機能追加について情報収集をします。 | 無料 |
8 | Alexa Skills Kit Blog英語版 | 英語版は「Alexa Skills Kit Blog日本語版」に無い情報があるため、日本語版と同様に受験までの時間に余裕があれば、問題解決方法、アーキテクチャ、事例、認定が新設・改定される前にリリースされた機能追加の内容を中心に読んでおきます。 | 無料 |
「AWS 認定 Alexa スキルビルダー – 専門知識」の学習過程で重要だと思った点
ここからは私が「AWS 認定 Alexa スキルビルダー – 専門知識」の学習過程でAWS認定のみならず実務的にも重要だと思った点をまとめてみます。
ただし、重要だと思う点に個人差があること、この記事の執筆時に思い出せず書き忘れがある可能性もあることをご了承ください。
Alexa Skills Kit
アカウントリンクの要件
https://developer.amazon.com/ja-JP/docs/alexa/account-linking/requirements-account-linking.html基本的なハンドラーの実装の仕方
https://developer.amazon.com/ja-JP/docs/alexa/alexa-skills-kit-sdk-for-nodejs/develop-your-first-skill.htmlリクエスト処理の実装
https://developer.amazon.com/ja-JP/docs/alexa/alexa-skills-kit-sdk-for-nodejs/handle-requests.htmlAudioPlayerインターフェースの実装に必要なインテントと各ディレクティブとパラメーター(再生、一時停止、再開の使われ方)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/audioplayer-interface-reference.htmlカスタムスキルの呼び出し名(英語の略語の場合など)の要件と変更タイミング(開発中は可能、公開後は開発バージョンを修正して認定申請)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/choose-the-invocation-name-for-a-custom-skill.htmlスキルの対話モデルの作成(Dialog.Delegateディレクティブの使い方)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/create-the-interaction-model-for-your-skill.htmlDialogインターフェースの要件およびインテント、ディレクティブ、スロットの使い方
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/dialog-interface-reference.htmlDisplayインターフェースのテンプレートの種類
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/display-interface-reference.htmlカスタムスキルをAWS Lambda関数としてホスティングする方法(Amazon CloudWatch Logsによるログ監視、スキルIDによるリクエストの妥当性検証、テスト手法など)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html
https://developer.amazon.com/ja/blogs/alexa/post/99fb071e-9aaf-481b-b9af-0186c0f712a5/how-to-monitor-custom-alexa-skills-using-amazon-cloudwatch-alarms
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/handle-requests-sent-by-alexa.htmlビルトインインテントの実装の仕方(サンプル発話を追加してビルトインインテントを拡張する方法など)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/implement-the-built-in-intents.htmlスキルの応答に使用できるカードの種類と機能(Simple:タイトルと本文、Standard:タイトルと本文および画像のURL指定、LinkAccount:アカウントリンクで使用)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/include-a-card-in-your-skills-response.htmlスキルセッションとセッションアトリビュートの管理の仕組み(複数のセッションにまたがってデータを記憶しておく必要がある場合、データをDynamoDBやS3などの永続ストレージに保存する)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/manage-skill-session-and-session-attributes.html
https://developer.amazon.com/ja-JP/docs/alexa/alexa-skills-kit-sdk-for-nodejs/manage-attributes.html
https://developer.amazon.com/ja-JP/docs/alexa/hosted-skills/alexa-hosted-skills-session-persistence.html子ども向けスキルの注意点(課金、広告、個人情報、コンテンツ内容、所在地情報など)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/policy-testing-for-an-alexa-skill.html#cert-child-directed
https://developer.amazon.com/ja/blogs/alexa/post/0f51e342-dc5d-4952-bf8e-5bcb7b05eac7/kid-skills-alexa-skills-certification-jp
https://developer.amazon.com/ja/blogs/post/TxNGVJKGQ2742J/Stay-on-the-Right-Side-of-Child-Protection-Law
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/device-address-api.htmlユーザーの連絡先情報を使用する方法
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/request-customer-contact-information-for-use-in-your-skill.html
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/request-recognized-speaker-contact-information.htmlプログレッシブ応答を送信してユーザーにリクエスト処理中であることを知らせる方法
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/send-the-user-a-progressive-response.htmlAlexaスキルのベータテストの手順(テスターの追加と連携方法、90日間の有効期限後の動作など)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/skills-beta-testing-for-alexa-skills.htmlスロットタイプの種類とユースケース
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/slot-type-reference.html音声合成マークアップ言語(SSML)の使い方(カスタムMP3ファイルの要件など)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html標準ビルトインインテントの種類と内容(AMAZON.CancelIntent時にshouldEndSession:trueでセッション終了、shouldEndSession:falseでセッション持続など)
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/standard-built-in-intents.htmlダイアログをデリゲートした場合は通常AMAZON.FallbackIntentはトリガーされない
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/standard-built-in-intents.html#amazonfallbackintent-when-you-delegate-the-dialogAMAZON.FallbackIntentを使用してユーザーの発話が一致しない場合にフォールバックを提供する
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/standard-built-in-intents.html#fallbackダイアログモデルを使用してあいまい応答を管理する方法
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/use-a-dialog-model-to-manage-ambiguous-responses.htmlスキルのレポートを使用した各メトリクスの分析の仕方
https://developer.amazon.com/ja-JP/docs/alexa/devconsole/about-skill-metrics.html
https://developer.amazon.com/ja-JP/docs/alexa/devconsole/measure-skill-usage.htmlスキルの公開範囲の設定(国、地域、言語など)
https://developer.amazon.com/ja-JP/docs/alexa/devconsole/launch-your-skill.htmlスキルをテストして認定を申請する方法と公開後にスキルの修正やアップデートを行う方法
https://developer.amazon.com/ja-JP/docs/alexa/devconsole/test-and-submit-your-skill.htmlスキルのテストに必要な要件
https://developer.amazon.com/ja-JP/docs/alexa/devconsole/test-your-skill.htmlスキルのテスト手法(Alexaシミュレーター、JSON、音声と語調などシミュレーターの使用)
https://developer.amazon.com/ja-JP/docs/alexa/devconsole/test-your-skill.html
https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/test-a-custom-skill.htmlスキル内課金(ISP)使用時の注意点(Buyディレクティブ送信時にスキルセッションが終了するため、関連ユーザーデータを永続データストレージに保存)
https://developer.amazon.com/ja-JP/docs/alexa/in-skill-purchase/add-isps-to-a-skill.htmlスマートホームスキルAPIの仕組み
https://developer.amazon.com/ja-JP/docs/alexa/smarthome/understand-the-smart-home-skill-api.html
https://developer.amazon.com/ja-JP/docs/alexa/smarthome/smart-home-skill-api-message-reference.htmlスマートホームスキルのレイテンシーを低減するためのベストプラクティス(AWS Lambda関数のメモリの増強でCPUも連動して増強される、タイムアウト値を調整するなど)
https://developer.amazon.com/ja-JP/blogs/alexa/device-makers/2020/11/Best-Practices-to-Reduce-Latency-on-your-Smart-Home-Skillセッションアトリビュートを使用した音声エクスペリエンスの強化
https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2018/05/using-session-attributes-in-your-alexa-skill-to-enhance-the-voice-experienceAWSサービスを活用してAlexaスキルを強化する方法(DynamoDBの永続保存、S3への音声・画像保存、Cloudfrontのキャッシュによる応答時間改善など)
https://developer.amazon.com/ja/blogs/alexa/post/87f73844-d971-4ac3-b274-bf0d93031bcd/build-more-engaging-skills-using-aws桁数の多い数値は複数回に分割して入力させる。
https://forums.developer.amazon.com/questions/216076/asking-for-serial-numbers-in-my-custom-skill-with.html
https://forums.developer.amazon.com/questions/55959/long-number-slot-what-will-be-slot-type.html