🛒

【AWS×Java】SAMで冷蔵庫管理アプリを構築(API Gateway + Lambda + DynamoDB) 概要編

に公開

背景

冷蔵庫の前にホワイトボードを貼っており、買い物リストを手書きしてました。
しかし毎回スーパーマーケットで「今日何買わないといけないんだっけ?」となるので外出中も冷蔵庫の中身が分かるように冷蔵庫管理アプリを作りました。
個人開発の学習としてAWS SAMを初めて使い、サーバレスで冷蔵庫管理アプリを構築しました。この記事では概要と構成をまとめ、今後は各サービスの詳細や詰まった点と回避策を連載していきます。

アプリの概要

以下が作った冷蔵庫管理アプリです。
iPadを買うのが一番よかったのですが、ずっと冷蔵庫前に置いとくのはもったいないのでRaspberry Pi+公式ディスプレイを組み合わせて以下を作りました。タッチ操作で在庫を登録・更新できます。

図1: 冷蔵庫に貼り付けたタッチパネル。左が追加、右が在庫管理画面

(Raspberry Piでうまく日本語入力ができず、買い物リストがローマ字表示になっているのはいつか改善いたします)

以下の通り、スマホでも同じ内容が確認できますので外出中にも確認できます。

図2: スマホから同じデータを閲覧

アーキテクチャ(図)

フロントエンドはAmazon S3にホスティングした静的サイト(HTML/CSS/JavaScript)。
バックエンドはAmazon API Gateway + AWS Lambda(Java)+ Amazon DynamoDB。
ユーザー認証は Amazon Cognito で実装し、家族のみに利用を限定しています。

図3: サーバレス構成の全体像

(初めて構成図を作成しましたが、draw.ioというサイトにて簡単にプロっぽい?構成図を作成できました。)

今後の予定

構築の手順や各サービスの設定内容について今後連載していきます。
また、ちゃんと整理できたらGitHubリポジトリも公開予定です。

Discussion