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で走らせることは成功だ。
大量の質問を投げかける
さて、これから質問を同時に大量に投げかけて、すべて処理することが可能なことを検証してみよう。まずは、
- python run_task.py ask_many
で、多くの質問タスクを投入してみる。
さて、これでECSのページに行き、多くのタスクが同時に実行されていることが確認できた。
次は、質問の回答を取り出してみた。すると、次々と回答が表示されてきた。このように、複数の問題に対して処理できることがわかる。
さて、一通り終われば、エントリーをすべて削除することにしよう。最後に、忘れずに
- cdk destroy
でスタックを削除する。
これで、AWSで自動質問ボットを動かした。