2019-06-15

ElastiCache の configuration endpoint のフリをする Mimikyu というミドルウェアを作った

週報 (2019-06 2 週目) | Mimikyu というミドルウェアを書いたり Gato Roboto を一通りクリアしたり のエントリでもチラッと触れたのですが、ElastiCache の configuration endpoint のフリをする Mimikyu というミドルウェアを作ったので、それについて書いていきたいと思います。

実のところ、本番環境には投入することができなかったので実際の環境での利用実績はないです... が、ローカルでテストしたところ、ちゃんと動いているのでどんな環境でもうまく動くはず。

リポジトリは以下のリンクから。

mozamimy/mimikyu: Tiny proxy of ElastiCahce Memceched configuration endpoint

2019-06-08

週報 (2019-06 2 週目) | Mimikyu というミドルウェアを書いたり Gato Roboto を一通りクリアしたり

先週から始めてみた週報ですが、とりあえず 2 回は続きました。二度あることは三度あるということわざもあるので、このまま毎週続けられるといいですね。

先週の記事はこちら。

週報 (2019-06 1 週目) | Salmon v0.4.0・電気ブランとか Night in the Woods とか

今週のハイライトは、

2019-06-02

週報 (2019-06 1 週目) | Salmon v0.4.0・電気ブランとか Night in the Woods とか

「あのとき何やってたかなあ」と思い返すときに便利そうなのと、日々取り組んでいることについて人が見える場所に書いていくといろいろおトクな気がしてきたので、週報という形でぽつぽつと書いていくことにします。週一回くらいなら続けられそうな気がする。

今週のハイライトは、

ブログ記事をひとつ書いた

2019-06-01

Spot Fleet を使って割安にリモート (AWS) に開発環境を持つためのアレコレ

みなさん、開発をやっていますか? わたしはやっています。

わたしはどちらかといえば「なるべくモノを持たない主義」なので、家に計算機をあまり置かないようにしています。とはいえ、IX2105 といったルータやスイッチの類や、HP の MicroServer N54L が元気に稼働してたりはしますが..。

それはさておき、家に開発用に大きなデスクトップマシンを置きたくないということもあり、ここ数年はさくらの VPS で借りたインスタンスをリモートの開発マシンとして利用していました。ただ、ご家庭の計算機環境の Infrastructure as Code を実践し始める前からの年季の入ったインスタンスで、雑草が生え放題になっていてツギハギでなんとか動いているといった様子でした。また、使っていないときも動いているため、月額で契約する VPS は割高だなあという気持ちもありました。

そこで、開発環境をガッと AWS に移すことに決め、さらにスポットインスタンスを活用して、性能の良いインスタンスを割安に使える環境を作ることに決めました。

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 あたりの知識がふんわりとしていて、もっとキッチリと「わかり」たいと思ったのがきっかけです。