notebook

都内でWEB系エンジニアやってます。

2016-01-01から1年間の記事一覧

botkitでサーバに対して任意のコマンドを実行できるようにする

出先でサーバに対してコマンド打てないのがストレスだったのでslackから本番サーバにコマンド打てるようにしました 今回はbotkitを使っています hubotは有名ですが今更cofeescriptを覚える気にならなかったので他のものを探していたところちょうど手頃な感じ…

json serverでAPIモックを自由自在に操る

jsonファイルを用意するだけでAPIとして機能させることが出来る mock用のREST APIを簡単に立ち上げることが出来ます フロントエンド開発時やアプリ開発時にバックエンドの実装を待たずに開発に入ったりなんて事ができそうですね typicode/json-server 実際に…

複数configサーバで動かしてみる

「configサーバも複数あるべき」みたいな話だったのでレプリカセットを組んでみました mongoDBのクラスタ環境をいじってみる - notebook swfz.hatenablog.com レプリカセットを試す - notebook swfz.hatenablog.com シャーディング + レプリカセット - noteb…

シャーディング + レプリカセット

ここら辺を参考に試してみる mongoDBでシャーディング+レプリカセットしてみる - Qiita qiita.com シャーディングとレプリカセットを組み合わせて構築する 構成 レプリカセットの構築 rs1,rs2を作っていく # rs1 sudo mongod --port 27041 --dbpath /data/m…

レプリカセットを試す

全てmongodで起動する どのサーバがPRIMARYか決めるのはreplicaset内で投票して決める 全サーバのうち過半数を超えたサーバがPRIMARYになる 一般的にはPRIMARY,SECONDARY,ARBITER(データを持たない投票のためだけのサーバ、調整用)の最小構成になる 今回はPR…

mongoDBのクラスタ環境をいじってみる

今回は業務で扱う必要が出てきてしまったため急場しのぎですがmongoDBをやっていきます いきなりシャーディング+レプリカセットとかいろんな概念が一気に入ってくるとわからなくなってしまいそうなので一つづつ理解していくようにしていく また、各種ノード…

CLIからEC2を起動する

AWS

terraformとか使いたかったけど急いでたのと、インスタンスの数的にGUIぽちぽちがつらくなりそうだったのである程度固定してコマンド一発で起動できるようにする CLI経由だとjsonを直接かけるがファイルを読み込ませてAPIを叩くのが良さそう スケルトンの生…

proxyサーバを立ててみる

概念自体は知っていたけど実際にやってみたことがなかったのでとりあえずやってみる 記事上ではIPは適当な値に書き換えています あらかじめ適当なサーバを立て(52.111.111.111)、nginxを起動させておく アクセスログのフォーマット とくにデフォルトのままい…

slack APIでコードスニペットを投稿する

ちょっとしたコードとか調査の途中経過などの結果を共有するときとかよくslackに投げたりすると思います そんな時に、いちいち結果をコピーしてslackに投げるのって地味に面倒ですよね いろいろ調査、コマンドライン上で結果をslackへ投稿! 簡単なコード書…

Re:dashを使ってみる

docker-composeのファイルもあるのでとりあえず試してみる 当ブログへのアクセスはGoogleAnalyticsでアクセス解析しています そのデータをmysqlに突っ込んでグラフを表示したいと思います インストール curl https://raw.githubusercontent.com/getredash/re…

postgresqlでバックアップ、リストア

redashをdockerで使ってみたときにpostgresをちょっと触ったのでその時のメモ 基本的な使い方からバックアップ、リストアまで dockerの使い方とかに関しては割愛します コンテナはpostgres9.3のイメージを使いました FROM postgres:9.3 コンソール操作 とり…

mongoDBでクエリログを流す

mongoDB起動時 下記をつけて起動させればOK /urr/bin/mongod --profile=2 --slowms=1 --profile プロファイルのレベル 1: 閾値以上の時間のかかったクエリを残す 2: 全てのクエリを残す --slowms 閾値(ms) コンソールから $ mongo db.setProfilingLevel(2,1)…

minioを使ってS3の環境をローカルで再現する

AWS

minio S3互換の環境を立ててくれるS3のクローンプロダクトだそうです minio/minio: Minio is an object storage server compatible with Amazon S3 and licensed under Apache 2.0 License github.com 開発環境などでS3を用いたCIをまわすときとかに料金を気…

docker-compose でHOSTごとに代わる設定を適用する

今回はdocker-composeを使ってもう少し色々やってみます 例としてdockerでmkdocs + elasticsearchを起動し、mkdocsのテキストをelasticsearchから検索できるようにします やることは2点 docker-compose起動(環境変数経由でhost ipを渡す) Dockerfile内で環境…

ansibleメモ(サンプル集)

ansible2.1を触ってみたのでそのメモ 開発環境の構築をansibleで出来るようにplaybookを書いたのでそのときにメモしたものです といいつつ2.1の変更点というよりは1系でも書けるもののほうが多いです factのリスト $ ansible -i hosts hostrole -m setup 192…

docker-composeを使ってみる

とりあえず使ってみる 環境 CentOS7 CentOS6だと色々制限あったりちょっと面倒になってきたのでCentOS7でやってみます dockerのインストール yum install docker $ docker version Client: Version: 1.9.1 API version: 1.21 Package version: docker-common…

CentOS6でdockerを動かせるようにする

長いこと逃げてきたdockerですが色々と便利そうな感じになっているみたいなのでまずは触ってみようということでやってみます インストール epelリポジトリから取得できます yum install docker-io -y --enablerepo=epel $ docker version Client version: 1.…

activator で jarファイルを作る

プロジェクト作成 $ activator new Choose from these featured templates or enter a template name: 4) minimal-scala Enter a name for your application (just press enter for 'minimal-scala') > jarsample $ cd jarsample build.sbt 下記追加 //impor…

apexを使ってlambda functionの管理

serverlessとapexがあるようですがなんとなくapexを使ってみます github.com インストール curl https://raw.githubusercontent.com/apex/apex/master/install.sh | sh プロジェクトの作成 apex init Enter the name of your project. It should be machine-…

dynamoDB-localでローカル開発環境を整える

【AWS発表】 デスクトップ開発を可能にする DynamoDB Local dynamodbをローカルで扱えるようにするものだそうです 早速やってみます インストール awscliもインストールします pip install awscli 公式からダウンロードします DynamoDB Local curl -LO http:…

Auto Scaling(lifecyclehook)を使ってみる

AWS

いまさらながらEC2でAutoScalingをやってみました そのときのメモ 要件 VPC内のバッチ処理をするサーバのスケーリング 忙しい時間帯が決まっているのでその時間帯のみスケールアウト スケジューリング lifecyclehookを使ってスケールイン時に処理の正常終了…

git hook を使って静的サイトを自動でデプロイする

git

git hookを使って更新ファイルの内容次第でpush前にテストやデプロイを行うようにします middlemanで作成したプロジェクトで、静的サイト用のファイルがpushされようとしているときにhookを使ってデプロイ作業も行ってしまおうというものです 実際に行うプロ…

middlemanを使ってみる

middleman 静的サイトジェネレータといわれているものの中の一つです 日本語の公式があるのもありがたいですね 今回はダーツの自宅練習用のスコア管理のページをmiddlemanで作ってみます 下記ダッシュボードテンプレートを使って見た目にあまり時間とらない…

jenkinsでコードメトリクス、カバレッジレポートの表示

jenkinsを使って自動テストをまわせるようにしたので、もう少し色々やってみます 今回もperlのプロジェクトでの話 テスト結果の集計 テスト結果の推移を表示する TAP::Formatter::JUnitを用いてJUnit互換のテストスイートを作成 シェルスクリプト prove -Ili…

jenkinsを導入してCIをまわす

いまさら感が半端ないですがやっと古くからあるプロジェクトでテストコードを書くようになってきたのでそろそろCIを回していく必要があるよねということで導入してみました とりあえず導入からslack通知まで まずは、テストがいつ壊れたかわかるようにすると…

embulkでgemをバージョン固定する

embulkでgemをバージョン固定する 参考の記事をそのまま実行しただけではあるが残すために書いておきます サーバを再構築する機会があったので新たにembulkとプラグインをインストールして実行したらあっさり死んだ 現状elasticsearchのバージョンが1系の場…

MkDocsにプレゼンテーション機能をつける

今回はMkDocsで生成したサイト内にプレゼンテーション機能をつけたいと思います 動機 MkDocsでスライド用資料も管理したい 資料もプレゼンも一箇所で閲覧できるようにしたい(某wikiと同様) ということで、すこし調べてみた結果割と簡単にできそうだったので…

mkdocsの検索を日本語に対応させてみる

mkdocsのサイト内検索で日本語検索に対応していないという話があったので対応させたいなと思い調べてみた 中身を読んだらlunrという全文検索ライブラリを用いているよう jekyllにもlunr.jsを使ったプラグインがあるようで結構有名なのかな で、このlunr.jsが…

Cloudwatch + SNS + SQS でSlackへ通知

ChatOpsの一環としてサービスのアラートをSlackに投げれるようにします さっと調べた感じ今だとCloudwatch -> SNS -> Lambda -> Slackというのがlambda to slackのblueprintもあるので楽そう + 使ってみたかったのですが担当サービスがそもそもlambdaが使え…

cloudwatch alarm を cliから登録する

下記参考にたたいてみました put-metric-alarm Diskスペースが80%以上使っていたらSNSに通知を飛ばす設定 aws cloudwatch put-metric-alarm --alarm-name testalarm \ --comparison-operator GreaterThanThreshold \ --threshold 80 \ --alarm-description t…