woshidan's blog

そんなことよりコードにダイブ。

第1回 技術書同人誌博覧会で「あの素晴らしいCGIからもう一度」というWebサーバとWebアプリケーションサーバに関する入門書と既刊を出していました

こんにちは、無職の犬です。 このエントリは、第1回 技術書同人誌博覧会で出した同人誌のご報告です。 gishohaku.dev norakann.booth.pm どんな本だったのか 今回新しく出したのは「あの素晴らしいCGIからもう一度」というWebサーバとWebアプリケーションサ…

第一回技書博で頒布した「あの素晴らしいCGIからもう一度」紙本初版の修正と「ネットワークスクランブル TCP編」初版の補足

第一回技書博で頒布した「あの素晴らしいCGIからもう一度」紙本初版の修正と「ネットワークスクランブル TCP編」初版の補足です。 gishohaku.dev norakann.booth.pm norakann.booth.pm 会場やブログでフィードバックをくださった方、ありがとうございました…

技術書典6で「ネットワークスクランブル」という少し変わったネットワークプロトコルの入門本を出していました

こんにちは、無職の犬です。 このエントリは、技術書典6で出した同人誌とその続編のご報告です。 techbookfest.org norakann.booth.pm norakann.booth.pm norakann.booth.pm どんな本だったのか 今回出したのは「ネットワークスクランブル」というネットワー…

ネットワークスクランブルHTTP 2版物理本に対する訂正

woshidan.hatenablog.com 2版紙本の(及び1版紙本)にて上記エントリに追加で以下の修正が見つかりました。 電子版では修正されていますが、物理版は修正が間に合いませんでしたので必要に応じて下記をご参照ください。 ページ数 訂正前 訂正後 p.12 ところでT…

技術書典6で頒布したネットワークスクランブルHTTP編とTLS編の訂正

技術書典6で頒布したネットワークスクランブルHTTP編とTLS編の訂正で、以下は再販予定の2版では修正されています。 ご確認いただけますとさいわいです。 基本的に「誤り」=>「訂正後」で、脚注番号やページ番号は訂正前のものをさします。 HTTP編 1.2.2節 の…

JAWS-UG コンテナ支部 #13 に参加しました

ちょっとバタバタしていたため遅くなってすみません。。 jawsug-container.connpass.com 上記にブログ枠で参加したので各発表についてまとめます。 AWS サービスアップデート toricls さんの発表でした。 EKSのTokyoリージョンおめでとうごさいます! Kubern…

AWS Web Servicesを使ったサーバーレスアプリケーション開発ガイドを読みました

Amazon Web Servicesを使ったサーバーレスアプリケーション開発ガイド作者: 西谷圭介出版社/メーカー: マイナビ出版発売日: 2018/03/16メディア: 単行本(ソフトカバー)この商品を含むブログを見る 上の本を読みました。全体的に Lambdaになれました Vueに…

Rackの概要、RackミドルウェアとRackアプリケーションの違いについて

この記事はRubyアドベントカレンダーの14日目の記事です。 最近Rackにさわることがあったのでこの記事では Rackの概要 RackミドルウェアとRackアプリケーションの違い についてまとめます。 Rack概要 RackはWebサーバとRuby及びRubyのフレームワークとの間で…

負荷試験のアプローチとWeb系でクラウドサービスを利用している場合のそれぞれのアプローチに対する感想について

この記事はソフトウェアテストアドベントカレンダーの8日目の記事です。 以前、担当しているサービスの負荷試験を行ったのですが、負荷試験やパフォーマンステストとふわっといった時、いくつかアプローチの種類があるようなので今回の記事ではそれらの簡単…

いまさらRSpecに少し慣れてテストをすっきり書く方法について少し覚えた話

いまさらRSpecをさわってきて慣れて覚えた話もメモしておきます。 TL;DR letで宣言した変数の初期化用パラメータで置き換えたくなったパラメータもletで宣言しておくとよさそう shared_context や shared_examplesでまとめるのがちょうどいいくらいの事例と…

ペアワイズ法について簡単にまとめて手を動かしてテストケースが削れるのを眺めてみた

この記事はソフトウェアテストの小ネタアドベントカレンダーの2日目の記事です。 この記事では、大量にあるテストケースをある程度不具合検出率を担保しつつ効率よく削るための手法であるペアワイズ法についてその概要をまとめ、組み合わせが小さい場合につ…

いまさらRSpecを触ってみて最初のうち戸惑っていた部分の話

この記事はRuby on Rails Advent Calendarの1日目の記事です。 実は、この夏からはじめて仕事で本格的に RSpec を触ることになり、少し慣れてきたところで最初に感じたことをメモしておきます。 RSpecの構文は慣れない人にはこんな風に映ることもあるんだー…

OPTIONSメソッドが気になったのでCORSとプリフライトリクエストについて少し調べました

Amazon API GatewayでCORSを有効にするとOPTIONSメソッドが追加されるのが気になったので、CORSについて少し調べました。 CORSとは オリジン間リソース共有Cross-Origin Resource Sharing (CORS) は、追加の HTTP ヘッダーを使用して、あるオリジン (ドメイ…

AWSによるサーバーレスアーキテクチャを読みました

3連休はサーバレスをやるぞ! と決めていたので、2ヶ月くらい積ん読してた気がする本をようやく読みました。 AWSによるサーバーレスアーキテクチャ作者: Peter Sbarski,吉田真吾,長尾高弘出版社/メーカー: 翔泳社発売日: 2018/03/14メディア: 単行本(ソフト…

試して理解 Linuxのしくみを読みました

有名な本を読みました。感想がてら特に面白かったいくつかのトピックについてまとめてしめます。 [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識作者: 武内覚出版社/メーカー: 技術評論社発売日: 2018/02/23メディア: 単行本(ソフ…

AWS DevDay Tokyo 2018 LT大会に「AWSを用いたWebサービスの負荷試験のTips」というテーマで参加してきました

9月にLTのCFPの公募があり、これはいい勉強になるだろうということで応募したら通ったのでわたわたしながら準備していました。 speakerdeck.com 以下、とっちらかっていますが、自分用のメモ兼補足です。 JMeterが同時に1000スレッドを立ち上げたらフリーズ…

JAWS-UG 初心者支部#14「AWS Night school & LT」 LT大会 に「 IAMロールの使用と必要なポリシー」というテーマで参加してきました

結構前なのですが、仕事ともう一個のLTでバタバタしていていまさらになりますががが。 speakerdeck.com 自分がはじめてIAMさわったとき、IAMのポリシーってたくさんあってどれがどれだかわからないぞって気持ちが強くて。。 IAMのポリシーにつく形容詞には …

Hadoop3.1.1でs3a://ファイルシステムを利用する場合の環境構築をしてみる

今日はHadoopのファイルシステム(特に、s3を利用するもの)についてすこしおさらいしてから表題の環境構築をしてみます。 Hadoopのファイルシステム Hadoopは抽象化されたファイルシステムの概念を持っていて、その実装に HDFS Hadoop上で利用される分散ファ…

Hadoop 3.1.1をインストールしてPseudo-Distributed Modeで動かしてみる

Javaと環境変数のセットアップ $ sudo yum install java-1.8.0-openjdk [ec2-user@ip-172-31-16-244 ~]$ sudo update-alternatives --config java There are 2 programs which provide 'java'. Selection Command -----------------------------------------…

Hadoop 3.1.1をインストールしてLocal Modeで動かしてみる

今日は https://qiita.com/Esfahan/items/39fd1e2f8b755eacec65 http://www.atmarkit.co.jp/ait/articles/0902/27/news129_2.html http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html あたりを参考にしつつHadoop…

Linuxにrbenvをインストールし、rbenvでRubyを入れ、mysql2のgemを入れるまでのメモ

ちょっとたくさんのインスタンスからMySQLにクエリを投げたいことってありますよね? というわけで今日はRubyでMySQLに接続するコードを書く前段階として表題のEC2上で環境構築の素振りをします。 TL;DR rbenvおよび、rbenvのプラグイン ruby-buildはGitHubか…

CSVからCSVを作るためのシェル芸のいくらかについてメモ

列の順番を入れ替えたい awkを使えばよい。 aaa,ddd,fff,bbb,ccc,eee のような行があったとき、 aaa,bbb,ccc,ddd,eee,fff のように列を入れ替えたいとすると $ echo 'aaa,ddd,fff,bbb,ccc,eee' | awk -F ',' '{ print $1 "," $4 "," $5 "," $2 "," $6 "," $3…

Capistranoでぺらいち未満のWebサイトをデプロイしてみます

今日はRubyで書かれたビルド・デプロイ作業の自動化フレームワークのCapistranoにさわってみます。 Capistranoでできること 最初に、入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたいを読めばいいという話ではあるんですが、Capistranoでできる…

Terraformで検証用インスタンスを立ち上げるのに使う最低限の作業についてメモ

検証用の環境作るとき、微妙に設定をいじって立て直す、その後複数台で動かしたい、みたいな場合はTerraformでやったりします*1。 そのとき、共通でやる作業についてメモしておきます。 共通 変数設定など アプリごとにパスフレーズなしの認証鍵を使い捨てで…

ecs_deployのecs_auto_scalerにPRを出すときに環境構築をがんばったよ、というお話

先日、 ecs_auto_scaler にPRを出してマージされてしばらく運用して問題なさそうので今日はちょっと自慢をします。 ecs_auto_scaler そのものについては前回の記事でふれたのでそちらをご参照ください。 woshidan.hatenablog.com 複数のサービスが連携させて…

ecs_deployによるECSのオートスケーリングとAWSのECSによるオートスケーリングの違いについて

今日は会社で管理しているOSSの一つ、ecs_deployに関連する話をECSの復習がてらします。 TL;DR ecs_deploy gemでは、ECSへのデプロイに関するCapistranoタスクの定義とECSのオートスケーリングを行うスクリプトが入っている ECSのオートスケーリングはAutoSc…

ssh-agentでsshコマンドで認証鍵の指定を入れなくていいようにしたりログイン先のサーバに認証鍵の情報を転送したりする

TL;DR ssh-agent bash で ssh-agent を起動して ssh-add /path/to/secret_key することで ssh コマンドで認証鍵の指定やパスフレーズの入力が省略できる ssh-agent はOpenSSHの認証エージェントで、認証エージェントの「転送」により、ローカルで動いている…

CloudWatchにさわってみたときのメモ(カスタムメトリクスのパブリッシュ、アラームの設定)

とりあえず今日はCloudWatchの復習で。 CloudWatchはAWSのモニタリングや監視のためのサービスで、EC2など各種AWSのサービスを動かすと自動的にCPU利用率などのメトリクスを取得してくれる他、AWS CLIなどを利用してカスタムメトリクスを送ることも可能です…

EC2インスタンスをECSの特定のクラスタに所属させる

今日は、EC2インスタンスをECSの特定のクラスタのコンテナインスタンスとして登録するために必要なものについてまとめておきます。 EC2インスタンスがECSのコンテナインスタンスになる仕組み ECSのコンテナインスタンスはecs-agentが動作していて、ecs-agent…

IAMのロール、EC2インスタンスやECSのタスクに対するロールについてメモ

今日はIAMのロールについて復習しようと思います。 TL;DR 特別な作業をする時だけふだん使わない権限を一時的に使いたいときは、IAMロールの出番 IAMロールの使い方 IAMロール自体を作成し、 誰がそのロールを利用できるのか、を記述した信頼ポリシー と 「~…