Skip to Content

Fargateで動くSIM残容量をLINE通知システム 概要編

概要

実家の「ギガが減る」問題のために、AWS DVA試験勉強兼ねてサーバレスで仕組みを作った話

システム構成図

  1. LambdaでSIM残容量をスクレイピングしてDynamoDBへ保存
  2. FargateのコンテナでDynamoDBから値を取り出して、JSON形式でSQSへ
  3. 別のコンテナでSQSから値を取り出して、LINEのメッセージで残容量を通知

はじめに

陸の孤島の実家ではSIMを挿したiPadが活躍している
ちょっとyoutubeを見だすとギガが減り、気づいたら残容量枯渇して月末は低速モードオンリーの暮らしだった
SIMの容量を増やしてもyoutube見続けたらすぐ枯渇してしまう
2019年の年末年始の間にAWS DVA試験勉強もかねて何か作りたかったので、
簡単なお題として残容量を通知してみることにした

重要なこと

まずは動くものを作るんだと、それを念頭において始めた

  • 完璧を目指すよりまず終わらせろ
  • 出ない神本より出たクソ本

基本方針

  1. AWS DVAの試験範囲にでてくるサービスを出来るだけ盛り込みたい
  2. 毎日動いても月$1以下で稼働して欲しい
  3. Goで何か書きたい
  4. Fargateを使ってみたい

勉強になったこと

  • Lambda
  • DynamoDB
  • SQS
  • System Manager Parameter Store
  • ECS(Fargate)
  • Codeシリーズ
  • IAMロール(一番ハマったところかもしれない)
  • SDK(DynamoDB, SQSのGoからの取り扱い)

できなかったこと

  • IaC(Terraform)

インフラの仕事がら重要なポイントだけど、Fargateは一切手を付けたことがなかったので、
初手Terraformで上手くいくとは思えなかった
まず終わらせることが重要だったので試行錯誤しながら手作業で進めた
結果的にはFargateのタスクであれやこれやハマったので良い判断だったと思う

解説

部分部分の解説をコードを交えて紹介していく予定

  1. Fargateで動くSIM残容量をLINE通知システム DynamoDBから値の取得

感想

Fargateは前々から使ってみたかったのでいい機会と、いい勉強になった
スポットインスタンスのおかげで1日2分ほどの実行だからさほど課金されない