Chapter7 自動質問ボットをAWSで走らせてみる

本日は、アプリケーションをデプロイし、自動質問ボットを走らせる。

Dockerイメージをダウンロードし、実行。

まずは、そのためのDockerイメージをダウンロードする必要がある。以下のコマンドでDockerイメージをダウンロードした。これで、自動質問ボットを用いることができるようになった。

さて、早速動かしてみる。まずは、context変数に短英文を入れ、question変数に、質問を入れる。そして、

  • docker run tomomano/qabot "短文(context)" "質問(question)" foo --no_save

で、質問を投げかけてみると…1921と、答えを返した。答えに辿り着けているようだ。

他にも質問を投げかけてみると…以下のように帰ってきた。

デプロイし、AWSでボットを走らせる

さて、ここからが本題だ。まずは、~/learn-aws-code/handson/qa-botディレクトリにて、

  • python3 -m venv .env
  • source .env/bin/activate
  • pip install -r requirements.txt
  • cdk deploy 

で、デプロイする。

デプロイが完了したら、ECSのページにアクセスし、デプロイされたスタックを確認してみる。現在はスタックが一つも走っていないため、すべて0かデータなしである。

続いて、タスク定義からスタックを確認し、メモリの量などを確認した。

さて、次は質問を投げかけてみる。run_task.pyコードを実行し、"短文" "質問"の順番で投げかけた。すると、少し時間を置いたあとに、以上のような結果が帰ってきた。Momotaroと、正解にたどり着いている。これで、自動質問ボットをAWSで走らせることは成功だ。

大量の質問を投げかける

さて、これから質問を同時に大量に投げかけて、すべて処理することが可能なことを検証してみよう。まずは、

で、多くの質問タスクを投入してみる。

さて、これでECSのページに行き、多くのタスクが同時に実行されていることが確認できた。

次は、質問の回答を取り出してみた。すると、次々と回答が表示されてきた。このように、複数の問題に対して処理できることがわかる。

さて、一通り終われば、エントリーをすべて削除することにしよう。最後に、忘れずに

  • cdk destroy

でスタックを削除する。

これで、AWSで自動質問ボットを動かした。