SlideShare a Scribd company logo
1 of 22
COLLECTING BIG DATA WITH
S3/CLOUDFRONT LOGGING
Moty Michaely, VP R&D
Xplenty Data Integration-as-a-Service
In our recent article, “Scale Your Data Collection on the Cloud
Like a Champ”, we reviewed several ways of collecting big
data, the most promising of which was S3/CloudFront
logging. It’s low cost and quick to implement. Now we’d like
to dig deeper and show how to setup S3/CloudFront logging
with your application.
DEFINE APP DATA
Sit back and think - which data would you like to collect? Which app
events should be logged? These could be page visits, mouse clicks, logins,
errors, etc. Some of them may include parameters such as the page visit
URL. Write them all down. Be as thorough as possible so you don’t lose
any precious data.
CREATE AN AWS ACCOUNT
If you don’t already have an AWS (Amazon Web Services) account, you
can sign up here. Registration is free with the basic support package.
CREATE AN S3 BUCKET
Go to the S3 dashboard and create a bucket for saving the logs. Note that
the bucket must have a unique name across Amazon’s service and adhere
to DNS rules: 3-63 characters, only letters numbers and periods, shouldn't
look like an IP address, and no underscores. Don’t turn on logging - we will
do so via CloudFront.
(See the screenshot on the next slide for a visual explanation)
CREATE AN S3 BUCKET (SCREENSHOT)
CREATE EVENT IMAGES
Set up directories in the image bucket, for example /mouse, to organize
events by categories, and create 1x1 pixel images (see previous post) for
all the events that you defined in the first step, e.g. click.png, login.png,
error.png. Don’t worry about event parameters at the moment, we will
deal with them shortly.
All files uploaded to S3 are set as private, so make sure to change the file
permissions to public. You may use tools such as CloudBerry
Explorer or S3 Browser to do so and much more.
CREATE EVENT IMAGES CONT.
Set HTTP headers for all the images so that they will be cached by
CloudFront, thus saving GET requests from CloudFront edge locations to
S3. Go to the relevant bucket, check the image files on the left, click
Actions at the top, choose Properties, and open the Metadata section.
Add the following metadata line and click save:
▪ Cache-Control: max-age=31536000
CREATE EVENT IMAGES (SCREENSHOT)
CREATE A CLOUDFRONT DISTRIBUTION
Creating a CloudFront distribution costs extra, but it’s mandatory - it logs
the query string, adds extra log info such as edge locations, and helps to
deliver files via Amazon’s CDN to shorten load times. Access
the CloudFront dashboard and create a web distribution for the image S3
bucket. Make sure that Use Origin Cache Headers is set under Object
Caching (it’s the default setting).
CREATE A CLOUDFRONT DISTRIBUTION
CONT.
Note that the distribution gets a random domain name. It could take a
while before it starts working because the DNS servers need to be
updated to support it. You can also set a more friendly domain using the
Alternate Domain Names (CNAMEs) option under Distribution Settings,
though it requires configuring your DNS settings so that your domain
points to CloudFront’s domain name. See Amazon’s documentation for
more info.
CREATE A CLOUDFRONT DISTRIBUTION
(SCREENSHOT 1)
CREATE A CLOUDFRONT DISTRIBUTION
(SCREENSHOT 2)
TURN LOGGING ON
Still in the CloudFront dashboard, check the distribution on the left, click
Distribution Settings at the top, click Edit under the General tab, enable
logging, and insert the bucket where you want to store the logs.
TURN LOGGING ON (SCREENSHOT 1)
TURN LOGGING ON (SCREENSHOT 2)
CODE A FUNCTION TO CALL EVENTS
Time to get your hands dirty and write a method that registers events, or
call one of your app’s developers to do it for you. The code could be on
the client side, server side, or both depending on the architecture. The
method should simply send an asynchronous HTTP GET request to the
relevant image URL, e.g. to http://logs.xplenty.com/mouse/click.png (links
in this format for demo purposes only, not operational).
If you need to send additional event parameters, use the query
string (don’t forget URL encoding), e.g.
http://logs.xplenty.com/mouse/click.png?id=login&url=http%3A%2F%2Fw
ww.example.com%2Flogin
EXAMPLE CODE TO CALL EVENTS
$.CloudFrontLog = function (attr) {
var url = 'http://logs.xplenty.com/' + attr.category + '/' + attr.action +
'.png',
data = {
id: attr.id,
url: attr.url
};
return $.get(url, data);
};
CALL THE EVENTS
Dig through your app’s code and add event calls using the method
that you’ve just written. This will collect the data that you defined in
step 1. Here’s a jQuery code sample for logging client-side button
clicks:
$('.btn').click(function(e) {
var id = $(this).attr('id');
$.CloudFrontLog({
action: 'click',
category: 'mouse',
id: id,
url: location.href
});
});
TEST
Use your staging environment to call events via the application and check
that the logs are generated accordingly. Patience young padawan, it may
take an hour or so until Amazon writes them.
GO LIVE!
Everything should be ready for you to collect big data like a champ -
update the production environment and let the logging begin. Don't know
what to do with the data? See how to analyze AWS logs in 15 minutes.
XPLENTY DATA
WWW.XPLENTY.COM

More Related Content

Viewers also liked

(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...Amazon Web Services
 
Challenges In Pharmacovigilance Dr Vishwas, by Dr. Vishwas Sovani MD ,VP P...
Challenges In Pharmacovigilance   Dr Vishwas, by Dr. Vishwas Sovani  MD ,VP P...Challenges In Pharmacovigilance   Dr Vishwas, by Dr. Vishwas Sovani  MD ,VP P...
Challenges In Pharmacovigilance Dr Vishwas, by Dr. Vishwas Sovani MD ,VP P...Until ROI
 
Why Flow with Salesforce Flow
Why Flow with Salesforce FlowWhy Flow with Salesforce Flow
Why Flow with Salesforce FlowAjeet Singh
 
Diminishing marginal utility
Diminishing marginal utilityDiminishing marginal utility
Diminishing marginal utilityjijopr
 
Adverse Drug Reactions - Identifying, Causality & Reporting
Adverse Drug Reactions - Identifying, Causality & ReportingAdverse Drug Reactions - Identifying, Causality & Reporting
Adverse Drug Reactions - Identifying, Causality & ReportingRuella D'Costa Fernandes
 
Bring the Customer Journey to Life with Salesforce Marketing Cloud
Bring the Customer Journey to Life with Salesforce Marketing CloudBring the Customer Journey to Life with Salesforce Marketing Cloud
Bring the Customer Journey to Life with Salesforce Marketing CloudSalesforce Marketing Cloud
 
Mobile Enterprise Trends 2015 - Emergence Capital
Mobile Enterprise Trends 2015 - Emergence CapitalMobile Enterprise Trends 2015 - Emergence Capital
Mobile Enterprise Trends 2015 - Emergence CapitalEmergence Capital
 
How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?Suyati Technologies
 
Presentation introduction to six sigma
Presentation   introduction to six sigmaPresentation   introduction to six sigma
Presentation introduction to six sigmajpanchpor
 
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoTAmazon Web Services
 
Basic Six Sigma Presentation
Basic Six Sigma PresentationBasic Six Sigma Presentation
Basic Six Sigma Presentationvivekissar
 
Six Sigma the best ppt
Six Sigma the best pptSix Sigma the best ppt
Six Sigma the best pptRabia Sgh S
 
A Planner's Playbook - Everything I learned about planning at Miami Ad School...
A Planner's Playbook - Everything I learned about planning at Miami Ad School...A Planner's Playbook - Everything I learned about planning at Miami Ad School...
A Planner's Playbook - Everything I learned about planning at Miami Ad School...Sytse Kooistra
 

Viewers also liked (16)

(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
 
Challenges In Pharmacovigilance Dr Vishwas, by Dr. Vishwas Sovani MD ,VP P...
Challenges In Pharmacovigilance   Dr Vishwas, by Dr. Vishwas Sovani  MD ,VP P...Challenges In Pharmacovigilance   Dr Vishwas, by Dr. Vishwas Sovani  MD ,VP P...
Challenges In Pharmacovigilance Dr Vishwas, by Dr. Vishwas Sovani MD ,VP P...
 
Why Flow with Salesforce Flow
Why Flow with Salesforce FlowWhy Flow with Salesforce Flow
Why Flow with Salesforce Flow
 
Diminishing marginal utility
Diminishing marginal utilityDiminishing marginal utility
Diminishing marginal utility
 
Cardinal utility analysis
Cardinal utility analysisCardinal utility analysis
Cardinal utility analysis
 
Adverse Drug Reactions - Identifying, Causality & Reporting
Adverse Drug Reactions - Identifying, Causality & ReportingAdverse Drug Reactions - Identifying, Causality & Reporting
Adverse Drug Reactions - Identifying, Causality & Reporting
 
Bring the Customer Journey to Life with Salesforce Marketing Cloud
Bring the Customer Journey to Life with Salesforce Marketing CloudBring the Customer Journey to Life with Salesforce Marketing Cloud
Bring the Customer Journey to Life with Salesforce Marketing Cloud
 
Mobile Enterprise Trends 2015 - Emergence Capital
Mobile Enterprise Trends 2015 - Emergence CapitalMobile Enterprise Trends 2015 - Emergence Capital
Mobile Enterprise Trends 2015 - Emergence Capital
 
Utility analysis ppt
Utility analysis pptUtility analysis ppt
Utility analysis ppt
 
How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?
 
Presentation introduction to six sigma
Presentation   introduction to six sigmaPresentation   introduction to six sigma
Presentation introduction to six sigma
 
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
 
Six sigma ppt
Six sigma pptSix sigma ppt
Six sigma ppt
 
Basic Six Sigma Presentation
Basic Six Sigma PresentationBasic Six Sigma Presentation
Basic Six Sigma Presentation
 
Six Sigma the best ppt
Six Sigma the best pptSix Sigma the best ppt
Six Sigma the best ppt
 
A Planner's Playbook - Everything I learned about planning at Miami Ad School...
A Planner's Playbook - Everything I learned about planning at Miami Ad School...A Planner's Playbook - Everything I learned about planning at Miami Ad School...
A Planner's Playbook - Everything I learned about planning at Miami Ad School...
 

Recently uploaded

Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% SecurePooja Nehwal
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz1
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...shivangimorya083
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceDelhi Call girls
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAroojKhan71
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...shambhavirathore45
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 

Recently uploaded (20)

Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 

Collecting Big Data with S3/CloudFront Logging

  • 1. COLLECTING BIG DATA WITH S3/CLOUDFRONT LOGGING Moty Michaely, VP R&D Xplenty Data Integration-as-a-Service
  • 2. In our recent article, “Scale Your Data Collection on the Cloud Like a Champ”, we reviewed several ways of collecting big data, the most promising of which was S3/CloudFront logging. It’s low cost and quick to implement. Now we’d like to dig deeper and show how to setup S3/CloudFront logging with your application.
  • 3. DEFINE APP DATA Sit back and think - which data would you like to collect? Which app events should be logged? These could be page visits, mouse clicks, logins, errors, etc. Some of them may include parameters such as the page visit URL. Write them all down. Be as thorough as possible so you don’t lose any precious data.
  • 4. CREATE AN AWS ACCOUNT If you don’t already have an AWS (Amazon Web Services) account, you can sign up here. Registration is free with the basic support package.
  • 5. CREATE AN S3 BUCKET Go to the S3 dashboard and create a bucket for saving the logs. Note that the bucket must have a unique name across Amazon’s service and adhere to DNS rules: 3-63 characters, only letters numbers and periods, shouldn't look like an IP address, and no underscores. Don’t turn on logging - we will do so via CloudFront. (See the screenshot on the next slide for a visual explanation)
  • 6. CREATE AN S3 BUCKET (SCREENSHOT)
  • 7. CREATE EVENT IMAGES Set up directories in the image bucket, for example /mouse, to organize events by categories, and create 1x1 pixel images (see previous post) for all the events that you defined in the first step, e.g. click.png, login.png, error.png. Don’t worry about event parameters at the moment, we will deal with them shortly. All files uploaded to S3 are set as private, so make sure to change the file permissions to public. You may use tools such as CloudBerry Explorer or S3 Browser to do so and much more.
  • 8. CREATE EVENT IMAGES CONT. Set HTTP headers for all the images so that they will be cached by CloudFront, thus saving GET requests from CloudFront edge locations to S3. Go to the relevant bucket, check the image files on the left, click Actions at the top, choose Properties, and open the Metadata section. Add the following metadata line and click save: ▪ Cache-Control: max-age=31536000
  • 9. CREATE EVENT IMAGES (SCREENSHOT)
  • 10. CREATE A CLOUDFRONT DISTRIBUTION Creating a CloudFront distribution costs extra, but it’s mandatory - it logs the query string, adds extra log info such as edge locations, and helps to deliver files via Amazon’s CDN to shorten load times. Access the CloudFront dashboard and create a web distribution for the image S3 bucket. Make sure that Use Origin Cache Headers is set under Object Caching (it’s the default setting).
  • 11. CREATE A CLOUDFRONT DISTRIBUTION CONT. Note that the distribution gets a random domain name. It could take a while before it starts working because the DNS servers need to be updated to support it. You can also set a more friendly domain using the Alternate Domain Names (CNAMEs) option under Distribution Settings, though it requires configuring your DNS settings so that your domain points to CloudFront’s domain name. See Amazon’s documentation for more info.
  • 12. CREATE A CLOUDFRONT DISTRIBUTION (SCREENSHOT 1)
  • 13. CREATE A CLOUDFRONT DISTRIBUTION (SCREENSHOT 2)
  • 14. TURN LOGGING ON Still in the CloudFront dashboard, check the distribution on the left, click Distribution Settings at the top, click Edit under the General tab, enable logging, and insert the bucket where you want to store the logs.
  • 15. TURN LOGGING ON (SCREENSHOT 1)
  • 16. TURN LOGGING ON (SCREENSHOT 2)
  • 17. CODE A FUNCTION TO CALL EVENTS Time to get your hands dirty and write a method that registers events, or call one of your app’s developers to do it for you. The code could be on the client side, server side, or both depending on the architecture. The method should simply send an asynchronous HTTP GET request to the relevant image URL, e.g. to http://logs.xplenty.com/mouse/click.png (links in this format for demo purposes only, not operational). If you need to send additional event parameters, use the query string (don’t forget URL encoding), e.g. http://logs.xplenty.com/mouse/click.png?id=login&url=http%3A%2F%2Fw ww.example.com%2Flogin
  • 18. EXAMPLE CODE TO CALL EVENTS $.CloudFrontLog = function (attr) { var url = 'http://logs.xplenty.com/' + attr.category + '/' + attr.action + '.png', data = { id: attr.id, url: attr.url }; return $.get(url, data); };
  • 19. CALL THE EVENTS Dig through your app’s code and add event calls using the method that you’ve just written. This will collect the data that you defined in step 1. Here’s a jQuery code sample for logging client-side button clicks: $('.btn').click(function(e) { var id = $(this).attr('id'); $.CloudFrontLog({ action: 'click', category: 'mouse', id: id, url: location.href }); });
  • 20. TEST Use your staging environment to call events via the application and check that the logs are generated accordingly. Patience young padawan, it may take an hour or so until Amazon writes them.
  • 21. GO LIVE! Everything should be ready for you to collect big data like a champ - update the production environment and let the logging begin. Don't know what to do with the data? See how to analyze AWS logs in 15 minutes.