読者です 読者をやめる 読者になる 読者になる

tjinjin's blog

いつかすごいエンジニアになることを目指して、日々学んだことを書いていきます。

2015年に買って成功したと思ったのもの

About もう年末ということで今年のお買い物を振り返りたいと思います。

転職してほぼ1年が経ったので振り返る

フィードフォースエンジニア Advent Calendar 2015 の19日目の記事です。 昨日は task 先生の プレゼント交換アプリを作っている話 | task blog という記事でした!ぜひ完成させて欲しいですね! 私、実は フィードフォース という会社でインフラを担当して…

Terraformを使ってEC2インスタンスにIAMロールを当ててみる

aws

HashiCorp Advent Calendar 2015の4日目の担当がいらっしゃらないようでしたので、最近試したことでも書いておこうかと思います。検証が不十分な部分があるかと重いますがご容赦下さい(現在12/4 23:25です) 前日はk1LoW - QiitaさんのTerraformで簡単なと…

ヤマハRTX1200の設定例を使ってコンフィグを学ぶ2

About VLAN周りの知識が怪しいので設定例を使いつつ学んでいきます。

ヤマハRTX1200の設定例を使ってコンフィグを学ぶ

About NW素人のインフラエンジニアなので、一から勉強することにしました。おかしな点ありましたらご指摘いただけると助かります。

CircleCIを使ってbuildしたパッケージを自動でgithub releaseに公開する

About CircleCIとdockerを使ってrpmパッケージをビルドする仕組みはすでにあったので、それを少し改良してgithub releaseに自動で公開するところまでやってみました

gloudからcloud-configを渡してcoreosを起動する

gceの検証で試してみました。

GCEでサーバCIをやってみる

About vagrant-googleを使ってサーバCIできるか検証してみました。

isucon5予選問題で1万点超えを目指した話

About 以前短い時間でisucon5の予選問題に挑戦したのですが、消化不良だったため時間制限を取っ払って挑戦してみることにしました。タイトル通りスコア1万点を目指します。

Rundeckを社内isuconのキューとして利用した話

先日、社内でisuconを開催した際にRundeckを利用したお話です。 背景 弊社内で、isucon5の予選問題を個人戦でやってみようということになり、私が環境の準備をしました。用意されているイメージを元にインスタンスを起動し、公開されているスクリプトを使っ…

ワークチェアの選び方

About ネタ記事です。社内向けに書いたら評判がよかったので、こちらでも修正・加筆して公開します。この記事ではよいワークチェアとは何かについて、簡単に解説します。 よいワークチェアとは? ”姿勢が崩れにくく、居心地がよく、ずっと座っていられる”と…

Ansibleからknife soloを実行してみる

About 先に書いておくと、ほとんど意味ないです。 サーバの台数が増えてくるとサーバ1台1台にknife soloをするのが大変になってきます。CircleCIから自動実行させてもいいのですが、時間がかかってコンテナを圧迫してしまう心配があります。(お金があれば…

Railstutorial学習記録12(完)

最後の章です やったこと twitterのようなフォローシステムの実装 メモ has_manyだと1:Nの関係。N:Nにはhas_many throughを使う Userモデルオブジェクトの外部キーがuser_idの場合、Railsは自動的に関連付けを推測します。つまり、Railsはデフォルトで、<ク…

Railstutorial学習記録11

SWも中盤に差し掛かってきたので、そろそろ終わらせたい。 やったこと マイクロポストを投稿する機能の実装 メモ belongs_to/has_many関連付けをすることで、関連性がわかるメソッドが利用できる。 letは遅延評価なので、即座に作成したいときはlet!(レット…

Railstutorial学習記録10

終わりが見えてきた9章です。 やったこと ユーザの更新/表示/削除処理 メモ editビューはnewビューと似ているので、パーシャルでまとめたい。 一部違うところは、変数を渡す感じなのかな。 Rails4 - render partialで部分テンプレートに変数を渡す方法 - Qii…

Railstutorial学習記録9

日が空きましたが、8章をやっていきます。 やったこと サインイン/サインアウトの実装 cucumberの使い方 メモ rspecで-eオプションを渡すことで、特定のテストが実行できる。これはdescribeで指定している文字列に合致するものだけ実行されるようです。(7章…

OSS活動を始めました

大したことをしたわけではないですが、とあるプロダクトに対しPRを出し、それがマージされてcontributorになりましたというお話です。ポエム成分多めです。 やったこと awspecのec2 typeにTermination Protectionの属性のテストができるmatcherを追加しまし…

awscliやaws-sdkでEC2インスタンスのTermination Protectionの情報を取得できるか試す

About 今のところterraform(v0.6.3)を使ってもTermination Protectionは設定はできません。運用上どうしてもデータがたまってしまうサーバには間違えて削除できないように設定をしていますが、terraformで立てた環境については忘れがちです。なので、cliやsd…

cronに変わるジョブ管理ツールのRundeckのAPIを試す

About サーバ台数が少ない文にはcronやcronの設定をrubyで行うwheneverでまかなえるのですが、台数が増えてくるとcronでの管理は大変です。何かいいツールはないかなというときにRundeckの存在を知ったので、いろいろ試してみます。 Rundeckとは Rundeck.org…

knife-soloをアップデートしたらdockerを使ったサーバCIに失敗した

About dockerを使ったサーバCI(dockerの使い方としていいか悪いかは別として)をしていますが、最近knife-soloをアップデートしたタイミングでCIがコケるようになりました。原因調査したので、備忘録として残しておきます。 概要 CircleCIを使ってdockerコ…

サーバ/インフラを支える技術を読んだ

最近技術書からのインプットが不足している気がするので、毎週本を呼んで少しでも覚えたことをまとめておこうという試みです。全部読み切れなくても、一旦アウトプットします。 [24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォー…

YAPC::Asia Tokyo 2015 に参加しました!

参加してきました!参加したトークを感想交えつつ簡単にまとめます。メモを雑にコピペしているので、細かい部分は目を瞑って下さい。 初日 Managing Containers at Scale with CoreOS and Kubernetes kelseyhightower/yapc-asia-2015 · GitHub ロボットレス…

gemの作り方を学ぶ

About chefやServerspecなどを使うようになって、ここの部分の動きってどうなってるんだろう?とか、こういう機能あったら便利だっていうときにはgemのソースを見たり・改造したりしたいと思うことが増えて来ました。ここでgemってそもそもどうやって作るん…

circleciで特定のbranchの時のみtestを無視する

About 最近terraformを使うようになりgithubにtfファイルなどをpushしています。その際にterraformの変更は既存のテストに影響ないのですが、CicrleCIを設定していると自動でテストが実行され、コンテナを無駄に消費することがありました。無駄な気がするの…

mackerelを使ってあれこれ監視してみた

mackerelを使って、もろもろ監視してみたお話です。実装の話がメインになるので、概要を知りたい方は公式ページをご覧下さい。閾値とかアラートについては一旦無視します。 mackerel-agentの導入 mackerel-agentを導入することで主なリソース情報を取得する…

Railstutorial学習記録8

7章をやっていきます。 7章ではユーザ登録の仕組みを作っていきます。 ユーザprofileページにRailsのデバッグ情報を表示する SassのmixinをつかってCSSルールをグループ化してincludeできる Railsにはデフォルトでdevelopment/test/production環境が用意され…

Mackerelでnginxのステータスコードをグラフ表示する

GW明けから5月病に苦しんでいるブログ主です。Rails疲れしたので、最近社内で話題のMackerelをちょっと試してみたいと思います。すでに事例があるので、それをなぞる形ですね。 やりたいこと webサーバを起動し、そのアクセスログのステータスコードをMacker…

Railstutorial学習記録7

GW終わりましたけど、6章やっていきます。 5章でユーザページのスタブを作っていたので、それを実装するみたいです。6~8章?にかけてやるみたいで、ひとつの山場かもしれないですね。時間あるので、ブログにしっかり残しておきたいと。 学んだこと rakeタス…

Railstutorial学習記録6

5章をやっていきます。5章はBootstrapを使ったUIの話みたいです。 エラー集 bundle installでエラー $ bundle install Fetching gem metadata from https://rubygems.org/.......... Fetching version metadata from https://rubygems.org/... Fetching depe…

Railstutorial学習記録5

第4章をやっていきます。 Rails Tutorialと言っても、この章はRubyの基本を学ぶ感じだったので、さらっとすませます。 学んだこと rails console rails上でirbを使うようなもの。存在を知らなかった。 randomな文字列の生成 >> ('a'..'z').to_a # アルファベ…

Railstutorial学習記録4

ずっと放置していたのですが、GWで時間取れそうというのと仕事を進めていく上でアプリ側の知識があったほうが、インフラの仕事も円滑に進むと思ったので、再開します。 以前やった部分忘れてますが3章からやります。 error集 rails genarate rspec:install $…

脆弱性情報の見方と付き合い方

この記事の目的 昨今、Shellshockに始まり、Heartbleed、POODLE、FREAKと脆弱性情報がいろいろ出ていますね。そういった情報をこれまではtwitterなどを通して仕入れてきたのですが、このタイミングで一次情報にもきっちり当たれるようになっておきたいと思い…

nginxの基本的な設定をやってみた

仕事でnginxを触る機会があり(というか奪い取り)、まったくわからなかったので検証しました。 到達目標 nginxで受けたリクエストをunicornに連携 アクセスログをltsvの形式で出力する 特定ディレクトリ配下のIPを制限する 静的ファイルをnginx側で返却する…

転職して約3ヶ月が経って思ったこと

ポエムです。技術的な話はないです。 年度末ということと転職して3ヶ月経ち試用期間が終わるので、区切りとして今の思いを書いておきます。半年後、1年後にこの記事を見た時に自分はどう感じるのか楽しみでもあります。 転職してみて感じたこと 自由度の高さ…

CircleCI+ dockerでサーバCIの検証したときにiptablesでハマった

概要 CircleCIでサーバCIをしようと調査していたときに、ローカル環境とCircleCI環境で違う事象が起きたのでまとめた。 CircleCI上のコンテナではiptablesの停止するレシピを流した際に特にエラーにならないが、ローカル上のコンテナに対し同じレシピを流す…

boot2docker上のコンテナにIP指定でログインする

他の作業をやっていたときにふと思い立ちうまく行ったのでメモしておきます。 MacOSX -> boot2docker -> docker containerという構成で作業しているわけですが、今まではDocker起動時にポートをフォワーディングして起動させ、Macからアクセスする際にはIPと…

Mac環境でsedを使うときの注意

Macでsedを使った際にはまったので書きます。ちょっとした処理をしたいときにワンライナーで済ませるときありますよね。そんなときに大活躍なsedですが、Macに標準で入っているsedはRHEL系のLinuxに入っているsedとは違うようです。(その他ディストリビュー…

DockerHub + CircleCIを使ったCI環境を作ってみた〜実践編

前日の導入編に続いてです。 DockerHubを使いAutomated buildを使うことで事前にbuildをさせるところまでやりました。今日は昨日の情報を元にCIの高速化や実際に使うとなった際の課題を考えたいと思います。 CIの高速化 serverの構築にchefを使っているので…

DockerHub + CircleCIを使ったCI環境を作ってみた〜導入編

CircleCIを使い出していろいろ課題を感じてきたので、いろいろ試してみました。 前提 CircleCIでのテストでは、vagrant-awsを使いEC2インスタンスを立ててそこに対してserverのテストを行っていました。 課題 今勤めている先ではCircleCIを使ってCI環境を作…

github+AWS+CircleCIを使ったCI環境作った

前々からやろうと思ってたことがなんとか動くレベルになりました。 全体の流れは githubのmasterブランチへpush CircleCIが検知してVagrantを使ってEC2インスタンスを立てる EC2インスタンスに対してchef solo / serverspecの実施 テスト完了後EC2インスタン…

vagrantを使ってEC2インスタンスを立ててみる

vagrantのプラグインを使ってAWS上にEC2インスタンスを立ててみます。 環境 MacOSX 10.10 vagrant 1.7.2 準備 vagrantはすでに導入済みです。 awsについては下記の本を一通りこなしているので、アカウントは取得済みです。 Amazon Web Services 基礎からのネ…

Macの開発環境の改善について

新しい会社に入り、開発環境が大きく変わったのでメモ。前の会社では基本的にwindowsでツールなども自由に導入できる環境ではなかったので、すごく驚いています。その中でいろいろ調べたので、残しておきます。 開発環境 bash -> zshへ oh-my-zshの導入 peco…

AWS本を読んでみたと今年を振り返って

AWS本読んでみた 時間が取れたので、いまさらながら本をもとにAWSに触れてみました。触れた理由は、次の会社で使うからっていうのもありますが、前から触ってみたいと思ってました。Amazon Web Services 基礎からのネットワーク&サーバー構築作者: 玉川憲,片…

転職活動しました

転職活動が一区切りつきましたので、備忘録的に書いておきます。これから転職する方の参考なればいいなと思って書きたいと思います。 活動の概要 活動期間 2014年8月~10月の2か月間(実際の選考等で考えると1カ月半) 活動結果 応募/書類選考落ち/一次面接…

scalaを学習します

元々Javaを使ってきた訳ですが、このたびscalaを使い始めることにしました。理由は下記のような点です。 関数型言語を使ってみたい(Ocamlを少しいじったことがありました*1) スクリプト言語のように気軽にかける言語がいい これまで使ってきたJavaの知識が…

Railstutorial学習記録3

今3章をやっています。2章やっているときにいろいろエラーが出て、?と思っていましたが 3章でもエラー。どうやら railsのバージョンが4.1.4になっていたようです。 (確かに昔、serverspec試すときにrails導入してたような気もします。)グローバル領域のバ…

Railstutorial学習記録2

続きから。今日のエラーはこちら rails consoleを叩いたときに発生 `to_specs': Could not find 'railties' (>= 0) among 14 total gem(s) (Gem::LoadError) gemの中にrailtiesが見つからないって言ってるみたいです。gem listを叩くと入ってそうなんだが。 …

Railstutorial学習記録1

railstutorialではまったところをメモしておこうと思います。2.2 rails generateしたときにエラー $rails generate scaffold User name:string email:string ~/work/rails_projects/demo_app/config/environments/development.rb:1:in `<top (required)>': undefined method </top>…

シェルスクリプトの空文字チェック改++

昔に書いた記事が見にくかったので、作り直します。最近シェルスクリプトを書けと言われていろいろ試行錯誤していまして、使えそうな情報をまとめておきます。 シェルでパラメータの空文字チェックを行う際、今まではif文を使ってこんな感じでやってました。…

Java6でデスクトップ用ファイル監視アプリ作ってみた

転職の準備ということで、簡単なアプリを作ってみました。(ベータ版) アプリ起動後、監視対象のファイルを選択します。 1分ごとにファイル監視し、通知領域に表示がでます。 更新を検知(更新日時)した際には、いつ更新されたかファイル情報を取得しWARNI…