概要
ECS Fargateがリリースされてから検証・導入を進めています。
インスタンスの管理をする必要がなくなり非常にメリットを感じている一方、本番環境で使う上で注意すべき点もあるのでそこをまとめます。
環境
- Fargateプラットフォーム 1.2.0
問題点
dev, stg環境で検証してみて、現状感じている問題点を挙げていきます。
続きを読む先日リリースされた1.11でソケットオプションを設定できるようになりました。
これによってLinux 3.9から導入されたSO_REUSEPORT
という、同じポートでbindすることが可能になる機能が利用可能になります。
一言で言うとGraceful Restartが可能になるという点です。
通常サーバプロセスを再起動するとその瞬間はリクエストを捌けなくなります。
Rolling updateのような事ができる環境であればいいですが、そうではない場合
SO_REUSEPORT
を使うといった手段でデプロイ時に一時的に古いプロセスを残したまま新しいプロセスを起動し、起動完了後に古いプロセスを落とすといった形で実現する必要があります。
ただし a
, b
のような手段でないと bind error で新しいプロセスの方は起動できません。通常使用中のポートは別プロセスで利用できないからです。
今回リリースされたgolang 1.11では b
を自前でサクッと対応できるようになります。
ローカルでサクッとfluentdの検証をしたい時に毎回調べ直していたのでメモ。
fluentd.conf
という名前で設定を用意します。
forwardされたログをstdout
に出力します。
<source> @type forward port 24224 bind 0.0.0.0 </source> <match *.*> @type stdout </match>続きを読む