2021-07-14

AttributeError: 'Template' object has no attribute 'add_description'

Zappaを使ってAWS LambdaにFlaskのスクリプトをアップしようとしたら、表題のようなエラーが。。。どうやら、最近この現象が起き始めているようで、Githubのissuesにも取り上げられているようです。

解決策

当面の解決策は、

  • pip3 install "troposphere==2.7.0"
を実行すること。。どうやら、AWS側の問題らしい。よくわからんけど、とりあえず動いているので良しとしよう。



2021-07-10

DynamoDBに正式移行しました

おちラボでは、ようやく、、、、よーやく研究室の公式DBをSimpleDBからDynamoDBに移行しました。

なぜ今まで移行しなかったか?
DynamoDBについては、2012年に

という記事を書いたように、早くから注目していましたが、料金体系に問題があり(後述)、ゼミでの利用に不向きだったこともあり、SimpleDBを利用していました(AWS:SimpleDBをセットアップする)。しかし、SimpleDBはいつ死んでもおかしくないようなサービスなので(全くSDKがバージョンアップしていない)、このまま使う続けるのはまずいよな。。と流石に思い始め、かつ後述するように料金体系がいつの間にか変更されていて、使いやすくなっていたので、今年から切り替えることになりました。

DynamoDBの料金体系を確認する
現在、DynamoDBには2つの料金体系が存在します。
  1. プロビジョニング
  2. オンデマンド
1は昔からあるタイプで、いわゆる事前割当になります。これが問題だったのは、テーブル毎にプロビジョニング設定をしないといけないということ。つまりテーブルを増やせば増やすほど課金されます。これは使わなくてもです。一方、2は最近出てきた料金体系で(2018年に発表されたようです)、使ったぶんだけ、、ということになります。SimpleDBがまさにこの料金体系だったので、おそらくこの料金体系を用意することで、SimpleDBのユーザを移行させようとしているのではないでしょうか(私みたいに)?

実際安くなるのか?
ただし、オンデマンドの場合、青天井に増えていく可能性がありますので注意が必要です。真面目に運用をはじめると、プロビジョニングのほうが割安でしょう。ただ、ゼミでちょっと学生に使わせるとか、テーブルを気軽に増やしておけるというのは大変ありがたく(これが正しいDynamoDBの使い方なのかはおいといて)、現状だとDynamoDBについてコストはほぼ発生していない状況です。

というわけで、今後はDynamoDBについての記事も増えてくると思います。