タグ

ブックマーク / so-wh.at (14)

  • AWS FargateのECSタスクのコンテナでポートフォワードする - so what

    ECS ExecがどうもマネージドなSSM Agentを使って動いているということはわかっていたが、実際どうなっているのかよくわからなかった。 New – Amazon ECS Exec による AWS Fargate, Amazon EC2 上のコンテナへのアクセス | Amazon Web Services ブログ デバッグに Amazon ECS Exec を使用する - Amazon ECS AWS Fargateで動いているコンテナにログインしたくて Systems Manager の Session Manager を使ってみた話 - SMARTCAMP Engineer Blog 踏み台EC2を廃止してSession Manager接続に置き換えました | by Daichi Harada | Eureka Engineering | Sep, 2021 | Medium a

    AWS FargateのECSタスクのコンテナでポートフォワードする - so what
    clavier
    clavier 2021/10/25
  • ndjsonをソートするプログラムを書いた - so what

    github.com 経緯 qrnを作ってからndjsonとかJSON Linesとか呼ばれているJSONを一行にして改行で並べたフォーマット*1がなかなか合理的で便利なことに気づいた。 たとえば 複数行のデータ(SQLなど)をエスケープして一行にまとめられる jqで加工・フィルタリングしやすい とか。 一方でcoreutilsみたいな基的なツールはなかなか見つからなくて、複数ファイルをJSONのキーでJOINしてキーの値でソートする、みたいなことをやろうとすると、ツール探す・ツール作る・sed/awk/ruby/etc..とひと手間かけなくてはいけなくて、なにかそういうツールが欲しいと思っていた。 sortを作る GUN sortやBSD sortの良いところは、どれだけ大きいファイルの入力しても、時間はかかってもソートしてくれるところで、あれはどうなっているのかなと調べたら外部マージ

    ndjsonをソートするプログラムを書いた - so what
    clavier
    clavier 2021/08/27
  • ProxySQLをつかったRDSの切り替え - so what

    ProxySQLとは ProxySQLMySQL用のL7のプロキシサーバで、プロキシサーバのレイヤでR/W Splittingできたり、クエリの書き換えをできたり、負荷分散などができたりする便利ミドルウェアです。 www.proxysql.com Dropboxの中の人が書いているみたいで、Perconaの推しミドルウェアみたいです。(開発にも関わっているのかな?) あとQiitaにもいくつか記事が上がってます。 https://qiita.com/search?q=ProxySQL 設定の管理が結構独特で、MySQLっぽく振る舞うsqliteで管理されていて、動的にバックエンドのサーバを書き換えたりすることができます。設定まわりの概念的なものは『ProxySQL触ってみた - Qiita』がわかりやすいかも。 動的なバックエンドの切り替え 管理用インターフェースに対して、以下のようなク

    ProxySQLをつかったRDSの切り替え - so what
  • fstaidというHAデーモンを作った - so what

    fstaidというHAデーモンを作りました。 github.com HeartbeatとかCorosyncとかPacemakerの代替を考えて作ったソフトウェアです。 なぜ作ったのか? それほど多くはないんですがたまに「先方の許可するIPアドレスは1つしかないから、フェイルオーバー時にElasticIPを付け替える感じで」という案件がたまにあるんですよ。 そうすると「Corosync/Pacemakerでクラスタ組むか。だるいな…」ということになって、Heartbeat/Corosync/Pacemakerを使いたくない欲が高まった結果、作成されました。 KeepalivedやSerfを使ってクラスタを組むこともできるんですが、どうもやりたいことに対して、オーバーキル感とか明後日の方向感がぬぐえない感じでいました。 話は変わってMHAです。 MHAいいですよね。安定した動作もレプリケーショ

    fstaidというHAデーモンを作った - so what
  • Docker+confdはなかなかよいと思う… - so what

    Dockerでいろいろやりたいことがあったので、いろいろ調べてました。 具体的には 設定ファイルのテンプレート化 設定の動的な管理と、変更に伴う継続的な設定の反映 要するに設定が変更されたら設定ファイルが更新されてミドルウェアがリロードされると でまあEntrykitとconfdを教えてもらったんですが、継続的な設定の更新を考えるとconfdがよかろうと。codepの機能は必要ですが、それだけならdumb-initで十分そうでした。 で、以下のようなファイルを用意。 Dockerfile FROM nginx:latest MAINTAINER Genki Sugawara <sgwr_dts@yahoo.co.jp> ENV DUMB_INIT_VERSION 1.1.3 ENV CONFD_VERSION 0.11.0 RUN apt-get update RUN apt-get in

    Docker+confdはなかなかよいと思う… - so what
  • メールアドレスをマスクしてpostfixのログをfluentdに流す - so what

    前回の記事のfluent-plugin-filter-parse-postfixはデフォルトでメールアドレスをマスクするようにしている。 <source> @type tail path /var/log/maillog pos_file /var/log/td-agent/postfix-maillog.pos tag postfix.maillog format none </source> <filter postfix.maillog> @type grep regexp1 message status= </filter> <filter postfix.maillog> @type parse_postfix mask true # デフォルト値 #include_hash ture </filter> { "time":"Feb 27 09:02:38", "hostname

    メールアドレスをマスクしてpostfixのログをfluentdに流す - so what
  • GitHub+Amazon SNS+Lambda+CloudFormationで簡易CI - so what

    先ほどの記事に引き続き。 GitHubからAmazon SNSLambdaにイベント飛ばせば簡易CIができそうだだったので作ってみた。 処理の概要 GitHubにpush→Amazon SNSLambdaにイベント Lambdaがイベントをフック→cfnスタックを作成 cfnスタックがEC2インスタンスを起動→git clone bundle exec rspec cfnスタックは処理完了後に自動的に削除 Lambda Function こんな感じ。 var Promise = require('bluebird'); var AWS = require("aws-sdk"); AWS.config.update({region: 'ap-northeast-1'}); var cloudformation = Promise.promisifyAll(new AWS.CloudFor

    GitHub+Amazon SNS+Lambda+CloudFormationで簡易CI - so what
  • S3+Lambda+CloudFormationでサーバレスyumリポジトリ - so what

    先日の記事で、大きめの処理をLambda+CloudFormationで実行するめどがついたので、S3+Lambda+CloudFormationでサーバレスyumリポジトリを作ってみた。 処理の概要 S3にrpmを追加・更新・削除 Lambdaがイベントをフック→cfnスタックを作成 cfnスタックがEC2インスタンスを起動→S3リポジトリをダウンロード createrepoを実行して、インデックスをS3にアップロード cfnスタックは処理完了後に自動的に削除 Lambda Function こんな感じ。 var Promise = require('bluebird'); var AWS = require("aws-sdk"); AWS.config.update({region: 'ap-northeast-1'}); var cloudformation = Promise.pr

    S3+Lambda+CloudFormationでサーバレスyumリポジトリ - so what
  • fluentdとKinesisで雑にログを集める - so what

    aws-fluent-plugin-kinesis v0.3.0リリースされました。待望のPutRecords対応。 ただし、入力プラグインはまだマージされてません。風の噂によると近いリリースでマージされるとか、されないとか… https://github.com/awslabs/aws-fluent-plugin-kinesis/pull/10 家にマージはされていないのですが、フォークしたリポジトリから直接インストールすれば、Kinesisの入力プラグインが使えます。 git clone https://github.com/winebarrel/aws-fluent-plugin-kinesis.git cd aws-fluent-plugin-kinesis git checkout add_in_plugin bundle install bundle exec rake in

    fluentdとKinesisで雑にログを集める - so what
  • S3をgitのリモートリポジトリにする - so what

    3年前の話題が自分的に再燃したので、ブログを書く。 要約 jgit(パッチバージョン)を使うとS3をリモートリポジトリにできます gitのカスタムコマンドを作るとさらにシームレスに連携できます jgit jgitJavaで実装されたgitでEclipseのプラグインなどで使われているが、S3をリポジトリにできるというおもしろ機能がある。 ただし、家のバージョンではus-east-1しか使えなくて「うーむ…」と思っていたのだが、ソース見たら案外簡単に直せそうだったので、直してプルリクを投げた。 修正版jgitの作り方 brew install maven git clone https://github.com/winebarrel/jgit.git cd jgit git checkout origin/support_for_other_region -b support_for_o

    S3をgitのリモートリポジトリにする - so what
  • fluentdとDataDogでアクセスログをグラフ化 - so what

    DatadogはMuninとGrowthForecastを合わせたようなモニタリングサービスで、主に『エージェントをインストールしてサーバ情報をグラフ化』と『APIでmetricを送信してグラフ化』をしてくれます。*1 fluentdと相性が良さそうなので、アクセスログをDataDogに投げたりするためのプラグイン(とパッチ)を書きました。 fluent-plugin-datadog Pull Request 修正版gem ※2/22 17:19注) fluent-plugin-ddをリリースしました fluent-plugin-unit-time-filter 参考: http://so-wh.at/entry/2014/02/08/fluent-plugin-unit-time-filter ※2/09 20:45注) 0.1.0をリリースしました ※2/17 14:26注) flue

    fluentdとDataDogでアクセスログをグラフ化 - so what
  • siege便利ですよ、siege - so what

    Webアプリの負荷テストツールにsiegeというのがありまして、個人的にはずいぶん前から使っていたのですが、会社ではあんまり知られていなかったのでエントリ書きます。 http://www.joedog.org/ これは何? 簡単に言うと高機能なabです。JMeterほどの機能は必要としないけどabよりもうちょっとめんどくさいことがしたい、というときに便利です。具体的には URL並べて簡単なシナリオを実行できる 並列にリクエストを投げれる ほかにもCookie使えるとかコネクションをcloseしないようにできるとかPOSTできるとか細々ありますが、詳細はマニュアルを参照をば。 あと、Sproxyというシナリオ記録用のプロキシサーバもあるみたいですが、こちらは使ったことはないです。 不便な点を上げると JMeterほど複雑なことはできない 特に定数スループットタイマみたいなのがないのが痛いです

    siege便利ですよ、siege - so what
  • Piculet/Kelbimというツールを作りました - so what

    Piculet https://bitbucket.org/winebarrel/piculet Kelbim https://bitbucket.org/winebarrel/kelbim 以前作成したRoadworkerと同様に、AWSの設定をRubyのDSLで管理します。Piculetはセキュリティグループを、KelbimはELBを対象としています。 Piculetのほうはクラスメソッドさんのブログで紹介していただきました。ありがたいことです。 使い方とか ホームページを読めばだいたい察しはつくかと思います。既存の設定をRuby DSLにエクスポートして、DSLを編集して、AWSに適用して…という感じで運用します。 所謂、冪等性を確保しているので何回実行してもRuby DSLの記述通りにAWSが設定されます(DSLと設定が同じなら何もしません) ついでに、dry runとか(Kelb

    Piculet/Kelbimというツールを作りました - so what
  • クックパッドの勉強会でMurakumoの話をしました - so what

    ゴシッププロトコルによる冗長化と負荷分散の検証 View more presentations from winebarrel 謝辞 懇親会で話しかけてくださった方々ありがとうございます。全力で懇親会を避けていた自分としては、あの手の懇親会での立ち位置が未だによくわかりません。マイナス星人の話が頭をよぎります。 これは何? 以前作っていたddnsの後継です。そこそこテストもしたので、まあ使えるのではないかと思います。詳しくはスライドをご覧ください。 補足的な話 nscd nscdは複数アドレスを返すとキャッシュしてくれないようです。この件でちょっとはまりました。 EC2の場合、2.6.18-xenU-ec2-v1.5ではnscdがうまく動かないようなので前のエントリを参照してください。 dnsmasqとか使ってもいい気はします。 auth-key/script 設定ファイルのauth-ke

    クックパッドの勉強会でMurakumoの話をしました - so what
  • 1