職場でクラウドサービスのミドルウェアの設定についてそう聞かれて、答えはしたけれどうまくは答えれてなかったなって考えて。
次聞かれたらもう少しうまく答えよう(。- .•)
もくじ
結論、基本的に現時点は必要
利用するクラウドサービスによるケースバイケース。
→
AWS S3やLambdaなどのサーバレスなサービスなら不要。だからサーバレスアーキテクチャが人気です。
ミドルウェアやサーバを意識する必要がない、クラウドの利点が体現できたサービスを組み合わせて構成するシステム構成のことです。
@see
サーバレスアーキテクチャとは何か?~AWS LambdaとAPI Gatewayによる簡単なAPIの実装を試す
ミドルウェアはデフォルト設定じゃだめなの?って質問されて。
デフォルトはサーバ全体のリソースを1サービスだけで枯渇させないように控えめ設定になっている。だから物理リソース限界のはるか前でストップがかかって障害になる場合がある。想定負荷サイズと物理リソースに合わせて調整が必要。
— 優さん@個人開発 (@yuu13n6) October 5, 2019
クラウドのサーバレスなサービスであればデフォルトで良い
例)
AWS S3
クラウドサービスだけれど、生のミドルウェアをGUIから制御しているようなやつ
- AWS RDS
- AWS ElastiCache
- など
インスタンスサイズをスケールアップすれば、スペックと一緒にパラメータも上むきに変更されるので対応できるようになっている。
ダウンしたら、お金を支払ってスペックあげれば解決できるってシステムになっている。お金で解決するってやつですね笑
クラウドベンダー側はそのほうが都合が良い。ユーザもミドルウェアの勉強にコストを取られたくないというので利害が一致している。
クラウドテクノロジーの進化で自動的にスケールするようにもなってきています。ここらへんが良いものは高いって状態で、収穫加速やらムーアの法則によってコストは安くクラウドの品質が良くなってきているのでどんどん時間解決していっている問題。
お金がない場合
- パラメータを調整したら対応できること、あらかじめ設定していれば防げるものがあります。
- 生のミドルウェアの知見を得ること
どのような項目を設定するの?
- 最大接続数
- 1プロセスあたりの処理リクエスト数
- 1プロセスに割り当てるメモリ量
- タイムアウト設定
- キープアライブ
- 1サービスに割り当てるメモリ最大割り当て量
- エラー時の処理
- ログの出力方
- キー最大サイズ
- キャッシュ
クラウドで複雑になっている面がある
ミドルウェアのチューニングという作業は、私はテクノロジーの力でなくなるべき作業だと考えています。そうなると思うしそうなってきている。
ただクラウドで簡単になってきているのに、クラウドサービスで推奨される『うまく使う為のパラメータ』、それぞれの知識やノウハウも必要になっています。
『クラウドエンジニア』なんて職種も生まれました。テクノロジーによって職業がなくなり、新しい職業ができる。それは歴史から普通のことなのですが、
バッドノウハウ不要で簡単に。
簡単に扱えるというのがクラウドの利点だから。ミドルウェアの知識は必要ないようにするが、私たちのクラウドサービスのことは知りなさい。それはおかしい。それはみんな違和感に感じているところだから、どんどん抽象化されて簡単になる。
今は過渡期。
クラウドでも実際は生のミドルウェアをGUIから動かしているみたいなものはタイムアウト設定や最大サイズ調整が必要な場合があって。
でもこういう匠の技?バッドノウハウ?が必要な場面はなくなってきているし、なくなるべくしてなくなる作業。クラウド自体のノウハウも必要な過渡期。
— 優さん@個人開発 (@yuu13n6) October 5, 2019
[amazon_link asins=’482228381X’ template=’ProductCarousel’ store=’izayoi55-22′ marketplace=’JP’ link_id=’34818383-a46f-42e5-a5cd-f1aa4f37ed8c’]