動機
- 毎回LINE botを作る時に環境を構築するのに手間取ってプログラミング始める前に萎えてしまう
- AWSをサービス開発で使っていると言えるとなんとなくかっこいい気がする
目標
- 何もないところから出来るだけ簡単におうむ返しbotの作成
必要知識
- 独自ドメインをAWSのEC2インスタンスに割り当てることが出来る
- EC2,ElasticIP,Route53あたりで調べたら先人たちの知恵が無限に出てくる
- インスタンスは80番,443番ポートを解放しておいてください
- docker-composeが使える
- 先人たちの知恵を参考にする
- LINE DeveloperでLINE botの最低限の設定が出来る
- 同じく先人たちの知恵を…
- CHANNEL_ACCESS_TOKE, CHANNEL_SECRETの取得
- webhookのURLには使用するドメインのルートパスを記入して置いてください
- 使用ドメイン => xxxx.xx
- Webhook URL => https://xxxx.xx/
実践
はじめに
- この記事を書いている中の人はdockerやAWSをちゃんと触り始めて2週間程度の素人なのでセキュリティなどに一切考慮しておりません
- この記事を参考にしたシステムにおける責任は一切負いかねますのでご注意ください
- また、修正・改良などの意見はお気軽に。てか、むしろ教えていただけると非常にありがたいです
SSH接続
とりあえずEC2にSSHで接続する
- SSHに使うポートの解放もお忘れなく
git hubからソースのダンロード
git clone https://github.com/yakult1995/easy-line-bot.git
各自の環境を反映する
ダウンロードしてきたフォルダのdockerフォルダの中のdocker-compose.ymlの
- DOMAIN_NAME
- USER_MAIL
- CHANNEL_ACCESS_TOKEN
- CHANNEL_SECRET
をそれぞれの環境に合わせて変更する
幸せになれる魔法
cd easy-line-bot/docker
docker-compose up -d --build
しばらく待つ
LINEからボットにメッセージを送る
作ったボットにメッセージを送信しておうむ返ししてくれれば終わり
その他
docker-compose up -d --build
の間のログは
docker-compose logs -f
で見ることが出来る
何かしらのエラーで起動出来なかった場合ここで原因を調べる
ぼやき
Dockerfileの使い方分からずに何回も試行錯誤してたら
letsencryptの証明書更新し過ぎてしばらく証明書取りに行けなくなったせいで何個のドメインが犠牲になっただろうか…
最後に
この記事を書いてるときに色々調べてたら
Lambda使ったbotのシステム構築多くて次はそれで試してみようと思った