こんにちは。望月です。 最近、AWS SDK for Rubyを利用して、運用で使うスクリプトを書いているのですが、どうも処理が遅いのが気になっていました。 参考 : S3の現在の総保存量を計算するスクリプトを書いた SecurityGroupの逆引きをするスクリプト書いた どこで遅くなっているのかを調べているうちに一つわかったことがあったので、ブログに残しておきます。 AWS SDK for RubyのAPI呼び出し 例えば、上に示したうちの2つ目のスクリプトでは、全てのEC2インスタンスに紐付いている、全てのSecurityGroupに対して処理を実施するために以下のようなコードを書いています。 ec2 = AWS::EC2.new ec2.instances.each do |i| i.security_groups.each do |sec| # ...処理... end end
![AWS SDK for Rubyのmemoizeを利用してAPIリクエストを効率化する | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/495673edbefe7b7bc5e6e9e54b2565989b893342/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2013%2F09%2Faws1.png)