過去のページ Page 22 of 38 未来のページ

最後の更新が結構前だったので、最近やったことを適当に書く。順不同。

SSHの鍵をECDSAを使いはじめる。

なんとなくECDSA鍵を試してみようと思って、ECDSA鍵を作る。

$ ssh-keygen -t ecdsa -b 521 -C "$(whoami)@$(hostname)-$(date -I)"

既存のサーバとかのauthorized_keysの中のrsa鍵だったとこを少しずつ置き換えていく。

なんで512bitじゃなくて521bitなのか。512bitだと256bit鍵が部分空間に入ってしまって良くないのかなーとか適当に想像してる。なんでなんですか。

GNU Cashで家計簿つけはじめる。

何故か手元で実行すると、トランザクションの記入中にフリーズしまくってまともに使えないので、家のサーバの中で動かしてX Forwardしてる。つらい。

家のルータをIX2015に置きかえて、ネットワークの整理。

設定ファイルはここ

前からやりかったRPiをDMZに置くとかやったりした。

家の外までギガビット来てるのに、IX2015はFastEthernetしかもってないので悲しい。 IX2105を買ってくれる優しい人を募集しています。

前まで10.0.0.0/8を使ってたのを10.8.8.0/24にきちんと収めた。きれいになった。

ここはこうしたほうがいい、とかあったら教えてほしいです。

家の無線APもFastEthernetしかついてないし、こっちはそんなに高くないし置きかえようかなぁ……(それをそのままIX2015の位置に置けば家に高速回線来るのでは…… って気もする)。

SoftEtherVPNに一行パッチの送信

SoftEtherVPN/SoftEtherVPN#127

使ってたら、変な挙動して、ソース読んでみたらそれっぽいのみつけたので、変更してビルドしてみたらうまく動作したので。

ドキュメントにはLogをファイルに保存できるとあったのに、書いてあった方法では標準出力に流れるだけで謎だった。

nna774.netにCloudFlareを通した。

いつのまにかCloudFlareが無料でSSL対応していたので(しかもSPDYがデフォルトでついてくる)、はさみました。 今まではPRiだったけど、これでいきなり莫大なトラフィック受けても落ちないね!(受けない)

そろそろ家のRPi上に置いておくメリット無いし、どこか家の外に置いても良い気もする。

TwitterのTimeLineの全保存

Fluentd使って、全てのTweetを保存しはじめた。今まで特定の監視してる人のログはとってたけど、全てを保存するのはなんだかんだでちゃんとやってこなかった。

td-agent.confはこんな感じ。

<source>
  type twitter
  consumer_key        asdf
  consumer_secret     asdf
  oauth_token         poiu
  oauth_token_secret  poiu
  tag                 twitter.timeline
  timeline            userstream
  output_format       flat                    # Optional (nest or flat or simple[default])
</source>
<match twitter.timeline>
  type copy
  <store>
    type s3

    aws_key_id qwer
    aws_sec_key qwer
    s3_bucket nona-twitter
    s3_region ap-northeast-1
    s3_object_key_format %{path}%{time_slice}_%{index}.%{file_extension}
    path logs/
    buffer_path /var/log/fluent/s3

    time_slice_format %Y/%m/%d-%H
    time_slice_wait 10m
    utc
  </store>
  <store>
    type bigquery

    method insert    # default

    auth_method private_key   # default
    email lkjh
    private_key_path /etc/td-agent/twitter/lkjh.p12
    private_key_passphrase notasecret # default

    project united-crane-800
    dataset twitter
    auto_create_table true
    table   timeline_%Y_%m

    time_field created_at
    field_integer id, in_reply_to_status_id, in_reply_to_user_id, user.id, user.followers_count, user.friends_count, user.listed_count, user.favourites_count, retweet_count, favorite_count
    field_string id_str, text, source, in_reply_to_status_id_str, in_reply_to_user_id_str, in_reply_to_screen_name, user.id_str, user.name, user.screen_name, user.location, user.url, user.profile.image_url_https, user.following, place, user.description
    field_boolean truncated, user.protected

    flush_interval 20
  </store>
</match>

なんかもっと良い方法無いですか。

SSHに二段階認証でも入れるように設定。

今までずっと鍵のみ認証にしていたけど、二段階認証+パスワードでも入れるようにした。

こことかを参考に適当に設定。

前から設定方法だけは知ってた(一年前の自分の文章読むのつらすぎる)けど、実際に使ってはいなかった。

意外と鍵が無い時がけっこうあるので、そういう時に便利そう。

ぱっと思いつくのはこれぐらいかな。 もっと良い感じの方法とかあったら是非教えてください。

DMM のやってるMVNO サービス に契約してみた。

月1GB の高速通信分がついて、月660円。 実際現時点で私が知ってる中では、高速通信があるSim の中では最安。 (高速通信が無くてもいいのなら、ヨドバシカメラとかで売ってるこの ワイヤレスゲートのSim が480円で250kbps、さらに公衆無線スポットがスマートフォンからなら専用のアプリを入れれば使えるらしい。 実際こっちも悪くもないかなーと思ってた。)

一昨年契約したイーモバイルの端末, GL06-P がSim フリーだったそうで、それに挿して設定したらもうそのまま使えた。

既に解約して使っていないiPhone4s(au) にKingmobile の下駄を履かせて、適当に設定しても使えた。

この前秋葉原でなんとなく購入してしまったDocomo のL-05A に挿してもwvdial で使うことができた。(Arch Linux)

以下設定ファイルのメモ的な

/etc/wvdial.conf

[Dialer Defaults]
;Init1 = ATZ
Init1 = ATX3
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
;Init2 = AT
;Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1,"IP","vmobile.jp" 
Stupid Mode = yes
Modem Type = USB Modem
ISDN = 0
;Baud = 460800
;Phone = *99***1#
Phone = *99#
Modem = /dev/ttyACM0
Username = dmm@dmm.com
Carrier Check = no
Password = dmm
Baud = 460800
Dial Command = ATDT
;Dial Command = ATM1L3DT
;Dial Command = ATM0L0DT

e-mobile の二年縛りの契約更新が半年後ぐらいに迫ってるけど、更新月待たずに違約金払ってでも解約したほうがいいかなぁ……(違約金が1万円なら、月2500円払ってるので4ヶ月分なので、長期的には切ったほうが得)。

しばらく使ってみて様子見かな。

とりあえずひとつ

Google Compute EngineのAutoscalerを触るお GCEでAuto Scale の焼きなおし記事な気もする。 GUI のほうから操作もある程度できるようになっている。

Google Cloud SDK を入れて、
$ gcloud components update app
$ gcloud components update preview
したあと、この API たちをオンにしたら準備完了

インスタンステンプレートを、Google Developers Console の「計算処理」 → 「Compute Engine」 → 「インスタンステンプレート」 → 「新しいインスタンステンプレート」 から作成する。インスタンステンプレートは編集できないので、ここでいい感じに作ってやる必要がある。オートスケールするサービスが起動時に自動的に起きるようなインスタンステンプレートを作らないといけない。私は今回、既に動いているサービスのディスクのスナップショットを取り、それをディスクにして(この時、一度スナップショットからインスタンスを作ってやり、起動ディスクを削除しない設定でインスタンスを殺すことでしかスナップショットをディスクにする方法わからなかったのだけれど、ちゃんとした方法あるのかな……)、そこからインスタンステンプレートを作りました。

インスタンステンプレートができたら、インスタンスグループを作りましょう。 「Compute Engine」 → 「インスタンスグループ」 → 「新しいインスタンスグループ」で、「インスタンステンプレートを使用」を選び、「自動スケーリング」をオンにしておく。 「Compute Engine」 → 「ネットワーク負荷分散」 から「ターゲットプール」を選び、適当にターゲットプールを作る。 ヘルスチェックを適切に設定する必要がある。既に動いてるサービスで使ってるのがあるなら、それと同じのを使うのが正しいように思う。
ターゲットプールができたら、それを使うような転送ルールを作る。それっぽく設定して欲しい。

最後にスケーリングした時できるインスタンスをロードバランサ自動で追加して欲しいので、それの設定をしないといけないが、現時点ではこれはGUI からはできないらしい。 ここ を参考に、既につくったインスタンスグループを、ターゲットプールに紐付ける。 むしろこっち と言うべきかも。
$ gcloud preview managed-instance-groups --zone us-central1-a set-target-pools INSTANCE_GROUP --target-pool TARGET_POOL
のようなコマンドでAPI を叩いて設定する。インスタンスグループの名前、ターゲットプールの名前はそれぞれさっき作ったのを入れる。

$ gcloud preview managed-instance-groups --zone us-central1-a resize INSTANCE_GROUP --new-size 10 とかのコマンドでLB にインスタンスが追加されてたら成功っぽい。

実際に立ってるインスタンスにSSH して、中でyes > /dev/null をいくつも走らせてちゃんとスケーリングするのを見て満足しましょう。

気が付けば年が開けていました。 今年もよろしくお願いします。

去年の二月に始めたこのブログですが、今年も技術的なことや、適当なことを書いていこうと思います。適当に見てください。

重要

お年玉は前後6ヶ月受け付けておりますが、この時期が旬となっています。 何卒よろしくお願いします。

過去のページ Page 22 of 38 未来のページ