Tech Assist

TECH & LIFE in NAGOYA

名古屋エリアでのフリーランスエンジニアとしての活動記録。

2019年04月08日

サイクリスト向けトレーニング管理ツール【StackWorkouts】をローンチしました!

ちょっとマニアックなWEBサービスをローンチしました。
その名もStackWorkouts(スタックワークアウツ)です!
Workout(ワークアウト)とは自転車のトレーニングを表しています。Stackは積み重ねの事。つまり自転車トレーニングを積み重ねるためのおたすけツールという趣旨のWEBサービスです。

StackWorkouts
※StackWorkoutsにログインしたときに表示される画面

私は自転車ロードレースが趣味で平日は2時間弱、週末は4時間程度のトレーニングをするようになって5年くらいになります。
最近は自転車(ロードバイク)にパワーメーターをつけるというのがかなり一般化してきていて、ロードバイク乗りが集うSNSであるStravaを見ていると多くの方の走行ログにパワーデータが記載されています。

Strava
※ロードバイク乗りが集うSNSのStrava

私ももう4年ほど前からパワーメーターを使い続けているのですが、これがあると自分自身がいつどのくらいの強度で何分こぎ続けられたかというのを詳細に記録しておくことが出来るので、後で振り返って同じ条件で走っているのを比較してみると徐々に成長しているのがリアルな数値としてわかってしまうのです。

パワーデータ
※平日のローラートレーニング時のパワーデータ(紫色の線がパワー)

例えば最初20分200w出すのが限界だったのが3か月後には20分240w出せるようになっていたという事が分かります。この差は物凄く大きいです。速度で言うと30km/hで走るのがやっとだったのが、35km/hで走り続けられるようになるくらいの違いがあります。この体験は一度経験するとほんとに病みつきになります!
もちろんそうなるためにはどんどんトレーニングを積み重ねていく必要があります。
その時に使うためのツールがStackWorkoutsです。
パワーデータと走行時間からトレーニング量を数値化し、徐々にパフォーマンスを高めていけるように設計してあります。

今回このサービスは以下の構成で作成しました。
  • 言語:PHP7.2
  • フレームワーク:Laravel5.8
  • データベース:MySQL5.7
  • インフラ:AWS ElasticBeanstalk

海外からの利用も考慮しており多言語化対応したことと、いつでもスケールアウトできるようにAWS上にアプリを設置しました。
名古屋エリアに住んでいるとなかなかWEBサービスを仕事で経験することはなく、今までクラウドを使わないといけないような案件に携わることはほぼ皆無に等しい状況でした。ならば自分でそういったWEBサービスを運営することがシステムからマーケティングまで幅広い経験を積むための一番の近道と考えました。
もちろんヒットするかどうかなんて全くの未知数ですが、小さな一歩を踏み出さなければ何も始まらないのです。

「小さいことを積み重ねることが、とんでもないところへ行くただ一つの道!」
by イチロー

これからもおじさんの挑戦は続きます。

2019年04月06日

EC2へのSSH接続時にセッションタイムアウトする時の対処法

結構ハマったのでメモ。

TeraTermからAWSのEC2へSSH接続しているとすぐに接続が切れてしまうのでとても不便です。
Google先生に聞いてみるとサーバ側の設定を以下のようにすると解消されるとのことだったのでやってみましたが何故かうまくいきません。

■対処法1
/etc/ssh/sshd_config
に対して
ClientAliveInterval 60
を設定する

■対処法2
~/.ssh/config
に対して
ServerAliveInterval 60
を設定する

60秒という設定がいけないのかなと思い30秒とかにしてもダメでした。
ちなみにEC2のインスタンスはAmazonLinuxです。

そこでサーバ側ではなくクライアント側でなんとかならないかと思い以下を試してみました。

TeraTermのメニューから【設定】→【SSH】を選択。
ハートビート(keep-alive)のところを30秒に設定。


すると成功!
SSH接続が切れなくなりました。
30秒という時間はサーバ側との兼ね合いなので環境によって適切な値(サーバ側でタイムアウトしてくる時間よりも短い時間)に調整する必要があります。