背景:プログラミング研修の教材を検討中、マイコンとセンサで計測したデータの見える化としてIoT PFを使うか、Node-REDを使う方針
課題:EC2で構築すると、SSL通信時、ドメイン取得して証明書手配が必要。手軽に安く構築、運用したい。
アプローチ:コンテナ化したNode-REDをApp Runner上で走らせてはどうか
進捗:Copilotに質問すると手順を教えてくれた
詳細:
App Runnerによる構築、運用ステップ(ECRベース)
1. Dockerイメージを作成
公式Node-REDイメージ(nodered/node-red)をベースにしてもOK、必要に応じて settings.js や flows.json を含めてカスタマイズ
Dockerfile 例:
FROM nodered/node-red:latest COPY flows.json /data/flows.json
2. ローカルでビルド
docker build -t node-red-app .
3. ECRリポジトリを作成
aws ecr create-repository --repository-name node-red-app
4. ECRにPush
# 認証 aws ecr get-login-password | docker login --username AWS --password-stdin <your-ecr-uri> # タグ付け docker tag node-red-app:latest <your-ecr-uri>/node-red-app:latest # Push docker push <your-ecr-uri>/node-red-app:latest
5. App Runnerでサービス作成
- ソース:ECR
- ポート:1880(Node-REDのデフォルト)
- TLS終端:App Runnerが自動でHTTPS対応
- FQDN:https://xxxx.awsapprunner.com(AWS管理)
上記手順だけでNode-REDコンテナが動いたらすごい。実際には、エラーが出たり、いろいろ予想外のことが起きそうだ。
■追記
最新のMicroPythonではI2Sを扱えるらしい。Raspberry Pico でもI2Sが扱えるなら、DA変換ICを介して音声とか再生できるはず。