article

Ben@Amazon avatar image
Ben@Amazon posted

トラフィックの多いシナリオでAlexaスキルの高可用性を確保する方法

たいていのAWSサービスでは、ほとんどのAlexaスキルはデフォルトの設定のままで十分に機能します。ただし、人気のあるスキルや今日のおすすめに選ばれたスキル、設計段階で安定性や信頼性を重視する場合など、平均より著しく多いトラフィックが見込まれる場合があります。考慮すべき重要な基本の制限事項やプラクティスがいくつかあります。

AWS Lambdaの制限事項:

AlexaスキルのほとんどはAWS Lambdaで書かれます。スケーラブルで信頼性の高いサービスとして設計されていますが、Lambdaがアプリケーションに合わせて適切に拡張されるように開発者側で設定する必要があります。特に、スキルがスキルの呼び出しごとに複数のLambda関数を起動する場合、関数の呼び出し制限に達しそうになっていないかをチェックし、必要に応じて制限値の増加をリクエストする必要があります。現在の制限値と制限値の増加をリクエストする手順については、http://docs.aws.amazon.com/lambda/latest/dg/limits.htmlを参照してください

DynamoDBの制限事項:

複雑なAlexaスキルのほとんどは、高速でスケーラブルなnosqlデータベースエンジンであるDyanmoDBを利用しています。DynamoDBのテーブル設定時、読み取りおよび書き込みのキャパシティを1秒あたりの読み取り量と書き込み量で指定します。Alexaスキルのトラフィックは時間によって大きく異なる可能性があるため、テーブルのキャパシティを想定されるピークのスループットよりもかなり多めに設定し、時間の経過によるスキルのトラフィックの変化やトラフィックの増加が予想されるイベントがある場合に、これらの数値を見直すことを強くお勧めします。

アラーム:

制限値やキャパシティを適切にプロビジョニングすることは高可用性の確保に大切な最初のステップではありますが、それでもダウンタイムにつながる想定外のシナリオは常に発生します。適切なアラーム設定と応答により、ダウンタイムの時間を最小限にすることができます。スキルにLambdaを使用している場合は、標準でCloudWatchにログを出力し、ログ内のイベントに基づいてアラームをトリガーする機能があります: http://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled-events-create-alarm.html.DynamoDBのスロットリングとエラーの場合にも同様の機能があります: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AlarmsConsole_DynamoDB.html.

これらのプラクティスに従わない場合、トラフィックの多いシナリオで「スキルを利用できません」というメッセージがユーザーに表示され、ユーザーエクスペリエンスの質の低下につながります。

alexa skills kit
10 |5000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Article

Contributors

Ben@Amazon contributed to this article