アイデアは早めに形にした方がいいぞ!2020


アイデアは早めに形にした方がいいぞ!2020

似たような内容の記事は探せば5万と出てくると思います。
私もインターネットをクロールしているときに見たことがある気がします。

ですがそういった歴史上の出来事がすっかり頭から抜け落ちていた私は、どちらかといえば経験から学ぶタイプ、つまり愚者側の人間だったためこのような事態になってしまいました。

今後このようなことがないよう戒めのために記録を残しておくことにします。
読み物と思って見ていただければ感激です。

TL;DR

アイデアは早い段階で形にしたほうがいいぞ!

前書き

令和時代になった今、AWSをまともに触っていないのは自分だけなのではないかと思い、何かしらのWebアプリケーションをデプロイしてみようと思った9月の秋が始まりである。

何を作った?

動画の切り抜きをシェアするWebアプリを開発した。
個人的にめちゃくちゃ欲しかった。

https://cutters.work/home

隙間時間を有効に
CUTTERSは、動画や生放送を見たいが時間がない人のためのツールです。
他人が投稿したおすすめの動画ポイントをシェアして、盛り上がりましょう。

仕組みとしては単純で、youtubeの動画はパラメータを指定してやることで一定の範囲内を再生することができるため、これを利用したものになる。

入力値として動画のURL切り抜きの開始時間切り抜きの終了時間を指定してやることで下記のようなクエリを作成する。

切り抜きのiframe要素
<iframe 
  src="https://www.youtube.com/embed<%= @uri.path %>?start=<%= @cutter.start_time %>&end=<%= @cutter.end_time %>" 
>
</iframe>

これをiframeなどの要素で表示することで切り抜きを簡単に投稿、シェアすることができるというサービスである。

今回はAWSに慣れるということに重きを置いていたので、Webアプリケーションを楽にデプロイできるという認識のもとElastic BeanstalkというAWSのサービスを利用することにした。

また、慣れているという理由からRuby on Railsを使用して開発をすることに決めた。
仕組み自体は難しいものでもなく、EC2を利用したことはある

短い時間で公開ができそうだな。

開発環境

  • Mac book pro
  • Runy on Rails 6.0.2
  • ruby 2.6.3
  • Docker

問題が発生する

だが、アプリの公開は順調に進まなかった(今では後悔ばかりだ)

問題1. Elastic Beanstalkわからない

単にWebアプリを開発してデプロイするだけなら簡単そうだと考えた俺は背後から近づいてくるwenpackerに気づかなかった。

Rails6は標準でwebpackerでのjavascriptの処理をサポートしており、Elastic Beanstalkでデプロイするときにも、独特の設定を記述しないといけない(例えばyarnなどのコマンドがインストールされていないといけないなどだ。)

設定ファイルは以下のドキュメントを見ながら設定することができる。

まずここの設定で詰まってしまった。

あるブログを参考に、公開されている設定ファイルに追加で以下のように記述することでエラーログが発生しなくなった

19_install_webpack_rails:
     command: "bundle exec rails webpacker:install"
     command: "rails webpacker:install"

しかし、今度はエラーログが発生していないのにもかかわらず、状態がFailedになるという問題にぶつかってしまった。
sshで接続し、直接エラーログを参照しても、コマンドは正常に終了していると表示されており、エラーが発生していないため原因は謎だ。


余談だが私はAWSの無料枠を利用しており、無料枠の80%を超えると「そろそろ超えるよ」というメールを受け取るように設定していたのだが、「そろそろ超えるよ」メールと、料金発生メールが同時にくるという現象に襲われてしまった。


このようにAWSと格闘していると2週間の時がすぎてしまった

問題2. 先駆者現る

もたもたしている間に同じことを考えていた人が似たサービスを公開してしまった。

完全にレスポンシブデザインで作成された美しいそれはcssやWebデザイン初学者の私を過去へ置き去りにした

AWSを学ぶことに重きを置いていたとはいえ先をこされてしまったのは純粋に悔しかった。
主機能さえ作ってしまえば細かいところはあとで足していけば良かったのである。

物づくりのモチベーションが落ちるのは、自分の作っているものに価値がないと気がついたときだと知った。

結論

主機能が出来次第デプロイし、徐々に改善していくのがいいかも