CloudFormation Stackを安全に削除する

Posted on Tue 12 October 2021 in blog • Tagged with aws, cloudformation

以前、CloudFormation の不満点 というのを書いたが、諦めて大半のCfnをterraformに移行した。
その際、cfn リソースをきれいにするために、cfn stackを安全に削除する必要があり、その方法をメモしておく。

概要

アイデアは簡単で以下の通り。

  1. cfn の操作のみが許可されているIAM roleを作成する
  2. 上記roleを指定して cfn stackをdeleteする

モチベーション

そもそも以前の記事でも、予期せぬ手作業の …


Continue reading

1Password CLIを使ってTOTPを取得する

Posted on Tue 12 October 2021 in blog • Tagged with aws, 1password

2要素認証を必須にしたAWSのswitch roleで、temporary credentialsをCLIで取得したかった。
TOTPの数字を毎回調べるのが面倒で、簡単にできないか調べたところ、1Password CLIというのがあった。1Passwordユーザなので、これを利用する。
ただし、当然のことだが、2要素認証のデバイスとして、1Passwordが利用されている状況とする。

1Password CLIの初期設定

1Password CLI を利用できるようにする。
1Password CLIのGetting Startedを見て、初期設定 …


Continue reading

Python でコメント付きYAMLを扱う時には ruamel.yaml が便利だった

Posted on Tue 12 February 2019 in blog • Tagged with python, yaml

資料

背景

とある yamlで書かれたconfigファイル群(数百ファイル)を一括で変更したいことがあった。
sedで変更するには少し難しかったので、パースしてから条件判定して、書き換えたい。

  • コメントは消したくない
  • ブロックスタイルのままにしたい
  • diff を最小限にしたい (細かい中身を知らないので、チェックするのが面倒)

ruamel.yaml

python で yaml を扱うときは …


Continue reading

CloudFormation の不満点

Posted on Fri 25 January 2019 in blog • Tagged with aws, cloudformation

以下では「手作業で」というのは、「CloudFormation管理外で」という意味で使う。

要点

  • CloudFormation は、リソースが何かの理由で手作業で変更されていた場合に安全に操作できない
  • Drift 検出は誤検出が多すぎて使いづらい
  • Change Set は動いている状態との差分を見ていないので、信用できない

経緯

CloudFormation で管理されているリソースすべてについて、新しいタグをつけたくなった。
ただ、各サービ …


Continue reading

DebianでLuaJITTeXを使いたい

Posted on Wed 31 October 2018 in blog • Tagged with tex, debian

そろそろLuaTex使ってみたいなと思ったところ、LuaJITTeXの方が早い場合があるということで、試してみようと思った。

参考

未解決の問題

  • /var/lib/texmf/fmtutil.cnf-TEXLIVEDIST が自動生成されている、とコメントされているが、元ファイルがわからない
### This file was automatically generated by update-fmtutil.
#
# Any local change will be overwritten. Please see the documentation
# of updmap on …

Continue reading

Debian でログインシェルをzshにしている人が snappy を使う場合の注意

Posted on Wed 11 April 2018 in blog • Tagged with debian, snappy, zsh

Snappy について

Canonical が主導しているパッケージシステムで、Universal Linux Package と銘打つように、ポータブルなパッケージングができそうな感じ。
ポータビリティを上げるために、dockerみたいな感じで、依存ライブラリも全部パッケージに含めてしまうスタイルなので、多少debパッケージよりは大きくなる。
その分、sidを使っているとよく起きる、共通ライブラリの依存バ …


Continue reading

PyPIへパッケージをアップロードする

Posted on Thu 05 April 2018 in blog • Tagged with pypi, python

資料

  • パッケージ構成については github.com/pypa/sampleproject
  • https://pypi.python.org/pypi/twine
  • https://packaging.python.org/tutorials/distributing-packages/

手順

PyPIへユーザー登録する

PyPI には普段使われている本番環境とは別に、テスト環境がある。
アカウントがそれぞれ独立しているので、両方で作成する必要がある。

.pypirc の作成

以下のように ~/.pypirc を作成して、test 環境を利用できるようにしておく。
平分でパスワードを書くことになる …


Continue reading

Google Cloud Pub/Sub をGolangから使おうとしてハマったことまとめ

Posted on Mon 05 February 2018 in blog • Tagged with GCP, golang

概要

Google Pub/SubGoのSDK から使おうとしていました。
やっているといくつか詰まったので、メモしておきます。

  1. サービスアカウントを利用するためにCredentials JSONを指定する
  2. サブスクリプションの Pub/Sub サブスクライバー権限 を与えても Permission Denied になる

サービスアカウントを利用するためにCredentials JSONを指定する

権限の都合上、サービスアカウントのCredentials JSONを利用して認証 …


Continue reading

さくらのクラウドでN百台を管理するためにterraformとansibleを使っている話

Posted on Tue 05 December 2017 in blog • Tagged with sakrua, ansible, terraform


これは、さくらインターネット Advent Calendar 2017 として書いた記事 です。


さくらインターネットでは、今年4月からIoTプラットフォームの sakura.io をサービス提供しています。
sakura.io は、さくらのクラウド上で本番・検証環境を構築しており、数百台のサーバーを利用しています。

私はリリース直前にチームに参加し、開発の傍ら運用改善活動をしていました。
その結果と …


Continue reading

Mesos の sandbox のログローテーションをする

Posted on Fri 01 December 2017 in blog • Tagged with mesos, docker

結論

  • http://mesos.apache.org/documentation/latest/logging/#logrotatecontainerlogger
  • LogrotateContainerLogger を使って、 module parameter を設定する

概要

Mesos + Marathon 環境でdockerを動かしている。
基本的にコンテナのログは fluentd で飛ばしているのだけど、日に日に mesos slave のディスク容量が圧迫されていた。
調べてみると、 /var/lib/mesos-slave/slaves/ 以下にあるフォルダのうち、sandbox のログが肥大化していた。
sandbox には stdout, stderr があって、それぞれコンテナのstdout, stderrを記録しているファイルで、mesosか …


Continue reading