build a modern api with aws
play

Build a Modern API with AWS Nathaniel Beckstead 2 S3 API Gateway - PowerPoint PPT Presentation

Build a Modern API with AWS Nathaniel Beckstead 2 S3 API Gateway Lambda Dynamo DB scriptingis.life/glimpseid 3 $whoami Nathaniel Beckstead C L O U D D E V O P S C Y B E R scriptingis.life 4 Background Interned in KeyBank


  1. Build a Modern API with AWS Nathaniel Beckstead

  2. 2 S3 API Gateway Lambda Dynamo DB scriptingis.life/glimpseid

  3. 3 $whoami Nathaniel Beckstead ▫ C L O U D ▫ D E V O P S ▫ C Y B E R scriptingis.life

  4. 4 Background ▫ Interned in KeyBank SOC ▫ Automated parts of phishing response ▫ URLScan.io - Screenshot - HTTP Requests - IPs/ASNs contacted

  5. 5 Background

  6. 6

  7. 7

  8. 8 HTTP Info ▫ Runs in a Docker container ▫ Selenium - Drive the browser - Screenshot ▫ Browsermob Proxy - Record HTTP requests and responses - Export to CSV

  9. 9 HTTP Info

  10. 10 Selenium ▫ Web browser automation primarily designed for testing ▫ Render a page and interact with elements

  11. 11 S3 API Gateway Lambda Dynamo DB

  12. Lambda Serverless Computing

  13. 13 Lambda ▫ Serverless Computing ▫ Only charged for execution time and resources used ▫ Run when triggered by - AWS IoT - DynamoDB, S3 - API Gateway - Time

  14. 14 Limitations ▫ Need to include all resources in upload - ZIP - 50MB - S3 - 250MB ▫ Small compute power - 128MB - 3GB memory - CPU power scales with memory limit ▫ No root access - Limited OS privileges

  15. 15 Lambda Cost ▫ 1,000,000 requests free ▫ 400,000 GB-seconds of compute resources free ▫ 800,000 seconds of runtime with 512MB memory - ~40,000 20-second scans

  16. 16 Lambda ▫ Python script with Selenium driving Chromium 1. Load webpage 2. Screenshot 3. Upload image to S3 21Buttons/pychromeless

  17. 17 Lambda ▫ Python script with Selenium driving Chromium 21Buttons/pychromeless

  18. 18

  19. 19 Lambda ▫ Lambda invokes a function in your code ▫ Parameters passed as a dictionary

  20. 20 Lambda Deployment ▫ Makefile ▫ AWS CLI

  21. Storage Simple Storage Service (S3) and DynamoDB

  22. 22 S3 ▫ Key-Value Storage ▫ Host publicly accessible images ▫ Uploading done through boto Python module

  23. 23 S3 Cost Storage ▫ - First 50TB - $0.023 per GB Access ▫ - PUT - Data added $0.002 per GB - $0.005 per 1,000 requests - GET - Data returned $0.0007 per GB - $0.0004 per 1,000 requests

  24. 24 DynamoDB NoSQL Database ▫ - No set structure = No normalizing! No setup, maintenance, or clustering ▫ Cost ▫ - $0.25 per GB of storage - $1.25 per million writes - $0.25 per million reads - Free Tier - 25GB storage, 2.5 million reads, 1GB data transfer out

  25. API Gateway REST API Development and Management

  26. 26 API Gateway ▫ Visual API development ▫ Proxy for other AWS services - DynamoDB queries ▫ Convert between HTTP requests and Lambda execution

  27. 27 API Gateway

  28. 28 API Gateway Cost ▫ $3.50 per million API calls ▫ Caching - 0.5GB for $0.020 per hour - $15 per month

  29. Website Frontend is hard :(

  30. 30 Github Pages ▫ Host a static site for free 1. Make a new repository 2. Add an index.html 3. Settings -> GitHub Pages -> master branch 4. Struggle with CSS 5. Profit

  31. Conclusions

  32. 32 Why Use The Cloud? Easy ▫ - Heavy lifting done by AWS - Graphical interfaces for everything - Logging and dashboards built in Cheap ▫ - Free tiers - Charge by the millions Scalable ▫ - Duplicate and automate

  33. 33 Easy

  34. 34 Dashboards

  35. 35 Cheap

  36. 36 Next Up Continuous Integration ▫ Network Activity Logging ▫ Support Multiple Regions, User-Agents ▫ ... ▫

  37. 37 Questions? scriptingis.life/glimpseid

  38. 38 Resources Boto 3 Documentation ▫ - Dynamo DB - S3 AWS Blog - Project Ideas! ▫ Open Guide to AWS ▫ Using Python on Lambda ▫ More on urlscan.io ▫ /r/aws ▫

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend