採用技術検討
近況
先日の記事でお伝えした通り、オリジナルサービスを作るために学習を続けています。 https://nologyance.net/2019/02/17/post-633/
構成の具体化
もう少し具体的な構成をイメージするために色々と調べた結果、それなりに固まってきたので記事にしておこうと思います。
構成案
フロントエンド
Vue.js + Vuex(必要が出てくれば) + UIコンポーネントライブラリ(未確定)
Reactから変更しました。 学習コストが相対的に低そうだと感じた点と、最近のコミュニティの盛り上がり方を加味しました。
バックエンド
ここは特に変わりないですね。
インフラ
以前はざっくりサーバーレスとだけ書いていましたが、追加で検討が必要な部分が出てきました。 候補は以下の組み合わせ。
構成図
静的ファイルホスティング
- S3 + CloudFront
- netlify
すべてのリソースをAWSで完結できるのが1案目の利点。 一方でnetlityは少し調べた感じだとかなり管理が楽になりそう。 https://www.netlify.com/
バックエンドサーバ
- Lambda
- ECS(Fargate)
関数で処理してしまうか、コンテナで処理するのかの違い。 AWS BlackBeltのこちらの資料に使い分けが書いてありました。 https://www.slideshare.net/AmazonWebServicesJapan/20180724-aws-black-belt-online-seminar-amazon-elastic-container-service-for-kubernetes-amazon-eks-aws-fargate
今回のアプリケーションの場合、バックエンドの振る舞いとしては単純なCRUDのみを想定しているため、 1分単位で課金されるfargateよりもリクエスト単位及び100ミリ秒で課金されるlambdaのほうが相性がよさそうですね。
検討結果
比較検討した結果、静的ファイルのホスティングはnetlify、 バックエンドの構成はLambdaを利用することにしました。