AWSのクラウドストレージ「Amazon Simple Storage Service」(Amazon S3)とBIサービス「Amazon QuickSight」を組み合わせると、営業データを手軽に視覚化して分析できる――こんな情報を聞きつけたITmediaの営業カワバタ。アマゾン ウェブ サービス(AWS)のアカウントを取得してから、地道な挑戦を進めていた彼が新しいチャレンジを始める。
カワバタがQuickSightを試すタイミングで、編集部の若手記者ハラダも参加。表計算ソフトでまとめた営業データの視覚化に挑むも、元のデータ集計に問題があるなど初心者の“失敗あるある”に陥ってしまう。最終的に、試行錯誤しながらもデータの視覚化に成功した2人のチャレンジはこちらの記事で紹介している。
今回はAWS初心者の2人が、Amazon S3と呼ばれるクラウドストレージサービスを使ってデータ活用を進める姿をレポートする。
カワバタ Amazon S3って、よく聞きますよね。データを保存できるストレージサービスですよね。
早速、Amazon S3を試すため、テスト用に写真データを保存してみる。AWSのホーム画面「マネジメントコンソール」からAmazon S3を検索してサービスのページに移動。Amazon S3ではデータ保存用の入れ物を「バケット」と呼ぶ。オレンジ色のボタン「バケットを作成」をクリックし、バケット名を決める。名前は全世界のどのバケットとも重複ないオリジナルなものにする必要がある。今回は「name-photo」にした。
次にデータを保存するリージョンを選ぶ。自身がいる拠点に近いリージョンほど、ネットワークの遅延を抑えられるため、特にこだわりがなければ東京か大阪か近い方を選ぶのも手だ。そして「オブジェクト所有者」は、アクセス権限をバケットポリシーなどで一元管理できるようになる、推奨の「ACL(アクセスコントロールリスト)無効」を選ぶ。そして「パブリックアクセス設定」に進む。
カワバタ アクセス設定はどうしましょうか。最初は「すべてブロック」の設定ですが、今後データを部署内で共有するかもしれないし、アクセスを許可するのがいいですかね?
ハラダ ちょっと判断が付かないですね……。ITmedia NEWS編集部の編集記者ヨシカワさんに聞きましょうか――ヨシカワさん、どうでしょう?
ヨシカワのアドバイスを踏まえつつ、続く各種設定「パブリックアクセス設定」「バージョニング」「タグ」「暗号化」「詳細設定」は全てデフォルト状態にして「バケットの作成」をクリック。2〜3秒でバケットが作成された。
いよいよ作成したバケットにファイルをアップロードする。バケット名を押してバケットのページを開き、「アップロード」をクリック。ファイルをPC内から選ぶかドラッグ&ドロップでAmazon S3に追加し、アップロードを押せば完了だ。アップロードしたファイル名を押して詳細ページに移動し、右上の「開く」から中身を確認できる。Amazon S3ではファイルを「オブジェクト」と呼ぶ。
バケットのページにある「フォルダの作成」からフォルダを作れる他、上部のタブで各種設定を変更できる。「プロパティ」タブの「バージョニング」では、オブジェクトの更新履歴を「バージョン1」「バージョン2」といった具合に残せたり、「アクセス許可」タブでアクセス設定を変更したりできる。
Amazon S3の使い方を学んだところで、QuickSightとの連携を進めていく。前回はPC内にある表計算ソフトのファイルを直接QuickSightにアップロードして、データを視覚化した。Amazon S3を活用すると、バケット内のデータを自動更新できるため毎回QuickSightにアップロードする必要がなくなる。例えば、表計算ソフトのファイルの保管場所をAmazon S3に設定して毎週更新していけば、QuickSightの数値やグラフが自動で更新される。
まずは事前準備として、Amazon S3内にQuickSight用のバケット「name-quicksight」を作成し、視覚化したいデータが入ったCSVファイルをアップロードしておく。このとき、基になるファイル名は英数字か記号のみにしておくことが大事だ。そうすると、後々エラーが出づらい。例えば「営業データ2023」ではなく「salesdata2023」にするという意味だ。また、CSVファイルは「カンマ区切り」「文字コード:UTF-8」にしておくといい(詳細は下記動画)。
カワバタ ここからはQuickSightでの作業ですね。Amazon S3との連携はどこに設定がありましたっけ。
ハラダ 私たちがQuickSightのアカウントを登録したとき、Amazon S3と連携するか決める項目があったはずです。ただ当時は連携しない選択をしていたので、設定を変えましょう。
QuickSightのトップページ右上にあるアイコンを押して「QuickSightの管理」に進み「セキュリティとアクセス権限」の欄を開く。「QuickSightのAWSサービスへのアクセス」の管理ページに移動して、選択肢にある「Amazon S3」にチェックを入れた後、連携するバケットを選んで保存すれば終了だ。
ここからデータの視覚化に進む。QuickSightの「新しい分析」→「新しいデータセット」→「S3」を選択。「データソース名」は自分が分かりやすい名前を付けておき、マニフェストファイルの設定に移る。
カワバタ マニフェストファイルなんてありましたっけ?
ハラダ マニフェストファイルについてのテキストリンクを開くと、説明がありますね。ちょっと難しそう……。
ヨシカワ 分かれば簡単ですよ。QuickSightがAmazon S3内のオブジェクトを参照しようにも、どのオブジェクトを見ればいいか分からないんです。そこで「このオブジェクトですよ」と目標、つまりマニフェストを提示するわけです。
カワバタ なるほど!
ヨシカワ Amazon S3ではオブジェクト1つ1つに固有のURLが割り振られるので、そのURLを指定します。マニフェストファイルは「JSON」というフォーマットです。
まずPCで「メモ帳」を開き、ユーザーガイド内にあるJSONコードを貼り付ける。次にAmazon S3に保存したオブジェクトを開き、プロパティページにある「オブジェクトURL」をコピーして「uri1」の部分に貼り付ける。残ったuri2とuri3は削除して構わない。またURIPrefixesは使わないので、青字部分も削除する。
続いて読み込むオブジェクトの種類を指定するため、format「JSON」を「CSV」に書き換える。delimiterは「,(カンマ区切り)」、containsHeaderは「true(表の見出し行あり)」としておく。
{ "fileLocations": [ { "URIs": [ "オブジェクトURL", ] }, ], "globalUploadSettings": { "format": "JSON", "delimiter": ",", "textqualifier": "'", "containsHeader": "true" } }
ファイル内容を書き換えたら、「名前を付けて保存」から名前と拡張子を「manifest.json」にして保存。そのJSONファイルを、QuickSightにアップロードして「接続」を押せばOKだ。あとは通常と同じ手順でデータの視覚化をすればいい。
カワバタ いよいよデータの自動更新ですね! 私が営業データを更新するときは、同じファイルの数字をアップデートする場合と、「1月分」「2月分」など週次や月次ファイルとして更新する場合があります。
ヨシカワ どちらも対応できるので、試してみましょう!
まずは同じファイルを更新する場合を試す。下準備として、先ほどAmazon S3に保存したファイルの内容を少し変える。今回は変化が分かりやすいよう、営業データに行を加えて社名A〜CにD社を追加し、商品1〜6に商品7と商品8を追加した。
このファイルを1回目と同じAmazon S3のフォルダにアップロードすると、オブジェクトを上書きできる。このあと、しばらくしてQuickSightのダッシュボードに戻るとデータが更新されて社名Dや商品7〜8が追加されている。
反映されていない場合は、QuickSightのトップページ左側の「データセット」欄から連携したAmazon S3のデータセットをクリックし、「更新」タブにある「今すぐ更新」を押せばOKだ。さらに「新しいスケジュールの追加」で自動更新する日時を設定できる。
次に、週次や月次ファイルの更新をダッシュボードに反映するケースだ。これはAmazon S3のフォルダが更新されたら、その内容をQuickSightに反映する手順になる。そのため、S3に新しく専用フォルダを用意して、初期ファイル「salesdata2023v1」をアップロードしておく。
続いてQuickSightに新しいデータセットとしてAmazon S3のフォルダを登録する。このときマニフェストファイルを書き直す必要がある。メモ帳にJSONコードを貼り付けたら、URIPrefixesの「prefix1」にフォルダのURLを入力する。フォルダURLは、フォルダ内のオブジェクトURLから最後のスラッシュ以降をカットしたものだ(例:https://〜〜〜.com/フォルダ名/オブジェクト名)。残ったprefix1〜2とuri1〜3は削除して構わない。delimiterやformatは前回と同じ設定でAmazon QuickSightにアップロードすると、問題なく視覚化できるはずだ。
{ "fileLocations": [ { "URIPrefixes": [ " https://〜〜〜.com/フォルダ名/", ] } ], "globalUploadSettings": { "format": "JSON", "delimiter": ",", "textqualifier": "'", "containsHeader": "true" } }
そして、月次ファイルの2つ目「salesdata2023v2」を用意する。今回も違いが分かりやすいようにE〜F社と商品9〜10を追加。そのCSVファイルをS3のフォルダにアップロードして、データセットを更新するとダッシュボードに反映される。
ハラダ 無事にできましたね!
カワバタ これ便利そうですね。Amazon S3にファイルを保存すればバックアップにもなりますし、そのデータを視覚化すれば業務改善につなげられるかもしれません!
ヨシカワ AWSのサービスを連携して使えるようになると、成長した感じがしますね。今回のようなデータ分析でのAmazon S3活用は、あくまでいち機能でしかありません。他にも取材時の写真データを大量に保管したり、バックオフィス関連の文書を保存するバックアップ先にしたりできますし。使い方によって料金が変わる場合があるので、公式サイトの料金ページを確認しましょう。
ハラダ 写真の保存先は確かに悩むので、ありがたいですね。
料金形態も豊富だ。例えば、使わないが数年間は保存したいファイルなどアーカイブ利用を想定した「Amazon S3 Glacier」のうち、「Amazon S3 Glacier Deep Archive」なら通常料金の約10分の1で済む。設定次第では、1年後に自動でGlacierにアーカイブする使い方も可能だ。公式ページではデータの耐久性を「99.999999999%」(1千万オブジェクトのうち1つでも破損の可能性があるのは1万年に一度)とうたっており、耐久性やセキュリティ対策の高さなどもデータを守るには欠かせない。
AWSは幅広いサービスを取りそろえているのが特長だ。データの保管から視覚化までさまざまなニーズに答えられるだろう。Amazon QuickSightやAmazon S3のように初心者でも使えるサービスも多いため、試してみてはいかがだろうか。
AWS re:Postは、アマゾン ウェブ サービス(AWS)コミュニティー向けのクラウドナレッジ共有サービスです。re:Postの使命は、AWSを利用する全てのユーザーが、AWSサービスに関する質問をしたり、知識を共有したりすることを歓迎する環境の提供です。re:Postには誰でもアクセスできますが、コミュニティーと交流するには、AWS認証情報を使用してサインインする必要があります。(詳細はこちら)
Copyright © ITmedia, Inc. All Rights Reserved.
提供:アマゾン ウェブ サービス ジャパン合同会社
アイティメディア営業企画/制作:ITmedia NEWS編集部/掲載内容有効期限:2023年12月20日