🥰
【AWS Lambda】推しを広めるTwitterBotをほぼ無料で運用
作ったモノ
谷崎早耶🐰さややん🐰画像bot
谷崎早耶ちゃん(さややん)の画像・動画をツイートするボットを趣味で作りました。
2019年の5月に公開して、1.5年くらい運用しています。
できること
- 9時から24時まで1時間おきにランダムで画像と動画をツイート
- さややんのツイートをいいね・リツイート
- SHOWROOM配信状況をツイート(現在停止中)
つくろうと思ったきっかけ
- アイドルのクオリティの高いツイート写真が一度しかみんなの目に触れないのは少し勿体ないと感じました。
- ≠ME(さややんが所属するアイドルグループ)はまだ出来たばかりのグループだったが、さややんのTwitterに上がっている画像がたくさんの人の目に触れることによって、ファン拡大につながると考えました。
サービス全体像
Twitterへのツイートを自動化できるツールは沢山あると思いますが、
少し複雑なことができず痒いところに手が届かなかったり、
GUIでツイートしたい内容を登録したり管理するのに手間がかかる印象です。
今回はツイート自動化のための仕組みをAWS
上で完結する形で開発しました。
あるタスクを自動化するためには自動化する「処理」と処理を実行するための「環境」が必要になりますが
実行するための環境を一から用意したり、維持するのはとても大変なので、
すでに用意された実行環境(ランタイム)にコードをアップロードするだけで実行させることができるAWS Lambda
を用います。
AWS(Amazon Web Service)
- Amazonが提供するクラウドサービスです。
- アカウントを作成することで、様々なAWSマネージドサービスを利用することができます。
- 無料で使えるモノも多数あり、個人開発者におすすめです。
AWS Lambda
- AWSの用意する実行環境でコードを実行できるサービスです。
- 今回は、Twitterに投稿するための処理を記述したファイルをアップロードして
AWS Lambda
上で実行します。 - 個人開発者にとっては十分すぎるほどの無料利用枠があります。
Amazon EventBridge
- 様々なイベントをAWSサービスと結びつけることができるサービスです。時間を指定してAWSサービスを実行することもできます。
- もともとはアプリケーションモニタリングサービス
CloudWatch
の中のCloudWatch Events
というサービスだったが独立しました。 -
AWS Lambda
の関数を実行するためのトリガーとしてCloudWatchEvents
用います。 - 旧サービスの
CloudWatch Events
の時から激安だったが、EventBridge
になってAWS Lambda
へのイベントは無料になりました!
Amazon S3
- AWSのオブジェクトストレージサービスです。
- ツイートするための画像を置いておきます。
- 無料利用枠があります。
- S3から画像を取得するようにすることで、S3を追加していくだけで抽選対象の画像を増やすことができるので便利です!
DynamoDB
- AWSのドキュメントデータベースのマネージドサービスです。
- ツイートしたログを保存したり、フラグ管理に用います。
- lambdaだけでは特定の通知系ツイートを行ったかどうかがフラグとして管理できないので、それらを管理するために用いる。
- 無料利用枠があります。
- RDSが稼働時間に応じて課金されるのに対して、DynamoDBは使ったぶんだけしか課金されないのでちょっと使いたい時に最高です!
実際の運用費用は?
AWS Lambda
- 月に100万リクエスト・40万秒までに余裕で収まるので無料で使えています。
Amazon S3
- リソース数が増えてきたことで、S3のストレージ料金がわずかにかかっていますが、ほぼ無料で運用できています!
DynamoDB
- 全然使ってないですが、ちゃんと無料枠の対象になっています。
Amazon EventBridge
- 無料なので省略します
最後に
この記事を投稿している2020年10月7日はさややんの21歳のお誕生日です🥳
先日のオンラインで開催されたTIFというイベントで、さややんの所属する≠MEのパフォーマンスを観ましたが、
デビュー1年ちょっととは思えないほど素晴らしくて、改めて自分も頑張ろうと思えました!
こういうものを作れたり、公開できた時にプログラミングができてよかったなと実感できます。
今後も仕事だけでなく、趣味プログラミングも続けてオタ活に活かせたらいいなと思います!!
Discussion