2019-05-11

Rust のプロジェクトを CircleCI でテストしてリリースまで自動化するための設定例

先日このブログを自作の Salmon という静的サイトジェネレータに移行した というエントリを書きましたが、快適に開発を進めていくために CI 環境を整えようと思いたち、ちまちまと CircleCI を設定していました。

以前から Travis CI を個人プロジェクトで利用してきましたが、少し前から本格的に CircleCI を利用しはじめてみたところ、非常に手に馴染む感じがして気に入りました。じつは CircleCI 2.0 になる前にも少し使ったことがあったのですが、2.0 になって Docker ベースになったため、もろもろの概念や裏側で何が起こっているのかも理解・推測しやすくて扱いやすいです。

不慣れなのではじめは上手に設定が書けませんでしたが、ドキュメントとにらめっこしながらパターンを学んでいき、ようやく Rust プロジェクトでコミットをプッシュするたびにテストを走らせ、リリース (docker push および cargo publish) するところまで自動化できたので、メモとしてこのエントリを書くことにしました。

設定を書く際には https://www.ncaq.net/2019/03/08/21/12/35/ のエントリも参考にしました。

2019-05-09

ElastiCache のパラメータグループの差分をシュッと見たい

RDS の場合だと GUI からパラメータグループの差分を見られて便利なのですが、ElastiCache にはそのような画面がない (ないよね?) ので、適当にスクリプトを書きました。

https://github.com/mozamimy/toolbox/blob/master/ruby/elasticache_param_diff/elasticache_param_diff.rb

{{ embed_code "/2019/05/09/elasticache_param_diff.rb" }}

実行すると、こんな感じで差分が出てきます。実際には色もついてきれいです。

2019-05-03

ブログを自作の静的サイトジェネレータ Salmon に移行しました

このブログを構成するためのフレームワークとして、ながらく Middleman を愛用してきましたが、このたび自作の静的サイトジェネレータであるところの Salmon に移行しました。一文字目は大文字にするのがカノニカルな表記です。

過去の記事はもちろん、この記事も Salmon を使って生成しています。まだ README をちゃんと書けていないので、この記事をたたき台にしようと思っています。

まだかわいいロゴがないので、イメージ画像としていらすとやからサーモンのおすしの画像をお借りしてきました。

2018-05-20

Docker for Mac でホストの特定のポートにつなぐ方法 (18.03 からのよりよい方法)

Docker for Mac では docker0 のようなブリッジインターフェースがないため、コンテナからホストマシンの特定のポートに刺したいときに、以下の記事に書いたように以前はループバックインターフェースにエイリアス IP アドレスを振る必要がありました。

Docker for Mac でホストの特定のポートにつなぐ方法

何気なくドキュメントを眺めていたところ、18.03 からは host.docker.internal もしくは gateway.docker.internal という特殊な DNS 名を使うことができるようになっていました。

Networking features in Docker for Mac | Docker Documentation

2018-05-12

Terraform の state mv を使ってべた書きしたリソースをモジュールに移す tips

📂 Terraform におけるファイル分割

codenize ツールとしてポピュラーな Terraform をミニマルに使いはじめる場合、最初から細かくファイルを分割するのではなく、たとえば AWS のサービスごとにファイルを分け、1 ファイルに複数のリソースをまとめて書くことがあります。

その後、リソースが増えてきてファイルが大きくなってきたときにモジュール化するなどして、はじめてファイルを分割しようとなります。

その場合、素朴にモジュールに切り出しても、Terraform の状態を保持する tfstate の整合性がとれなくなり、意図しない差分が出て困ることになります。

2018-05-04

インターネットルーティング入門 第 3 版を読んだ

この本です。

インターネットルーティング入門 第3版 (ネットワーキング入門)
友近 剛史 池尻 雄一 白崎 泰弘
翔泳社
売り上げランキング: 146,269

💡 読もうと思ったきっかけ

ふだんウェブサービスのインフラを触ることが多いのですが、もう少し下のレイヤ、つまり L2, L3 あたりの知識がふんわりとしていて、もっとキッチリと「わかり」たいと思ったのがきっかけです。

2018-02-18

fixup! なコミットを含む pull request で merge ボタンを押せなくするブラウザ拡張を作った

GitHub および GitHub Enterprise (以下 GHE と表記) で fixup! なコミットを含む pull request で merge ボタンを押せなくするブラウザ拡張 autosquash-please を作りました。Firefox と Chrome で動きます。具体的な動作イメージは以下のスクリーンショットを見てください。

autosquash-please

このように、コミットの一覧に !fixup foobar のようなコミットが含まれていると、マージボタンがかくれるだけの拡張です。

どのような場合に役に立つの?

2018-02-11

HAProxy 1.6 と 1.7 ではヘルスチェックを設定しないと名前解決が走らない

先日、会社の技術ブログで AWS Lambda を中心としたサーバーレスアーキテクチャーの記事を書いたのですが、思いのほか好評でびっくりしている @mozamimy です。

HAProxy でハマりがちなポイント

2018-01-14

SRE book から学んだことと、献身と愛情、2018 年の行動指針について

📕 SRE book を読んだ

SRE という肩書で仕事をしはじめてそろそろ 2 年たとうかというところで、いつか読もう読もうと思って読んでいなかった Site Reliability Engineering、いわゆる SRE book の日本語訳版を年末年始にかけて読みました。

SRE という肩書で業務に取り組んでいる人はもちろん、そうでないインフラエンジニアやサービス開発に取り組んでいるエンジニアの皆さんにも、ぜひオススメしたい一冊です。わたしは最初から最後まで通読しましたが、章ごとに扱っているテーマは分かれているため、興味のある章を拾い読みするのもよいでしょう。一部他の章の知識が必要なところもありますが、そのような章へのリファレンスがキチンとついているので良心的なつくりになっています。

2017-11-30

AWS Certified Solutions Architect (Associate) を受験して合格しました

こんにちは。@mozamimy です。先日機運が高まって AWS Certified Solutions Architect (Associate) を受験する気持ちになり、受験したら合格したのでメモを残しておきます。

ちなみにわたしのスペックは以下のような感じです。

  • AWS 歴: 業務および個人で 1 年半程度
  • 好きなサービス
    • ECS
    • ELB
    • Lambda

❓ なぜ突然 AWS の資格を受験する気持ちになったのか