Carpe Diem

備忘録。https://github.com/jun06t

C4インスタンスからC5インスタンスに移行するためのパフォーマンス検証

概要

前回のAMI作成方法に引き続き、移行前のチェックとして簡単なパフォーマンスチェックをします。

環境

負荷試験環境

インスタンスタイプ

サーバ インスタンスタイプ
攻撃ツール c5.2xlarge
C4テスト c4.large
C5テスト c5.large

攻撃サーバでCPUリソースが足りないということにならないよう、充分なスペックにします。

続きを読む

C5/M5インスタンス用のAMIをpackerで作成する

概要

先日東京リージョンにもC5/M5インスタンスが対応されました。
コスト的にC4/M4より10~15%ほど安くなるため、可能であれば逐次移行した方が良いです。
ただC5/M5からは

  • Elastic Network Adapter (ENA) 対応
  • NVMe対応のOSが必要
  • バイス名の変更

といった大きな変更が入っており、単純にインスタンスタイプを変更するだけだと動かない・パフォーマンスが十分に発揮できない可能性があります。

環境

続きを読む

Golangのpprofの使い方【基礎編】

概要

pprofの使い方の備忘録として何回かに分けて書いてきます。
今回は前提知識として知っておくべきことを書きます。

環境

  • go 1.10.1

pprofは2つの計測方法がある

以下の2つのやり方があります。

  1. runtime/pprof が提供しているAPIを使ってファイルに出力する
  2. net/http/pprof を使ってプロファイル取得用の http サーバーを立てる

前者は短時間で実行が終了するようなケースで使います。
後者はWebサーバのようにずっと動かすプログラムのケースで使います。

続きを読む

Event LoopとMicrotasksについて

概要

以前

christina04.hatenablog.com

でMacrotasksとMicrotasksについて触れました。
ただこの時使ったのがPromisesetTmeout()だけで、他の種類の非同期関数を使った場合どうなるのだろう、と気になり検証してみました。

環境

  • Node.js v8.9.0
続きを読む

Angularでのコンポーネント→ビューのバインディング

概要

Angularではコンポーネント→ビュー方向のバインディングは以下の4種類があります。

これらの違いと使い分けを説明します。

環境

  • Angular v5.2.9
  • angular-cli v1.7.3
続きを読む

BigQueryのデータをUpdateする

概要

BigQueryは基本的にはログなど解析目的で利用するため、データ自体を更新することはありません。ただ

  • 一部間違ったログが入ってしまった
  • データの洗い替えが必要になった

みたいなケースが起き、解析結果が期待するものにならない場合は更新処理が必要です。
2016/11からDML(データ操作言語)が使えるようになったので、それを使って更新します。

注意事項

BigQueryは基本的に取得系メソッドをメインで利用するものなので、DMLに関しては以下のような制限があります。

f:id:quoll00:20180323112546p:plain

ref: Data Manipulation Language  |  BigQuery  |  Google Cloud

なので1レコードずつ更新するクエリをループで回すなんてことはせずに、一気に複数のレコードを更新するクエリを発行するようにしてください。

続きを読む

GoでFacebook OAuthログインをセキュアに実装する

概要

Facebookを用いたOAuthログインの実装方法はネット上に多々ありますが、セキュリティに関してあまり考慮されてないものが多いです。
今回はセキュアに実装する例を示します。

環境

成果物

今回のソースコードはこちらです。

github.com

続きを読む