よこやまの日記・ブログを自作する編

車輪の再開発でも自分専用ブログをつくるんや!

2日目:技術選定をする。

技術選定をする。

さて、ブログのシステムを作る上でまず行うべきが技術選定。 使用するプログラミング言語フレームワークに加えてインフラの先手にも必要。

そこそこ使い慣れてる技術で、ナウい(モダンな)もの、使っていて楽しい物、自分の勉強になる物。という基準で選ぼうと思う。 加えて、趣味なのでコストのかからない安い物!!(←重要w)

いろいろ考え結果、以下のようにしようかと思う。

  • フロントエンド

  • バックエンド

    • 言語: Go
    • GraphQL APIサーバ
    • SQLのORマッパーとしてsqlboil
  • インフラ

まずフロントエンドNuxt.jsでを使う。

  • SSR(サーバサイドレンダリング)もできるためSNS共有時にはOGP画像にも対応できる。
  • 仕事でも趣味でもVue.js使ってるから慣れてる。
  • 個人的に型のあるTypeScriptが好き。C#っぽい書き方ができるし。
  • デザインの実装はできる限り簡略化したいのでマテリアルデザインの実装であるVuetifyを使う。(仕事でも使って慣れてるしw)

フロントエンドのインフラはAWS Lambdaを採用する。理由は安いそして実は使い慣れていたりするから。

以前僕がQiitaに書いたこちらの記事Nuxt.jsをAWS Lambda上で動かす.サーバレス・サーバサイドレンダリングと同じ方法で行う。このときはJavaScriptだったけどおそらくTypeScriptでも行けるだろうと。

ちなみに、ほとんど更新してないけどこのサイトもNuxt.jsをLamba上で動かして実現している。

photos.hiroyky.com

バックエンドはGraphQLのAPIを用いる。言語はGo言語。

理由はGraphQLできちんとシステムを完結させてみたいから。(要するに自分のための勉強w) 以前、QiitaにNode.jsでGraphQL APIを実装という記事を書いたことはある。 このとき可能性は感じたので今回も採用したい。Go言語にしたのは、非公開の別趣味プロジェクトで使ってみて意外と便利だったからと最近いつもGo言語を書いていて慣れているから。

あと、フロントエンドとバックエンドで同じ言語だと飽きそうだから。

一応だけどこんな言語選定するのはあくまでも趣味だから。業務だったらこんな理由で言語選定はしない!(..;)

データベースはMySQLだが、AWSのRDSマネージドサービスではなく外部のMySQLを用いる。理由はAWSのそれは高いからw AWSのMySQLサービスであるAuroraDB等をはじめ冗長構成やサービスレベルが担保されていて信頼性として安心安全なのですが今回は”趣味なので”そこに比重を行いい。

たまたまTwitter上で教えて頂いたkagoyaというサービスの導入を検討してみる。多分実際の契約と導入は先になるだろうけどw 月額440円ってEC2インスタンスより安いしね。

AWSも冗長性なしの格安データベースほしいです。)

(以下、広告)