概要
以前
という記事を書きましたが、また別のケースでハマった話を書きます。
今回はACLを有効にしたConsulクラスタのサーバをアップグレードしようとしたら
Error joining address 'xxx.xxx.xxx.xxx': Unexpected response code: 403 (ACL not found) Failed to join any nodes.
と出てクラスタに登録されなくなった、という問題です。
環境
- Consul 1.5.0
先日AWSの発表で
と、コンテナの依存関係が制御できると発表がありました。
何が嬉しいかというと、サイドカー系コンテナに依存している場合アプリケーション側でそのコンテナの起動を待つ処理が必要だったのが、不要になるという点です。
こちらで以前デメリットとして指摘した点ですが、AWS側でサポートしてくれました!
まだ新しい機能なのでドキュメントも日本語対応していないため、確認する際は英語ドキュメントを参照してください。
Task Definition Parameters - Amazon Elastic Container Service
続きを読むこちらで
という対応をしました。
当時は試行錯誤の連続でしたが対応から1年程経ち、ある程度設計もfixされてきたので知見をまとめます。
シャード構成のMongoDBがチャンクの分割に失敗し、一定サイズを超えるとjumbo
というフラグが付きます。
普通の環境ではそうそう起きませんが、大量のドキュメントを扱っているとたまに発生します。
今回はそれの解消方法を紹介します。
シャード構成にしてシャードキーを設定することで本来分散するようになりますが、状態を確認した時に
mongos> sh.status() ... balancer: Currently enabled: yes Currently running: unknown Collections with active migrations: balancer started at Thu Apr 18 2019 23:55:15 GMT+0900 (JST) test.foo started at Thu Apr 18 2019 23:55:16 GMT+0900 (JST) Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: 1296 : Failed with error 'aborted', from shard_4 to shard_1 1296 : Failed with error 'aborted', from shard_2 to shard_1 11669 : Failed with error 'aborted', from shard_0 to shard_1 ...
このようにmigrationに失敗している時はjumboチャンクが発生している可能性が高いです。
続きを読むnpmのバージョンを上げた(v6.x.x)ところ、以下のissueと同じケースに当たってCircleCIのキャッシュが効かない問題が起きました。
具体的には
package-lock.json
を元にnpm install
すると、package-lock.json
が修正されるpackage-lock.json
のハッシュ値が変わりキャッシュが使えないという現象です。同一バージョンなのになんでやねん、という状況。
旧バージョン(v5.6.0)のnpmであれば上記の現象は起きなかったため自分の環境をそれにすればいいわけですが、他のメンバーが加わった時に同じ問題が起きうるのでnpmのバージョンを固定する方法を探してみました。
続きを読むAngular CLIはTree Shakingだったりbuild-optimizerなど、それだけである程度最適化する事が可能ですが、一方で外部ライブラリなどはどれくらいファイルがあるか見落としがちです。
今回はそういったものを可視化する方法を紹介します。
webpack-bundle-analyzerという解析ツールを使います。
これを使うと以下の画像のようにwebpackのバンドルファイルを可視化することができます。
ref: https://github.com/webpack-contrib/webpack-bundle-analyzer
続きを読む