むろっちのStacking

日々の中で学んだIT知識をメモして置く場所

golangでのドメインモデルの初期化、更新パターン

1. config構造体による初期化、更新 初期化 更新 Functional Option Patternによる初期化、更新 初期化 更新 3. MethodChainingに初期化、更新 初期化 更新 終わりに DDDを実コードに取り入れようとする際に考えさせられるのが、モデル初期化をどのように記…

YAMAHAルーター+lua scriptで簡易的な冗長構成を組んでみた

VRRPやHAが組めない異機種間で冗長構成を組みたかったのでlua scriptでなんとかしてみた はじめに 普通の冗長構成 HA構成(sophos XG Firewall) VRRP構成 構成 障害時の想定 設定 YAMAHA config lua script scriptのアップロード scriptのスケジュール(先述…

Echoで複数回Bind可能なBinderを作る

背景 echoではBind構文によりstructにRequestのQueryやBody部をマッピングすることができる しかしながらBody部は2回目以降Bindしようとすると以下のようにErrorが発生する "code=400, message=EOF, internal=EOF" これを複数回Bindできるようにしようと言う…

API Gateway & lambda FunctionでRedirectするEndpointを作成するサンプル

Lambda + API GatewayでAPI Gateway宛に来たリクエストをRedirectするEndpointをAWS-CDKで作成してみた 構成 API Gateway - Lambda FunctionをつなぐAWS-CDKを作成 codeはnodejs(typescript or javascript)12系 "aws-cdk": "1.27.0" 全体図 構成 API ※ API G…

Windows7環境下で共有フォルダアクセスが遅い場合のチューニング

共有フォルダアクセスが遅いときには様々な複合的要因が重なって発生しているケースが多い。 普段対応する際に考えているトラブルシュートをリストしてみた ストレージのパフォーマンスが遅い ネットワークのパフォーマンスが遅い 2拠点間のレイテンシが大き…

Djangoテンプレートのfilterを自作する

テンプレートのフィルターで3桁ごとに数値の区切りが欲しかったので filterの自作をしてみた フィルタ関数の作成 APP名/templatetags/tags.py from django import template register = template.Library() @register.filter(name='num_delimiter') def num_d…

自宅サーバーを自作するときに検討すべき要件

はじめに 最近はAWSとかGCPとかクラウドが流行っているのでわざわざ自宅にサーバーを持つ人は減っていると思う。 だが元々PC自作が趣味だったので自然な流れでに自宅サーバーを構築しようと考えていた 自宅サーバーを構築すると自分の懐から出ていくので費用…

SSHポートフォワードを悪用する

セキュリティの関係でアクセスしたいサーバーに通信が通らないケースは結構多いと思いと思う 今回はSSHポートフォワードを利用して一時的に直接通信不可能なセグメントへのアクセスを可能にする方法紹介する 状況:ローカルPCセグメントからターゲットサーバ…

PythonでIPアドレスを簡単に扱う方法

IPアドレスってプログラムから扱おうとするとめんどくさいですよね 数字だけならいいのですが、たいてい192.168.0.2とか間にドットが入ってくる またサブネットもオクテット刻みであればドットごとに分けて数字として計算すれば加算、減算できますが/23とか …

Railsで簡単にMarkdownを使えるようにする

たまにRailsアプリだけど、静的ページだから手間をかけずにメンテしたいとか、 Railsわからない人にもメンテしてほしいページとかがあります そんなときにはMarkdown形式でページが作成されていると便利です 今回はRubyのMarkdown用Gem「redcarpet」を利用し…

pysmbの設定とSMBバージョン差異について

pythonでSMB共有をするときは「pysmb」ライブラリが有名かと思います。 使い方はこんな感じです import platform from smb.SMBConnection import SMBConnection if __name__ == "__main__": user = '' pw = '' remote_host = '' ip = '' domain_na…

DockerでMacVlanを使う際に気を付けること

本稼働のDockerを入れようとしたときにちょっとはまったのでメモ。 Dockerに外部からアクセスさせるときに標準ではブリッジネットワーク+ホストIPへのポートフォワードをするが あまりパフォーマンスがよくないとの話を聞き、本稼働用DockerへはMacvlanを試…

vSANの性能について

最近のサーバー周りではHCI(ハイパーコンバージドインフラストラクチャ)が流行っています。 今までストレージで処理していた冗長性(RAID)部分を筐体間でRAIDを作るような仕組みです ベンダー資料やメーカーの説明を聞く限り、パフォーマンスに問題がない…