この記事は約4分で読めます。
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。
こんにちは、営業部の中嶋(@mnakajima18)です。
みなさん、AWSにはCloudFrontというCDNのサービスがあることをご存じでしょうか。
世界中のエッジロケーションに静的なオリジナルコンテンツのキャッシュを置くことで、コンテンツを高速に配信させたり、アクセス負荷を分散させたりするときに非常に活用できます。
先日、2012/2/2(木)には新しい2つのエッジロケーション、ミラノ(イタリア)と大阪が追加され、合計26ヶ所の地域にエッジロケーションが配置されました。
今回は、ますます熱くなっているCloudFrontのログについて詳しく説明していきたいと思います。
今回のアジェンダ
- CloudFrontのログ
- CloudFrontのログフォーマットの詳細
- エッジロケーションの略称
- まとめ
1. CloudFrontのログ
CloudFrontのログの取得は、簡単に説明しますと以下の流れで設定できます。
(1) S3にログを取得できるバケットを用意する
(2) CloudFrontにログを取得するよう設定する
(3) ログの保存場所は1.で作成したS3のバケットを指定する
これで完了です。
しばらくするとログがS3に取得されます。
では、どのようにログは取得されるのかというと、以下のように1アクセス毎に取得されています。
#Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query 2012-02-08 10:00:54 SFO5 356 134.180.242.21 GET xxxxxxxxxxxxxxx.cloudfront.net /nakajimacf/test/nyaozane.gif 304 http://mnakjima18.com/test/testmn Mozilla/4.0%20(compatible;%20MSIE%207.0;%20Windows%20NT%206.0;%20SLCC1;%20.NET%20CLR%202.0.50727;%20Media%20Center%20PC%205.0;%20eSobiSubscriber%202.0.4.16;%20.NET%20CLR%203.0.30729;%20InfoPath.1;%20.NET%20CLR%203.5.30729) -
1つのgzipファイルに複数のアクセスログが書き込まれています。
さらに複数のgzipファイルに分割されるのですが、分割には特に明確な基準はないそうです。
2. CloudFrontのログフォーマットの詳細
CloudFrontのログにはフィールド名も記載されていますので、まとめてみました。
詳しくは以下の内容となっています。
項目 | ログ | 説明 |
---|---|---|
date | 2012/2/8 | 日付 |
time | 10:00:54 | 時刻 |
x-edge-location | SFO5 | エッジロケーションの略称 (3文字コード+数字) |
sc-bytes | 356 | サーバから送られたバイト数 |
c-ip | 134.180.242.21 | クライアントのIP |
cs-method | GET | HTTPアクセスのメソッド (クライアントが実行した処理) |
cs(Host) | xxxxxxxxxxxxxxx.cloudfront.net | CloudFrontのドメイン名 |
cs-uri-stem | /nakajimacf/test/nyaozane.gif | アクセスされたリソース (コンテンツURI) |
sc-status | 200 | HTTP関連の処理の状態 |
cs(Referer) | http://mnakjima18.com/test/testmn | リファラ。ユーザが利用した直前のページ |
cs(User-Agent) | Mozilla/5.0%20(Windows;%20U;%20 Windows%20NT%206.0;%20ja;%20rv :1.9.2.26)%20Gecko/20120128%20 Firefox/3.6.26 | ユーザーエージェント (クライアントが利用したブラウザ) |
cs-uri-query | - | クライアントが実行しようとしたクエリ |
項目の頭に記載されているsやcは以下のような意味です。
プレフィックス | 意味 |
---|---|
s- | サーバの処理 |
c- | クライアントの処理 |
cs- | クライアントからサーバへの処理 |
sc- | サーバからクライアントへの処理 |
3. エッジロケーションの略称
ログフォーマットにありましたエッジロケーションは3文字の英字+数字で表現されています。
これだけではどの表現がどの地域かわかりません。
確認しましたところ、こちらのフォーラムに回答がありました。(2011/10現在)
https://forums.aws.amazon.com/message.jspa?messageID=184630
まとめてみますと、以下のようになっています。
<アメリカ>
略称 | 地域 |
---|---|
DFW3 | テキサス州ダラス/フォートワース(Dallas/Fort Worth, TX) |
EWR2 | ニュージャージー州ニューアーク(Newark, NJ) |
IAD2 | バージニア州アッシュバーン(Ashburn, VA) |
JAX1 | フロリダ州ジャクソンビル(Jacksonville, FL) |
JFK1 | ニューヨーク州ニューヨーク1(New York, NY) |
不明 | ニューヨーク州ニューヨーク2(New York, NY) |
LAX1 | カリフォルニア州ロサンゼルス(Los Angeles, CA) |
MIA3 | フロリダ州マイアミ(Miami, FL) |
SEA4 | ワシントン州シアトル(Seattle, WA) |
SFO4 | カリフォルニア州パロアルト1(Palo Alto, CA) |
不明 | カリフォルニア州パロアルト2(Palo Alto, CA) |
STL2 | ミズーリ州セントルイス(St. Louis, MO) |
不明 | カリフォルニア州サンノゼ(San Jose, CA) |
不明 | インディアナ州サウスベンド(South Bend, IN) |
<ヨーロッパ>
略称 | 地域 |
---|---|
AMS1 | アムステルダム(Amsterdam) |
ARN1 | ストックホルム(Stockholm) |
CDG3 | パリ(Paris) |
DUB2 | ダブリン(Dublin) |
FRA2 | フランクフルト(Frankfurt) |
LHR3 | ロンドン(London) |
不明 | ミラノ(Milano) |
<アジア>
略称 | 地域 |
---|---|
HKG1 | 香港(Hongkong) |
NRT4 | 東京(Tokyo) |
SIN2 | シンガポール(Singapore) |
不明 | 大阪(Osaka) |
<サンパウロ>
略称 | 地域 |
---|---|
GRU1 | サンパウロ(Sao Paulo) |
ところどころ不明となっているのは2011/10までは20ヶ所でしたので、あとから追加された地域はまだ略称一覧にありませんでした。
ところが、当社で取得しましたログの中に一覧にはないエッジロケーションの略称が見つかりました。
SFO5、JFK5、IND6、MXP4、NRT52
これらはあとから追加された地域かと思います。
エッジロケーションの略称はIATA空港コードから採用しているとのことなので、以下のように予想してみました。
<追加エッジロケーション略称予想>
略称 | 地域 |
---|---|
SFO5 | カリフォルニア州パロアルト2(Palo Alto, CA)※ |
JFK5 | ニューヨーク州ニューヨーク2(New York, NY)※ |
IND6 | インディアナ州サウスベンド(South Bend, IN) |
MXP4 | ミラノ(Milano) |
NRT52 | 大阪(Osaka) |
※ カリフォルニア州パロアルトとニューヨーク州ニューヨークは2ヶ所ずつあります。
カリフォルニア州サンノゼの略称は、取得されたログの中になかったので不明ですが、おそらくカリフォルニア州サンノゼにあるライド=ヒルビュー空港の「RHV」がつくのではないかと予想しています。
4. まとめ
今回はCloudFrontのログフォーマットを詳しく見ていきましたが、アクセスしてきたエッジロケーションの情報が取得できるなどログ解析の幅が広がりそうです。
当社ではCloudFrontを使った「爆速ホスティング」という簡単にCDNのホスティングが開始できるサービスがあります。
「爆速ホスティング」の主な特徴は3つあります。
- FTPでコンテンツアップロードできる
- 環境づくりが簡単にできる(爆速ホスティングの管理画面からGUIで設定)
- キャッシュクリアが速い(通常のCloudFrontでは最短1時間かかるところ、15分で完了)
いつも使っているFTPクライアントで手軽に利用したい、頻繁にコンテンツ更新が行われるので早く反映したい、といったご要望にお応えできるサービスです。
現在は標準でログ解析のサービスは行なっていないのですが、今回の内容を元にさらに機能追加していけるよう精進していきますので、ご期待ください。