個人の AWS 環境メモ
これはなに
個人の AWS 上で動かしているアプリケーションのメモとか。だいぶ前に作成したものとか、全体の構成がどうなっていたかわからなくなったりするので、メモがわりに残しておく。
個人サイトのホスティング
概要
CodeDeploy と Swift の Web Application Framework を使ってみたかったのでやったもの。しかし、EC2 インスタンスが月 3000 円もしてしまうので、最終的には S3 に移行した。リポジトリは残してある。
プロダクト
TasuwoDotNet
フレームワーク: Vapor
開発言語: Swift
https://gyazo.com/8a3398327b1bbac67f7cacf104254744
その後
料金削減のために、AWS Lightsail を利用することにした。インスタンスが月 $3.5 USD で、ロードバランサーが 18 USD なので、約 22 USD となり、10 USD くらい安くなる。が、まだ高い。
https://gyazo.com/00797b9bf21c9b0283feea4c5098acdb
ので、Let's encrypt を使うことにした。自動更新の仕組みを整えていないので、そのうち整えたい。
AWS 利用料金監視
概要
雑に月 3000 円くらい払っていたが、一度リソースを消し忘れてコストが跳ね上がったので、ちゃんと管理しようと思った。これでうまく動くのか、まだ作ってみたばかりでよくわからない。
プロダクト
GitHub にあげるレベルのコードは書いていないので何もあげていない。以下参照。
https://gyazo.com/4573829bf72cb76009517a3705d1a882
スマートホーム
概要
スマートホームみたいなことをしたかったので
Nature Remo のスマートホームスキルは、エアコンとテレビしかスマートホームに対応していない
その他の家電はカスタムスキル経由で起動する必要がある (「Alexa、Remo で ○○ つけて」など)
赤外線経由で起動できない家電は Amazon Echo 経由で操作できない
うちの加湿器は物理ボタンしかない
Switch Bot というデバイスを買ったが、Amazon Echo 経由で操作できない
ので、Alexa Home Skill の自作と、そのスキル経由でデバイスを操作するための Raspberry Pi 上で動くプログラムを書いた。Alexa Home Skill は特定の Lambda をトリガーできる。Lambda と Raspberry Pi の連携には AWS IoT を利用した。
ちょっとつまったところは、Raspberry Pi の OS は Raspbian だったが、これが CloudWatch Agent に対応しておらず、CloudWatch Logs にログを送信したい場合は IAM User を発行するしかなかったところ。
また、Alexa 開発のためのアカウント登録周りでも詰まった。下記参照。
プロダクト
HomeMaidJane
フレームワーク: Serverless Framework
開発言語: JavaScript
HomeMaidMary
フレームワーク: 特になし
開発言語: JavaScript (Node.js), ShellScript
https://gyazo.com/d8a2e63c1a91eea3978f4305ad9af2d1
おうちダッシュボード
概要
WxBeacon2 をつかって室内環境をモニタリングするやつを作った。せっかくなので AWS リソースを使ってやってみた。AWS IoT のルール/アクションを使ってみたことがなかったので使ってみた。AWS IoT はちょっとドキュメントが不足している感と、あまり日本で盛り上がってない感を感じるが、そんなことはないのだろうか?AWS リソースとの組み合わせが簡単なのはとても良い。料金もそんなに高くないのでお手軽に試せるのも良い。
ただ、CloudWatch のダッシュボードだとちょっと見に行くのが手間だし、何よりスマホからみづらいのでダッシュボード用の OSS を使うか、何か簡単なものを自作してみたい気持ちがある。
詳しくは以下に書いた。
プロダクト
envsensor-observer-py (fork)
フレームワーク: 特になし
開発言語: Python
Omron のリポジトリの fork。feature/for-aws-iot ブランチで AWS IoT 向けに少しコードを加えた
https://gyazo.com/758341c376ef66777568ede5573afe1c
MitoChat
概要
2017 年、会社のエンジニアハッカソンで作り始めたもの。確かその時のハッカソンのテーマがバーチャルだったかなんだったかで、推しの VTuber である 月ノ美兎 と擬似チャットみたいなものを作ったら面白いのでは?と思い作り始めた。ついでにフロントの技術に触れてみたかったので Vue.js に入門したのと、AWS SAM を使った Web API の開発を仕事でやっていたのでそれを趣味でも使ってみたかった。 イマイチな部分は、サーバ側で Swagger テンプレートを作成するところで、Kotlin コード -> Swagger テンプレートの生成が一発で上手いこといかなくて、一度生成した後にスクリプトで Swagger テンプレートを書き換えるみたいなことをしている。なぜか開発に Python, Ruby, Kotlin の環境が必要みたいになっている。 プロダクト
MitoChatFront
フレームワーク: Vue.js
開発言語: JavaScript
MitoChatServer
開発言語: Kotlin
https://gyazo.com/8b954bd3e2b22a3c1143ebf053ff94fa