Fargateで動くSIM残容量をLINE通知システム 概要編
概要
実家の「ギガが減る」問題のために、AWS DVA試験勉強兼ねてサーバレスで仕組みを作った話
システム構成図
- LambdaでSIM残容量をスクレイピングしてDynamoDBへ保存
- FargateのコンテナでDynamoDBから値を取り出して、JSON形式でSQSへ
- 別のコンテナでSQSから値を取り出して、LINEのメッセージで残容量を通知
はじめに
陸の孤島の実家ではSIMを挿したiPadが活躍している
ちょっとyoutubeを見だすとギガが減り、気づいたら残容量枯渇して月末は低速モードオンリーの暮らしだった
SIMの容量を増やしてもyoutube見続けたらすぐ枯渇してしまう
2019年の年末年始の間にAWS DVA試験勉強もかねて何か作りたかったので、
簡単なお題として残容量を通知してみることにした
重要なこと
まずは動くものを作るんだと、それを念頭において始めた
- 完璧を目指すよりまず終わらせろ
- 出ない神本より出たクソ本
基本方針
- AWS DVAの試験範囲にでてくるサービスを出来るだけ盛り込みたい
- 毎日動いても月$1以下で稼働して欲しい
- Goで何か書きたい
- Fargateを使ってみたい
勉強になったこと
- Lambda
- DynamoDB
- SQS
- System Manager Parameter Store
- ECS(Fargate)
- Codeシリーズ
- IAMロール(一番ハマったところかもしれない)
- SDK(DynamoDB, SQSのGoからの取り扱い)
できなかったこと
- IaC(Terraform)
インフラの仕事がら重要なポイントだけど、Fargateは一切手を付けたことがなかったので、
初手Terraformで上手くいくとは思えなかった
まず終わらせることが重要だったので試行錯誤しながら手作業で進めた
結果的にはFargateのタスクであれやこれやハマったので良い判断だったと思う
解説
部分部分の解説をコードを交えて紹介していく予定
感想
Fargateは前々から使ってみたかったのでいい機会と、いい勉強になった
スポットインスタンスのおかげで1日2分ほどの実行だからさほど課金されない