2017年3月28日

S3 buckets の Terraform 化

これまで AWS の管理画面で手作業でつくってきた Amazon S3 の buckets を、今後は Terraform でコードとして管理していきましょう、という仕事をやった。Web アプリで必要になる主要な AWS のリソースのコード化に慣れてきたので、インフラ周りの似たような仕事をかなり引き受けやすくなったと思う。

絶賛稼働中の既存の buckets を移行する作業というのは結構難しく、terraform import や terraform state コマンドを利用した state ファイルの操作、それから terraform import で取得されるリソースの種類 (実は terraform import は aws_s3_bucket 以外の情報も import する)、import で対応できていない部分への手作業での対応、CloudFront のログ設定と S3 bucket との対応関係を理解した上での設定など、単純にコードを書けば OK というだけのものではなく、なかなか難しい仕事内容だと言える。

amakan book

新 DB 設計を利用したデータ収集機能を動かしてみたところ、幾つか不具合が見つかり、せっせと直してようやく不具合がこれ以上見つけられないという段階まで到達した。これから UI 側を新 DB 設計を利用したものに変えていって (この過程で幾つか設計に問題があることが分かるだろうと思う)、それから旧データからの移行スクリプトを記述し、ようやく新 DB 設計に移行完了となる。

データの移行は簡単で、読んだ本と読みたい本の ASIN との対応表をまるっと作り出してコピーしていくだけ。旧 DB 設計はユーザ情報がシリーズに依存していないという点で逃げやすい設計だったんだけど、シリーズ判定ロジックの改善がそろそろ落ち着いてきたので、もう逃げることも無いだろうということで方針転換している。ちなみに新しい方では、すべての本が何らかのシリーズに属することになるので、amakan anime に近いような UI になると思う。

広告を非表示にする