Amazon DynamoDBをアプリケーション開発チームがマネジメントコンソールで作ったのでそれをトレースして本番環境でCloudFormation(以下cFn)を使って作るという依頼がありました。
勉強がてら1から作ってみました。参考にしたテンプレートは以下です。
AWS::DynamoDB::Table
現時点では英語のドキュメントしかありませんでした。
DataBaseをcFnで作る経験は初めてです。やはり実際に構築を経験しないとわからない制約がありました。
Properties :KeySchemaは第1スキーマのKeyTypeは”HASH”、第2スキーマは”RANGE”でなければならない 等
作っていて2つ選択肢があることに気づきました。
1.他の環境(dev,stg)の設定を予めキャプチャを取りその設定をまねて作る。
2.他の環境(dev,stg)の設定をcFnへと取り込みテンプレート化し本番環境へデプロイする。
既存リソースの CloudFormation 管理への取り込み
初めてなので時間がかかるのは2です。期限内におさまるかわからない。
しかし、スキルが身に付くのも2です。こんなトレードオフはエンジニアであればたくさん経験があると思います。
今回は、仕事としては1を選択しますがスキルとしては是非2を身に着けたいです。
「リソースをインポートするので正確ですし慣れれば工数を大幅に削減できそうです。」
余暇を利用してこのスキルを身に付けるため、実践していきます。
マネジメントコンソールとcFnでは、確かにマネジメントコンソールのほうがリソース作成は簡単に済みます。
しかし、全く同じ環境を短時間でデプロイするにはやはりcFnに軍配が上がります。設計書も不要です。
読解するスキルは必要ですがcFnのコードは設計書になるのでは?と思います。
AWSはドキュメントが豊富ですし、cFnは可読性が優れているコードに入ると思います。
AWSでインフラをコード化するスキルは是非身に付けたいですね。