ITmedia NEWS >

身に覚えのない170万円の請求が……AWSの運用管理で起きた“4つのしくじり”(1/4 ページ)

» 2020年08月17日 07時00分 公開
[吉村哲樹ITmedia]

 「AWSを使って構築したお客さまの環境を日々運用していく中で、これまでさまざまな失敗を経験してきた」――アイレットの古屋啓介さん(クラウドインテグレーション事業部インフラエンジニア)は、クラウドインフラの運用管理者向けイベント「Cloud Operator Days Tokyo 2020」のセッションでこう明かした。

 アイレットはクラウド専業のSIer。AWS(Amazon Web Services)のマネージドサービス「cloudpack」なども提供しているが、細かい仕様の見落としなどが原因で、cloudpackの運用でいくつかの“しくじり”があったという。

photo 世界のIaaS市場でトップシェアを誇る「AWS」の日本版公式サイト

身に覚えのない170万円の高額請求がAWSから来た

 古屋さんによると、特に印象に残っている失敗は4つ。その1つ目は「Amazon Athena」で170万円の請求が来たことだ。

 AthenaはAWSが提供するPaaSで、オンラインストレージ「Amazon Simple Storage Service」(S3)に格納したデータに対し、標準SQLを使ってデータ分析を行えるようにするツールだ。

 アイレットはある時、顧客からネットワークサービス「Amazon Cloudfront」とロードバランサー「Elastic Load Balancing」(ELB)のログを分析したいとの依頼があったため、Athenaを使うことにした。

 主な手順は、まずCloud FrontとELBのログデータをS3バケットに格納。次に「AWS Lambda」のコードからAthenaを呼び出し、S3バケットに対して分析のクエリを発行する。そして、その結果をさらに別のS3バケットに格納する、というもの。クエリの発行処理はLambdaで再帰実行するため、多くのデータを効率よく処理できるはずだった。

 何の問題もないように見えたこの仕組みだったが、動かしてみると、Lambda上のコードが無限ループに陥っており、AthenaからS3に対して昼夜問わずひっきりなしにクエリが発行された。そのため東京リージョンのS3から米国リージョンのAthenaに対して予期せぬ大量のデータ転送が行われており、気付かぬうちに170万円もの転送料金が発生していた。

 「直接の原因はプログラムの不具合だったが、後でAWSのドキュメントをよく読むと、Lambda関数内で再帰的なコードを使用することはアンチパターン(失敗につながりやすい設計・開発手法)とされていた。『やはりアンチパターンは絶対に避けなければならない』とあらためて痛感したしくじりだった」(古屋さん)

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.