nologyance.net

日々のアウトプット

採用技術検討

近況

先日の記事でお伝えした通り、オリジナルサービスを作るために学習を続けています。 https://nologyance.net/2019/02/17/post-633/

構成の具体化

もう少し具体的な構成をイメージするために色々と調べた結果、それなりに固まってきたので記事にしておこうと思います。

構成案

フロントエンド

Vue.js + Vuex(必要が出てくれば) + UIコンポーネントライブラリ(未確定)

Reactから変更しました。 学習コストが相対的に低そうだと感じた点と、最近のコミュニティの盛り上がり方を加味しました。

バックエンド

Rails

ここは特に変わりないですね。

インフラ

以前はざっくりサーバーレスとだけ書いていましたが、追加で検討が必要な部分が出てきました。 候補は以下の組み合わせ。

構成図

静的ファイルホスティング

  • 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を利用することにしました。