├── .github
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── CHANGELOG.rst
├── CHECKLIST.md
├── CONTRIBUTING.md
├── CREDITS.md
├── LICENSE.md
├── README.md
├── awesome
├── __init__.py
├── awesome.py
├── awesome_cli.py
└── lib
│ ├── __init__.py
│ └── github.py
├── codecov.yml
├── requirements-dev.txt
├── scripts
├── create_changelog.sh
├── create_readme_rst.sh
├── run_code_checks.sh
├── set_changelog_as_readme.sh
├── set_changelog_as_readme_undo.sh
├── update_docs.sh
└── upload_pypi.sh
├── setup.cfg
├── setup.py
├── tests
├── __init__.py
├── data
│ ├── README.md
│ ├── README_RESULT.md
│ ├── __init__.py
│ └── readme_expected.py
├── mock_github.py
├── run_tests.py
├── test_awesome.py
├── test_awesome_cli.py
└── test_cli.py
└── tox.ini
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Review the Contributing Guidelines
2 |
3 | Before submitting a pull request, verify it meets all requirements in the [Contributing Guidelines](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md).
4 |
5 | ## Describe Why This Is Awesome
6 |
7 | Why is this awesome?
8 |
9 | --
10 |
11 | Like this pull request? Vote for it by adding a :+1:
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.py[cod]
2 |
3 | # C extensions
4 | *.so
5 |
6 | # Packages
7 | *.egg
8 | *.egg-info
9 | dist
10 | eggs
11 | parts
12 | bin
13 | var
14 | sdist
15 | develop-eggs
16 | .installed.cfg
17 | lib64
18 | __pycache__
19 |
20 | # Installer logs
21 | pip-log.txt
22 |
23 | # Unit test / coverage reports
24 | .coverage
25 | .tox
26 | nosetests.xml
27 |
28 | # Translations
29 | *.mo
30 |
31 | # Sphinx documentation
32 | docs/build/
33 |
34 | # Mr Developer
35 | .mr.developer.cfg
36 | .project
37 | .pydevproject
38 |
39 | .idea/
40 | *.pyc
41 | *.egg-info/
42 | *env/
43 | .tox/
44 | dist/
45 | .DS_Store
46 |
47 | scratch/
48 | CHANGELOG_DRAFT
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 | env:
3 | - TOXENV=py36
4 | os:
5 | - linux
6 | install:
7 | - travis_retry pip install tox
8 | - pip install codecov
9 | script:
10 | - tox
11 | after_success:
12 | - codecov
13 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | # Awesome AWS [](https://github.com/sindresorhus/awesome)
8 |
9 | A curated list of awesome AWS libraries, open source repos, guides, blogs, and other resources.
10 |
11 | Inspired by the [awesome](https://github.com/sindresorhus/awesome) list.
12 |
13 | ## The Fiery Meter of AWSome
14 |
15 | * Repo with 0100+ Stars: :fire:
16 | * Repo with 0200+ Stars: :fire::fire:
17 | * Repo with 0500+ Stars: :fire::fire::fire:
18 | * Repo with 1000+ Stars: :fire::fire::fire::fire:
19 | * Repo with 2000+ Stars: :fire::fire::fire::fire::fire:
20 |
21 | Repos not on `The Fiery Meter of AWSome` can still be awesome, see [A Note on Repo AWSomeness](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md#a-note-on-repo-awsomeness).
22 |
23 | ### `awesome-aws` Python Module
24 |
25 | [](https://travis-ci.org/donnemartin/awesome-aws) [](https://codecov.io/github/donnemartin/saws/awesome-aws) [](http://badge.fury.io/py/awesome-aws)
26 |
27 | The Python module [`awesome-aws`](https://github.com/donnemartin/awesome-aws/tree/master/awesome) regularly scans repos on [Awesome AWS](https://github.com/donnemartin/awesome-aws) to maintain the accuracy of the `Fiery Meter of AWSome`.
28 |
29 | ## Contributing
30 |
31 | Contributions are welcome!
32 |
33 | Check out the [Contributing Guidelines](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md).
34 |
35 | ## Index
36 |
37 | * [SDKs and Samples](#sdks-and-samples)
38 | * [Android](#android-sdk)
39 | * [C++](#c-sdk)
40 | * [Clojure](#clojure-sdk)
41 | * [Go](#go-sdk)
42 | * [iOS](#ios-sdk)
43 | * [IoT](#iot-sdk)
44 | * [Java](#java-sdk)
45 | * [JavaScript](#javascript-sdk)
46 | * [Haskell](#haskell-sdk)
47 | * [OCaml](#ocaml-sdk)
48 | * [Perl](#perl-sdk)
49 | * [PHP](#php-sdk)
50 | * [Python](#python-sdk)
51 | * [Ruby](#ruby-sdk)
52 | * [Scala](#scala-sdk)
53 | * [Xamarin](#xamarin-sdk)
54 | * [Unity](#unity-sdk)
55 | * [.NET](#net-sdk)
56 | * [Command Line Tools](#command-line-tools)
57 | * [Universal Command Line Interface](#universal-command-line-interface)
58 | * [Windows PowerShell](#windows-powershell)
59 | * [IDE Toolkits](#ide-toolkits)
60 | * [Eclipse Toolkit](#eclipse-toolkit)
61 | * [Visual Studio Toolkit](#visual-studio-toolkit)
62 | * [Open Source Repos](#open-source-repos)
63 | * [API Gateway](#api-gateway)
64 | * [AppStream](#appstream)
65 | * [CLI](#cli)
66 | * [CloudFormation](#cloudformation)
67 | * [CloudSearch](#cloudsearch)
68 | * [CloudTrail](#cloudtrail)
69 | * [CloudWatch](#cloudwatch)
70 | * [Code Deploy](#code-deploy)
71 | * [Code Pipeline](#code-pipeline)
72 | * [Cognito](#cognito)
73 | * [Data Pipeline](#data-pipeline)
74 | * [Device Farm](#device-farm)
75 | * [DynamoDB](#dynamodb)
76 | * [Elastic Beanstalk](#elastic-beanstalk)
77 | * [Elastic Container Service](#elastic-container-service)
78 | * [Elastic File System](#elastic-file-system)
79 | * [Elastic MapReduce](#elastic-mapreduce)
80 | * [Elastic Search](#elastic-search)
81 | * [Elasticache](#elasticache)
82 | * [Glacier](#glacier)
83 | * [Kinesis](#kinesis)
84 | * [Lambda](#lambda)
85 | * [Machine Learning](#machine-learning)
86 | * [Mobile Analytics](#mobile-analytics)
87 | * [OpsWorks](#opsworks)
88 | * [Redshift](#redshift)
89 | * [Route 53](#route-53)
90 | * [S3](#s3)
91 | * [SNS](#sns)
92 | * [SQS](#sqs)
93 | * [Data](#data)
94 | * [DevOps](#devops)
95 | * [Security](#security)
96 | * [Accompanying](#accompanying-repos)
97 | * [Miscellaneous](#miscellaneous-repos)
98 | * [Guides, Books, Documentation, and Training](#guides-books-documentation-and-training)
99 | * [Getting Started Guides](#getting-started-guides)
100 | * [General Guides](#general-guides)
101 | * [Books](#books)
102 | * [Whitepapers](#whitepapers)
103 | * [Documentation](#documentation)
104 | * [Training](#training)
105 | * [Case Studies: Powered by AWS](#case-studies-powered-by-aws)
106 | * [Social](#social)
107 | * [Blogs](#blogs)
108 | * [Twitter Influencers](#twitter-influencers)
109 | * [Facebook Pages](#facebook-pages)
110 | * [YouTube Channels](#youtube-channels)
111 | * [LinkedIn Groups](#linkedin-groups)
112 | * [Subreddits](#subreddits)
113 | * [Conferences](#conferences)
114 | * [Latest KPIs and Stats](#latest-kpis-and-stats)
115 | * [Appendix of Core Services](#appendix-of-core-services)
116 | * [Services in Plain English](#services-in-plain-english)
117 | * [Compute](#compute-services)
118 | * [Networking](#networking-services)
119 | * [Enterprise Applications](#enterprise-applications)
120 | * [Analytics](#analytics-services)
121 | * [Management Tools](#management-tools)
122 | * [Security and Identity](#security-and-identity-services)
123 | * [Internet of Things](#internet-of-things-service)
124 | * [Mobile Services](#mobile-services)
125 | * [Storage and Content Delivery](#storage-and-content-delivery-services)
126 | * [Databases](#databases)
127 | * [Application Services](#application-services)
128 | * [Developer Tools](#developer-tools)
129 | * [Miscellaneous Services](#miscellaneous-services)
130 | * [Contributing](#contributing)
131 | * [Credits](#credits)
132 | * [Other Awesome Lists](#other-awesome-lists)
133 | * [Contact Info](#contact-info)
134 | * [License](#license)
135 |
136 | Changelog
137 | =========
138 |
139 | 0.1.0 (2015-12-21)
140 | ------------------
141 |
142 | - Initial release.
143 |
--------------------------------------------------------------------------------
/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | .. raw:: html
2 |
3 |
4 |
5 | .. raw:: html
6 |
7 |
8 |
9 | Awesome AWS |Awesome|
10 | =====================
11 |
12 | A curated list of awesome AWS libraries, open source repos, guides,
13 | blogs, and other resources.
14 |
15 | Inspired by the `awesome `__
16 | list.
17 |
18 | The Fiery Meter of AWSome
19 | -------------------------
20 |
21 | - Repo with 0100+ Stars: :fire:
22 | - Repo with 0200+ Stars: :fire::fire:
23 | - Repo with 0500+ Stars: :fire::fire::fire:
24 | - Repo with 1000+ Stars: :fire::fire::fire::fire:
25 | - Repo with 2000+ Stars: :fire::fire::fire::fire::fire:
26 |
27 | Repos not on ``The Fiery Meter of AWSome`` can still be awesome, see `A
28 | Note on Repo
29 | AWSomeness `__.
30 |
31 | ``awesome-aws`` Python Module
32 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 |
34 | |Build Status| |Codecov| |PyPI version|
35 |
36 | The Python module
37 | ```awesome-aws`` `__
38 | regularly scans repos on `Awesome
39 | AWS `__ to maintain the
40 | accuracy of the ``Fiery Meter of AWSome``.
41 |
42 | Contributing
43 | ------------
44 |
45 | Contributions are welcome!
46 |
47 | Check out the `Contributing
48 | Guidelines `__.
49 |
50 | Index
51 | -----
52 |
53 | - `SDKs and Samples <#sdks-and-samples>`__
54 |
55 | - `Android <#android-sdk>`__
56 | - `C++ <#c-sdk>`__
57 | - `Clojure <#clojure-sdk>`__
58 | - `Go <#go-sdk>`__
59 | - `iOS <#ios-sdk>`__
60 | - `IoT <#iot-sdk>`__
61 | - `Java <#java-sdk>`__
62 | - `JavaScript <#javascript-sdk>`__
63 | - `Haskell <#haskell-sdk>`__
64 | - `OCaml <#ocaml-sdk>`__
65 | - `Perl <#perl-sdk>`__
66 | - `PHP <#php-sdk>`__
67 | - `Python <#python-sdk>`__
68 | - `Ruby <#ruby-sdk>`__
69 | - `Scala <#scala-sdk>`__
70 | - `Xamarin <#xamarin-sdk>`__
71 | - `Unity <#unity-sdk>`__
72 | - `.NET <#net-sdk>`__
73 |
74 | - `Command Line Tools <#command-line-tools>`__
75 |
76 | - `Universal Command Line
77 | Interface <#universal-command-line-interface>`__
78 | - `Windows PowerShell <#windows-powershell>`__
79 |
80 | - `IDE Toolkits <#ide-toolkits>`__
81 |
82 | - `Eclipse Toolkit <#eclipse-toolkit>`__
83 | - `Visual Studio Toolkit <#visual-studio-toolkit>`__
84 |
85 | - `Open Source Repos <#open-source-repos>`__
86 |
87 | - `API Gateway <#api-gateway>`__
88 | - `AppStream <#appstream>`__
89 | - `CLI <#cli>`__
90 | - `CloudFormation <#cloudformation>`__
91 | - `CloudSearch <#cloudsearch>`__
92 | - `CloudTrail <#cloudtrail>`__
93 | - `CloudWatch <#cloudwatch>`__
94 | - `Code Deploy <#code-deploy>`__
95 | - `Code Pipeline <#code-pipeline>`__
96 | - `Cognito <#cognito>`__
97 | - `Data Pipeline <#data-pipeline>`__
98 | - `Device Farm <#device-farm>`__
99 | - `DynamoDB <#dynamodb>`__
100 | - `Elastic Beanstalk <#elastic-beanstalk>`__
101 | - `Elastic Container Service <#elastic-container-service>`__
102 | - `Elastic File System <#elastic-file-system>`__
103 | - `Elastic MapReduce <#elastic-mapreduce>`__
104 | - `Elastic Search <#elastic-search>`__
105 | - `Elasticache <#elasticache>`__
106 | - `Glacier <#glacier>`__
107 | - `Kinesis <#kinesis>`__
108 | - `Lambda <#lambda>`__
109 | - `Machine Learning <#machine-learning>`__
110 | - `Mobile Analytics <#mobile-analytics>`__
111 | - `OpsWorks <#opsworks>`__
112 | - `Redshift <#redshift>`__
113 | - `Route 53 <#route-53>`__
114 | - `S3 <#s3>`__
115 | - `SNS <#sns>`__
116 | - `SQS <#sqs>`__
117 | - `Data <#data>`__
118 | - `DevOps <#devops>`__
119 | - `Security <#security>`__
120 | - `Accompanying <#accompanying-repos>`__
121 | - `Miscellaneous <#miscellaneous-repos>`__
122 |
123 | - `Guides, Books, Documentation, and
124 | Training <#guides-books-documentation-and-training>`__
125 |
126 | - `Getting Started Guides <#getting-started-guides>`__
127 | - `General Guides <#general-guides>`__
128 | - `Books <#books>`__
129 | - `Whitepapers <#whitepapers>`__
130 | - `Documentation <#documentation>`__
131 | - `Training <#training>`__
132 | - `Case Studies: Powered by AWS <#case-studies-powered-by-aws>`__
133 |
134 | - `Social <#social>`__
135 |
136 | - `Blogs <#blogs>`__
137 | - `Twitter Influencers <#twitter-influencers>`__
138 | - `Facebook Pages <#facebook-pages>`__
139 | - `YouTube Channels <#youtube-channels>`__
140 | - `LinkedIn Groups <#linkedin-groups>`__
141 | - `Subreddits <#subreddits>`__
142 | - `Conferences <#conferences>`__
143 |
144 | - `Latest KPIs and Stats <#latest-kpis-and-stats>`__
145 | - `Appendix of Core Services <#appendix-of-core-services>`__
146 |
147 | - `Services in Plain English <#services-in-plain-english>`__
148 | - `Compute <#compute-services>`__
149 | - `Networking <#networking-services>`__
150 | - `Enterprise Applications <#enterprise-applications>`__
151 | - `Analytics <#analytics-services>`__
152 | - `Management Tools <#management-tools>`__
153 | - `Security and Identity <#security-and-identity-services>`__
154 | - `Internet of Things <#internet-of-things-service>`__
155 | - `Mobile Services <#mobile-services>`__
156 | - `Storage and Content
157 | Delivery <#storage-and-content-delivery-services>`__
158 | - `Databases <#databases>`__
159 | - `Application Services <#application-services>`__
160 | - `Developer Tools <#developer-tools>`__
161 | - `Miscellaneous Services <#miscellaneous-services>`__
162 |
163 | - `Contributing <#contributing>`__
164 | - `Credits <#credits>`__
165 | - `Other Awesome Lists <#other-awesome-lists>`__
166 | - `Contact Info <#contact-info>`__
167 | - `License <#license>`__
168 |
169 | Changelog
170 | =========
171 |
172 | 0.1.0 (2015-12-21)
173 | ------------------
174 |
175 | - Initial release.
176 |
177 | .. |Awesome| image:: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg
178 | :target: https://github.com/sindresorhus/awesome
179 | .. |Build Status| image:: https://travis-ci.org/donnemartin/awesome-aws.svg?branch=master
180 | :target: https://travis-ci.org/donnemartin/awesome-aws
181 | .. |Codecov| image:: https://img.shields.io/codecov/c/github/donnemartin/awesome-aws.svg
182 | :target: https://codecov.io/github/donnemartin/saws/awesome-aws
183 | .. |PyPI version| image:: https://badge.fury.io/py/awesome-aws.svg
184 | :target: http://badge.fury.io/py/awesome-aws
185 |
--------------------------------------------------------------------------------
/CHECKLIST.md:
--------------------------------------------------------------------------------
1 | Release Checklist
2 | =================
3 |
4 | A. Install in a new venv and run unit tests
5 |
6 | Note, you can't seem to script the virtualenv calls, see:
7 | https://bitbucket.org/dhellmann/virtualenvwrapper/issues/219/cant-deactivate-active-virtualenv-from
8 |
9 | $ deactivate
10 | $ rmvirtualenv awesome
11 | $ mkvirtualenv awesome
12 | $ pip install -e .
13 | $ pip install -r requirements-dev.txt
14 | $ rm -rf .tox && tox
15 |
16 | B. Run code checks
17 |
18 | $ scripts/run_code_checks.sh
19 |
20 | C. Run manual [smoke tests](#smoke-tests) on Mac, Ubuntu, Windows
21 |
22 | D. Update and review `README.rst` and `Sphinx` docs, then check awesome/docs/build/html/index.html
23 |
24 | $ scripts/update_docs.sh
25 |
26 | E. Push changes
27 |
28 | F. Review Travis, Codecov, and Gemnasium
29 |
30 | G. Start a new release branch
31 |
32 | $ git flow release start x.y.z
33 |
34 | H. Increment the version number in `awesome/__init__.py`
35 |
36 | I. Update and review `CHANGELOG.md`, then run:
37 |
38 | $ scripts/create_changelog.sh
39 |
40 | J. Commit the changes
41 |
42 | K. Finish the release branch
43 |
44 | $ git flow release finish 'x.y.z'
45 |
46 | L. Input a tag
47 |
48 | $ vx.y.z
49 |
50 | M. Push tagged release to develop and master
51 |
52 | N. Set CHANGELOG as `README.md`
53 |
54 | $ scripts/set_changelog_as_readme.sh
55 |
56 | O. Register package with PyPi
57 |
58 | $ python setup.py register -r pypi
59 |
60 | P. Upload to PyPi
61 |
62 | $ python setup.py sdist upload -r pypi
63 |
64 | Q. Upload Sphinx docs to PyPi
65 |
66 | $ python setup.py upload_sphinx
67 |
68 | R. Restore `README.md`
69 |
70 | $ scripts/set_changelog_as_readme_undo.sh
71 |
72 | S. Review newly released package from PyPi
73 |
74 | T. Release on GitHub: https://github.com/donnemartin/awesome/tags
75 |
76 | 1. Click "Add release notes" for latest release
77 | 2. Copy release notes from `CHANGELOG.md`
78 | 3. Click "Publish release"
79 |
80 | U. Install in a new venv and run manual [smoke tests](#smoke-tests).
81 |
82 | ## Smoke Tests
83 |
84 | Run the following on Python 2.7 and Python 3.4:
85 |
86 | * Create a new `virtualenv`
87 | * Pip install package into new `virtualenv`
88 | * Run package
89 | * Run targeted tests based on recent code changes
90 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing Guidelines
2 |
3 | Contributions are welcome!
4 |
5 | Please ensure your pull request adheres to the following guidelines.
6 |
7 | ## A Note on Repo AWSomeness
8 |
9 | Each repo listed meets at least one of the following requirements:
10 |
11 | * Community-authored repo with 100+ stars
12 | * Community-vouched repo with < 100 stars
13 | * Official repo from [aws](https://github.com/aws) or [awslabs](https://github.com/awslabs)
14 |
15 | 100+ stars for community repos is not a strict requirement, it only serves as a guideline for the initial compilation. If you can vouch for the awesomeness of a repo with < 100 stars and you can explain why it should be listed, please submit a pull request.
16 |
17 | Pull requests might be left open for a period of time to let the community chime in and vouch for it. An official repo from [aws](https://github.com/aws) or [awslabs](https://github.com/awslabs) can be removed if the community wishes. Check out the [awesome manifesto](https://github.com/sindresorhus/awesome/blob/master/awesome.md).
18 |
19 | ## Pull Requests
20 |
21 | * Search previous suggestions before making a new one, as yours may be a duplicate.
22 | * Add one link per pull request.
23 | * Add the link:
24 | * `[name](http://example.com/) - A short description ends with a period.`
25 | * Keep descriptions concise.
26 | * Maintain alphabetical ordering where applicable.
27 | * Add a section if needed.
28 | * Add the section description.
29 | * Add the section title to the [Index](https://github.com/donnemartin/awesome-aws#index).
30 | * You generally do not need to mention `AWS` or `Amazon Web Services` in the description as it's implied.
31 | * Check your spelling and grammar.
32 | * Remove any trailing whitespace.
33 | * Send a pull request with the reason why the addition is awesome.
34 | * Use the following format for your pull request title:
35 | * Add user/repo - Short repo description
36 |
37 | ## Updates to Existing Links or Sections
38 |
39 | * Improvements to the existing sections are welcome.
40 | * If you think a listed link is **not** awesome, feel free to submit an issue or pull request to begin the discussion.
41 |
42 | Thank you for your suggestions!
43 |
--------------------------------------------------------------------------------
/CREDITS.md:
--------------------------------------------------------------------------------
1 | # CREDITS
2 |
3 | ## Content
4 |
5 | * [Awesome Python](https://github.com/vinta/awesome-python) as the template used to create this repo.
6 | * [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Web_Services) for portions of the [Appendix of Core Services](#appendix-of-core-services).
7 |
8 | ## Images
9 |
10 | * [Repo Header](https://aws.amazon.com)
11 | * [SDK Header](https://conceptdraw.com/a3125c3/p1/preview/640/pict--aws-architecture-diagram-icons-design-elements-aws-sdks)
12 | * [CLI Header](http://arcanesanctum.net/wp-content/uploads/hasher/terminal.jpg)
13 | * [Eclipse IDE Header](http://help.eclipse.org/juno/topic/org.eclipse.platform.doc.user/whatsNew/images/icon.png)
14 | * [Visual Studio IDE Header](http://www.iconarchive.com/download/i98390/dakirby309/simply-styled/Microsoft-Visual-Studio.ico)
15 | * [GitHub Header](http://itjobsco.com/wp-content/themes/wpjobus/images/github_logo.png)
16 | * [Innovation at Scale Header](https://d1.awsstatic.com/Digital%20Marketing/House/2up/products/quicksight/ha_2up_quicksight.png)
17 | * [Guides Header](http://d1.awsstatic.com/asset-repository/generics/whitepaper/editorial_whitepaper_green.png)
18 | * [Social Header](https://twitter.com/awscloud)
19 | * [Appendix Header](https://console.aws.amazon.com/)
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | I am providing code and resources in this repository to you under an open source
2 | license. Because this is my personal repository, the license you receive to my
3 | code and resources is from me and not my employer (Facebook).
4 |
5 | Copyright 2017 Donne Martin
6 |
7 | Creative Commons Attribution 4.0 International License (CC BY 4.0)
8 |
9 | http://creativecommons.org/licenses/by/4.0/
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | # Awesome AWS [](https://github.com/sindresorhus/awesome)
8 |
9 | A curated list of awesome AWS libraries, open source repos, guides, blogs, and other resources.
10 |
11 | Inspired by the [awesome](https://github.com/sindresorhus/awesome) list.
12 |
13 | ## The Fiery Meter of AWSome
14 |
15 | * Repo with 0100+ Stars: :fire:
16 | * Repo with 0200+ Stars: :fire::fire:
17 | * Repo with 0500+ Stars: :fire::fire::fire:
18 | * Repo with 1000+ Stars: :fire::fire::fire::fire:
19 | * Repo with 2000+ Stars: :fire::fire::fire::fire::fire:
20 |
21 | Repos not on `The Fiery Meter of AWSome` can still be awesome, see [A Note on Repo AWSomeness](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md#a-note-on-repo-awsomeness).
22 |
23 | ### `awesome-aws` Python Module
24 |
25 | [](https://travis-ci.org/donnemartin/awesome-aws) [](https://codecov.io/github/donnemartin/awesome-aws) [](http://badge.fury.io/py/awesome-aws)
26 |
27 | The Python module [`awesome-aws`](https://github.com/donnemartin/awesome-aws/tree/master/awesome) regularly scans repos on [Awesome AWS](https://github.com/donnemartin/awesome-aws) to maintain the accuracy of the `Fiery Meter of AWSome`.
28 |
29 | ## Contributing
30 |
31 | Contributions are welcome!
32 |
33 | Review the [Contributing Guidelines](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md).
34 |
35 | Also check out the [Watch List](https://github.com/donnemartin/awesome-aws/issues/34).
36 |
37 | ## Index
38 |
39 | * [SDKs and Samples](#sdks-and-samples)
40 | * [Android](#android-sdk)
41 | * [C++](#c-sdk)
42 | * [Clojure](#clojure-sdk)
43 | * [Go](#go-sdk)
44 | * [iOS](#ios-sdk)
45 | * [IoT](#iot-sdk)
46 | * [Java](#java-sdk)
47 | * [JavaScript](#javascript-sdk)
48 | * [Haskell](#haskell-sdk)
49 | * [Perl](#perl-sdk)
50 | * [PHP](#php-sdk)
51 | * [Python](#python-sdk)
52 | * [Ruby](#ruby-sdk)
53 | * [Rust](#rust-sdk)
54 | * [Scala](#scala-sdk)
55 | * [Xamarin](#xamarin-sdk)
56 | * [Unity](#unity-sdk)
57 | * [.NET](#net-sdk)
58 | * [Command Line Tools](#command-line-tools)
59 | * [Universal Command Line Interface](#universal-command-line-interface)
60 | * [Windows PowerShell](#windows-powershell)
61 | * [IDE Toolkits](#ide-toolkits)
62 | * [Eclipse Toolkit](#eclipse-toolkit)
63 | * [Visual Studio Toolkit](#visual-studio-toolkit)
64 | * [Open Source Repos](#open-source-repos)
65 | * [API Gateway](#api-gateway)
66 | * [CLI](#cli)
67 | * [CloudFormation](#cloudformation)
68 | * [CloudSearch](#cloudsearch)
69 | * [CloudTrail](#cloudtrail)
70 | * [CloudWatch](#cloudwatch)
71 | * [Code Deploy](#code-deploy)
72 | * [Code Pipeline](#code-pipeline)
73 | * [Cognito](#cognito)
74 | * [Data Pipeline](#data-pipeline)
75 | * [Device Farm](#device-farm)
76 | * [DynamoDB](#dynamodb)
77 | * [Elastic Beanstalk](#elastic-beanstalk)
78 | * [Elastic Container Service](#elastic-container-service)
79 | * [Elastic File System](#elastic-file-system)
80 | * [Elastic MapReduce](#elastic-mapreduce)
81 | * [Elastic Search](#elastic-search)
82 | * [Elasticache](#elasticache)
83 | * [Glacier](#glacier)
84 | * [Kinesis](#kinesis)
85 | * [Lambda](#lambda)
86 | * [Machine Learning](#machine-learning)
87 | * [Mobile Analytics](#mobile-analytics)
88 | * [OpsWorks](#opsworks)
89 | * [Redshift](#redshift)
90 | * [Route 53](#route-53)
91 | * [S3](#s3)
92 | * [SNS](#sns)
93 | * [SQS](#sqs)
94 | * [Data](#data)
95 | * [DevOps](#devops)
96 | * [Security](#security)
97 | * [Accompanying](#accompanying-repos)
98 | * [Miscellaneous](#miscellaneous-repos)
99 | * [Guides, Books, Documentation, and Training](#guides-books-documentation-and-training)
100 | * [Getting Started Guides](#getting-started-guides)
101 | * [General Guides](#general-guides)
102 | * [Books](#books)
103 | * [Whitepapers](#whitepapers)
104 | * [Documentation](#documentation)
105 | * [Training](#training)
106 | * [Case Studies: Powered by AWS](#case-studies-powered-by-aws)
107 | * [Social](#social)
108 | * [Blogs](#blogs)
109 | * [Twitter Influencers](#twitter-influencers)
110 | * [Facebook Pages](#facebook-pages)
111 | * [YouTube Channels](#youtube-channels)
112 | * [LinkedIn Groups](#linkedin-groups)
113 | * [Subreddits](#subreddits)
114 | * [Conferences](#conferences)
115 | * [Latest KPIs and Stats](#latest-kpis-and-stats)
116 | * [Appendix of Core Services](#appendix-of-core-services)
117 | * [Services in Plain English](#services-in-plain-english)
118 | * [Compute](#compute-services)
119 | * [Networking](#networking-services)
120 | * [Enterprise Applications](#enterprise-applications)
121 | * [Analytics](#analytics-services)
122 | * [Artificial Intelligence](#artificial-intelligence)
123 | * [Management Tools](#management-tools)
124 | * [Security and Identity](#security-and-identity-services)
125 | * [Internet of Things](#internet-of-things-service)
126 | * [Mobile Services](#mobile-services)
127 | * [Storage and Content Delivery](#storage-and-content-delivery-services)
128 | * [Databases](#databases)
129 | * [Application Services](#application-services)
130 | * [Developer Tools](#developer-tools)
131 | * [Miscellaneous Services](#miscellaneous-services)
132 | * [Contributing](#contributing)
133 | * [Credits](#credits)
134 | * [Other Awesome Lists](#other-awesome-lists)
135 | * [Contact Info](#contact-info)
136 | * [License](#license)
137 |
138 | ## SDKs and Samples
139 |
140 | *AWS and community SDKs with samples and docs, grouped by language.*
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 | ### Android SDK
149 |
150 | * [Repo :fire::fire::fire:](https://github.com/aws/aws-sdk-android)
151 | * [Repo with Samples :fire::fire::fire:](https://github.com/awslabs/aws-sdk-android-samples)
152 | * [Install](http://sdk-for-android.amazonwebservices.com/latest/aws-android-sdk.zip)
153 | * [Docs](https://aws.amazon.com/documentation/sdk-for-android/)
154 | * [Learn More](https://aws.amazon.com/mobile/sdk/)
155 |
156 | ### C++ SDK
157 |
158 | * [Repo :fire::fire::fire::fire:](https://github.com/awslabs/aws-sdk-cpp)
159 | * [Blog with Samples](https://aws.amazon.com/blogs/aws/introducing-the-aws-sdk-for-c/)
160 |
161 | *The C++ SDK is a labs project with limited docs and/or samples.*
162 |
163 | ### Clojure SDK
164 |
165 | * [Repo :fire::fire::fire:](https://github.com/mcohen01/amazonica)
166 | * [Install](https://github.com/mcohen01/amazonica#installation)
167 | * [Docs](https://github.com/mcohen01/amazonica#documentation)
168 |
169 | *The Clojure SDK is a community project with limited docs and/or samples.*)
170 |
171 | ### Go SDK
172 |
173 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/aws/aws-sdk-go)
174 | * [Install](https://github.com/aws/aws-sdk-go/wiki)
175 | * [Docs](http://docs.aws.amazon.com/sdk-for-go/api/)
176 | * [Learn More](https://aws.amazon.com/sdk-for-go/)
177 |
178 | Related Repos:
179 |
180 | * [goamz/goamz :fire::fire:](https://github.com/goamz/goamz)
181 |
182 | ### iOS SDK
183 |
184 | * [Repo :fire::fire::fire::fire:](https://github.com/aws/aws-sdk-ios)
185 | * [Repo with Samples :fire::fire::fire::fire:](https://github.com/awslabs/aws-sdk-ios-samples)
186 | * [Install](http://sdk-for-ios.amazonwebservices.com/latest/aws-ios-sdk.zip)
187 | * [Docs](https://aws.amazon.com/documentation/sdk-for-ios/)
188 | * [Learn More](https://aws.amazon.com/mobile/sdk/)
189 |
190 | ### IoT SDK
191 |
192 | * [Repo for Arduino](https://github.com/awslabs/aws-sdk-arduino)
193 | * [Repo for C :fire::fire::fire:](https://github.com/aws/aws-iot-device-sdk-embedded-C)
194 | * [Repo for JavaScript :fire::fire::fire:](https://github.com/aws/aws-iot-device-sdk-js)
195 | * [Repo for Arduino Yun :fire:](https://github.com/aws/aws-iot-device-sdk-arduino-yun/)
196 | * [Docs](http://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html)
197 |
198 | *The IoT SDK is a labs project with limited docs and/or samples.*
199 |
200 | ### Java SDK
201 |
202 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/aws/aws-sdk-java)
203 | * [Repo with Samples :fire::fire:](https://github.com/awslabs/aws-java-sample)
204 | * [Install](http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip)
205 | * [Docs](https://aws.amazon.com/documentation/sdk-for-java/)
206 | * [Learn More](https://aws.amazon.com/sdk-for-java/)
207 |
208 | ### JavaScript SDK
209 |
210 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/aws/aws-sdk-js)
211 | * [Repo with Samples :fire::fire:](https://github.com/awslabs/aws-nodejs-sample)
212 | * [Install](http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-intro.html)
213 | * [Docs](https://aws.amazon.com/documentation/sdk-for-javascript/)
214 | * [Learn More](https://aws.amazon.com/sdk-for-node-js/)
215 |
216 | Related Repos:
217 |
218 | * [aws/aws-amplify :fire::fire::fire::fire::fire:](https://github.com/aws/aws-amplify)
219 | * [chilts/awssum :fire::fire:](https://github.com/chilts/awssum)
220 | * [mirkokiefer/aws-lib :fire::fire::fire:](https://github.com/mirkokiefer/aws-lib)
221 | * [SaltwaterC/aws2js :fire::fire:](https://github.com/SaltwaterC/aws2js)
222 |
223 | ### Haskell SDK
224 |
225 | * [Repo :fire::fire::fire:](https://github.com/brendanhay/amazonka)
226 | * [Docs](http://hackage.haskell.org/packages/#cat:AWS)
227 |
228 | Related Repos:
229 |
230 | * [aristidb/aws :fire::fire:](https://github.com/aristidb/aws)
231 |
232 | *The Haskell SDK is a community project with limited docs and/or samples.*
233 |
234 | ### Perl SDK
235 |
236 | * [Repo :fire:](https://github.com/pplu/aws-sdk-perl)
237 | * [Repo with Samples :fire:](https://github.com/pplu/aws-sdk-perl/tree/master/examples)
238 | * [Install](https://github.com/pplu/aws-sdk-perl#installation)
239 | * [Docs](https://metacpan.org/pod/Paws)
240 | * [Learn More](https://metacpan.org/pod/Paws)
241 |
242 | *The Perl SDK is a community project.*
243 |
244 | ### PHP SDK
245 |
246 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/aws/aws-sdk-php)
247 | * [Repo with Samples](https://github.com/awslabs/aws-php-sample)
248 | * [Install](http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html)
249 | * [Docs](https://aws.amazon.com/documentation/sdk-for-php/)
250 | * [Learn More](https://aws.amazon.com/sdk-for-php/)
251 |
252 | Related Repos:
253 |
254 | * [aws-sdk-php-laravel :fire::fire::fire::fire:](https://github.com/aws/aws-sdk-php-laravel)
255 | * [aws-sdk-php-silex](https://github.com/aws/aws-sdk-php-silex)
256 | * [aws-sdk-php-zf2 :fire:](https://github.com/aws/aws-sdk-php-zf2)
257 |
258 | ### Python SDK
259 |
260 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/boto/boto3)
261 | * [Repo with Samples :fire:](https://github.com/awslabs/aws-python-sample)
262 | * [Install](http://github.com/boto/boto#installation)
263 | * [Docs](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)
264 | * [Learn More](http://github.com/boto/boto/blob/develop/README.rst#boto)
265 |
266 | Related Repos:
267 |
268 | * [boto3 :fire::fire::fire::fire::fire:](https://github.com/boto/boto3)
269 | * [botocore :fire::fire::fire::fire:](https://github.com/boto/botocore)
270 |
271 | ### Ruby SDK
272 |
273 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/aws/aws-sdk-ruby)
274 | * [Repo with S3 Sample](https://github.com/awslabs/aws-ruby-sample)
275 | * [Install](http://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/setup-install.html)
276 | * [Docs](https://aws.amazon.com/documentation/sdk-for-ruby/)
277 | * [Samples :fire::fire::fire::fire::fire:](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/ruby/example_code/)
278 |
279 | Related Repos:
280 |
281 | * [aws-sdk-rails :fire::fire::fire:](https://github.com/aws/aws-sdk-rails)
282 | * [appoxy/aws :fire::fire:](https://github.com/appoxy/aws)
283 | * [rightscale/right_aws :fire::fire:](https://github.com/rightscale/right_aws)
284 |
285 | ### Rust SDK
286 |
287 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/rusoto/rusoto)
288 | * [Install](https://github.com/rusoto/rusoto#installation)
289 | * [Docs](https://docs.rs/rusoto_core/)
290 |
291 | *The Rust SDK is a community project with limited docs and/or samples.*
292 |
293 | ### Scala SDK
294 |
295 | * [Repo](https://github.com/awslabs/aws-scala-sdk)
296 |
297 | Related Repos:
298 |
299 | * [atlassian/aws-scala](https://bitbucket.org/atlassian/aws-scala)
300 | * [seratch/AWScala :fire::fire::fire:](https://github.com/seratch/AWScala)
301 |
302 | *The Scala SDK is a labs project with limited docs and/or samples.*
303 |
304 | ### Unity SDK
305 |
306 | * [Repo :fire:](https://github.com/aws/aws-sdk-unity)
307 | * [Repo with Samples :fire:](https://github.com/awslabs/aws-sdk-unity-samples)
308 | * [Install](https://s3.amazonaws.com/aws-unity-sdk/latest/aws-unity-sdk.zip)
309 | * [Docs](http://docs.aws.amazon.com/mobile/sdkforunity/developerguide/)
310 |
311 | ### Xamarin SDK
312 |
313 | * [Repo](https://github.com/awslabs/aws-sdk-xamarin)
314 | * [Blog with Samples](https://blog.xamarin.com/amazon-web-services-aws-mobile-sdks-for-xamarin-now-available/)
315 |
316 | *The Xamarin SDK is a labs project with limited docs and/or samples.*
317 |
318 | ### .NET SDK
319 |
320 | * [Repo :fire::fire::fire::fire:](https://github.com/aws/aws-sdk-net)
321 | * [Repo with Samples](https://github.com/awslabs/aws-auto-scaling-console-sample)
322 | * [Install](http://sdk-for-net.amazonwebservices.com/latest/AWSToolsAndSDKForNet.msi)
323 | * [Docs](https://aws.amazon.com/documentation/sdk-for-net/)
324 | * [Learn More](https://aws.amazon.com/sdk-for-net/)
325 | * [Samples :fire:](https://github.com/awslabs/aws-sdk-net-samples)
326 |
327 | ## Command Line Tools
328 |
329 | *AWS and community command line tools with samples and docs.*
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 | ### Universal Command Line Interface
338 |
339 | * [Repo :fire::fire::fire::fire::fire:](https://github.com/aws/aws-cli)
340 | * [Install](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)
341 | * [Docs](https://aws.amazon.com/documentation/cli/)
342 | * [Learn More](https://aws.amazon.com/cli/)
343 |
344 | Related Repos:
345 |
346 | * [awslabs/aws-shell :fire::fire::fire::fire::fire:](https://github.com/awslabs/aws-shell)
347 | * [donnemartin/saws :fire::fire::fire::fire::fire:](https://github.com/donnemartin/saws)
348 |
349 | ### Windows PowerShell
350 |
351 | * [Install](http://sdk-for-net.amazonwebservices.com/latest/AWSToolsAndSDKForNet.msi)
352 | * [Docs](https://aws.amazon.com/documentation/powershell/)
353 | * [Learn More](https://aws.amazon.com/powershell/)
354 |
355 | ## IDE Toolkits
356 |
357 | *Official IDE toolkits with samples and docs.*
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 | ### Eclipse Toolkit
366 |
367 | * [Install](http://docs.aws.amazon.com/AWSToolkitEclipse/latest/ug/tke_setup.html)
368 | * [Docs](https://aws.amazon.com/documentation/awstoolkiteclipse/)
369 | * [Learn More](https://aws.amazon.com/eclipse/)
370 |
371 | ### Visual Studio Toolkit
372 |
373 | * [Install](http://sdk-for-net.amazonwebservices.com/latest/AWSToolsAndSDKForNet.msi)
374 | * [Docs](https://aws.amazon.com/documentation/aws-toolkit-visual-studio/)
375 | * [Learn More](https://aws.amazon.com/visualstudio/)
376 |
377 | ## Open Source Repos
378 |
379 | *AWS and community open source projects, grouped by service. See [A Note on Repo AWSomeness](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md#a-note-on-repo-awsomeness) for more details.*
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 | ### API Gateway
388 |
389 | AWS Repos:
390 |
391 | * [api-gateway-secure-pet-store :fire::fire:](https://github.com/awslabs/api-gateway-secure-pet-store) - Cognito credentials through Lambda.
392 | * [aws-apigateway-sdk-java](https://github.com/awslabs/aws-apigateway-sdk-java) - SDK for Java.
393 | * [aws-apigateway-swagger-importer :fire::fire::fire:](https://github.com/awslabs/aws-apigateway-importer) - Tools to work with Swagger.
394 |
395 | Community Repos:
396 |
397 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
398 |
399 | ### CLI
400 |
401 | AWS Repos:
402 |
403 | * [awscli-aliases :fire::fire:](https://github.com/awslabs/awscli-aliases) - Repository for AWS CLI aliases.
404 | * [amazon-ecs-cli :fire::fire::fire::fire:](https://github.com/aws/amazon-ecs-cli) - ECS CLI using the same Docker Compose file format and familiar Compose commands.
405 | * [aws-cli :fire::fire::fire::fire::fire:](https://github.com/aws/aws-cli) - Universal Command Line Interface.
406 | * [aws-shell :fire::fire::fire::fire::fire:](https://github.com/awslabs/aws-shell)
407 | * [awscli-cookbook](https://github.com/awslabs/awscli-cookbook) - Installs the CLI tools and provides a set of LWRPs for use within chef cookbooks.
408 | * [awsmobile-cli :fire:](https://github.com/aws/awsmobile-cli) - CLI experience for Frontend developers in the JavaScript ecosystem.
409 |
410 | Community Repos:
411 |
412 | * [achiku/jungle :fire::fire::fire:](https://github.com/achiku/jungle) - Operations by EC2 and ELB cli should be simpler.
413 | * [dbcli/athenacli :fire:](https://github.com/dbcli/athenacli) - a CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.
414 | * [donnemartin/saws :fire::fire::fire::fire::fire:](https://github.com/donnemartin/saws) - A Supercharged AWS Command Line Interface.
415 | * [timkay/aws :fire::fire:](https://github.com/timkay/aws) - Easy command line access to Amazon EC2, S3, SQS, ELB, and SDB.
416 | * [wallix/awless :fire::fire::fire::fire::fire:](https://github.com/wallix/awless) - a Powerful CLI for EC2, IAM and S3 in Go.
417 | * [99designs/aws-vault :fire::fire::fire::fire::fire:](https://github.com/99designs/aws-vault) - A tool for securely storing AWS credentials, written in Go.
418 |
419 | ### CloudFormation
420 |
421 | AWS Repos:
422 |
423 | * [aws-cdk :fire::fire::fire::fire::fire:](https://github.com/aws/aws-cdk) - Framework for defining cloud infrastructure in code.
424 | * [aws-cfn-custom-resource-examples](https://github.com/awslabs/aws-cfn-custom-resource-examples) - Custom resource examples.
425 | * [aws-cfn-resource-bridge](https://github.com/aws/aws-cfn-resource-bridge) - Custom resource framework.
426 | * [cfn-python-lint :fire::fire::fire::fire::fire:](https://github.com/awslabs/cfn-python-lint) - A tool for linting/validating CloudFormation.
427 | * [cfncluster-cookbook](https://github.com/awslabs/cfncluster-cookbook) - Sample Cookbook.
428 | * [cfncluster :fire::fire::fire:](https://github.com/awslabs/cfncluster) - Framework that deploys and maintains HPC clusters.
429 |
430 | Community Repos:
431 |
432 | * [Appliscale/perun](https://github.com/Appliscale/perun) - A CLI tool for linting/validation and managing CloudFormation templates and stacks.
433 | * [bazaarvoice/cloudformation-ruby-dsl :fire::fire:](https://github.com/bazaarvoice/cloudformation-ruby-dsl) - Ruby DSL for creating templates.
434 | * [beaknit/cform :fire:](https://github.com/beaknit/cform) - SublimeText plugin.
435 | * [cloudreach/sceptre :fire::fire::fire::fire:](https://github.com/cloudreach/sceptre) - A CLI tool for automating CloudFormation.
436 | * [cloudtools/troposphere :fire::fire::fire::fire::fire:](https://github.com/cloudtools/troposphere) - Python library to create descriptions.
437 | * [peterkh/cumulus :fire::fire:](https://github.com/peterkh/cumulus) - Manages stacks.
438 | * [envato/stack_master :fire::fire:](https://github.com/envato/stack_master) - A CLI tool to manage CloudFormation stacks.
439 | * [sparkleformation/sfn](https://github.com/sparkleformation/sfn) - CLI for stack management.
440 | * [sparkleformation/sparkle_formation :fire::fire:](https://github.com/sparkleformation/sparkle_formation) - Ruby DSL for template creation.
441 | * [Stelligent/cfn_nag :fire::fire::fire::fire:](https://github.com/stelligent/cfn_nag) - Linting tool for CloudFormation templates
442 |
443 | ### CloudSearch
444 |
445 | AWS Repos:
446 |
447 | * [cloudsearchable](https://github.com/awslabs/cloudsearchable) - An ActiveRecord-style ORM query interface.
448 |
449 | Community Repos:
450 |
451 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
452 |
453 | ### CloudTrail
454 |
455 | AWS Repos:
456 |
457 | * [aws-cloudtrail-processing-library](https://github.com/aws/aws-cloudtrail-processing-library) - Easily consume and process log files.
458 |
459 | Community Repos:
460 |
461 | * [AppliedTrust/traildash :fire::fire:](https://github.com/AppliedTrust/traildash) - Slick dashboard.
462 | * [GorillaStack/auto-tag :fire::fire:](https://github.com/GorillaStack/auto-tag) - Automatically tag AWS resources on creation, for cost assignment.
463 |
464 | ### CloudWatch
465 |
466 | AWS Repos:
467 |
468 | * [cloudwatch-logs-subscription-consumer :fire::fire:](https://github.com/awslabs/cloudwatch-logs-subscription-consumer) - Kinesis stream reader.
469 | * [ecs-cloudwatch-logs](https://github.com/awslabs/ecs-cloudwatch-logs) - Assets in the blog post on using Amazon ECS and Amazon CloudWatch logs.
470 | * [logstash-output-cloudwatchlogs](https://github.com/awslabs/logstash-output-cloudwatchlogs) - A logstash plugin that sends logs to CloudWatch.
471 | * [opsworks-cloudwatch-logs-cookbooks](https://github.com/awslabs/opsworks-cloudwatch-logs-cookbooks) - OpsWorks sample cookbook.
472 |
473 | Community Repos:
474 |
475 | * [jorgebastida/awslogs :fire::fire::fire::fire::fire:](https://github.com/jorgebastida/awslogs) - Simple CLI for querying groups, streams and events.
476 | * [newrelic-platform/newrelic_aws_cloudwatch_plugin :fire:](https://github.com/newrelic-platform/newrelic_aws_cloudwatch_plugin) - New Relic plugin.
477 |
478 | ### Code Deploy
479 |
480 | AWS Repos:
481 |
482 | * [aws-codedeploy-agent :fire::fire:](https://github.com/aws/aws-codedeploy-agent) - Sample agent.
483 | * [aws-codedeploy-plugin :fire:](https://github.com/awslabs/aws-codedeploy-plugin) - Jenkins plugin.
484 | * [aws-codedeploy-samples :fire::fire::fire:](https://github.com/awslabs/aws-codedeploy-samples) - Samples and template scenarios.
485 |
486 | Community Repos:
487 |
488 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
489 |
490 | ### Code Pipeline
491 |
492 | AWS Repos:
493 |
494 | * [aws-codepipeline-custom-job-worker](https://github.com/awslabs/aws-codepipeline-custom-job-worker) - Develop your own job worker when creating a custom action.
495 | * [aws-codepipeline-jenkins-aws-codedeploy_linux](https://github.com/awslabs/aws-codepipeline-jenkins-aws-codedeploy_linux) - Four-stage pipeline for Linux.
496 | * [aws-codepipeline-plugin-for-jenkins](https://github.com/awslabs/aws-codepipeline-plugin-for-jenkins) - Jenkins plugin.
497 | * [aws-codepipeline-s3-aws-codedeploy_linux :fire:](https://github.com/awslabs/aws-codepipeline-s3-aws-codedeploy_linux) - Simple pipeline for Linux.
498 | * [AWSCodePipeline-Jenkins-AWSCodeDeploy_Windows](https://github.com/awslabs/AWSCodePipeline-Jenkins-AWSCodeDeploy_Windows) - Four-stage pipeline for Windows.
499 | * [AWSCodePipeline-S3-AWSCodeDeploy_Windows](https://github.com/awslabs/AWSCodePipeline-S3-AWSCodeDeploy_Windows) - Simple pipeline for Windows.
500 |
501 | Community Repos:
502 |
503 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
504 |
505 | ### Cognito
506 |
507 | AWS Repos:
508 |
509 | * [amazon-cognito-android](https://github.com/aws/amazon-cognito-android) - Sync SDK for Android.
510 | * [amazon-cognito-developer-authentication-sample](https://github.com/awslabs/amazon-cognito-developer-authentication-sample) - Authentication sample.
511 | * [amazon-cognito-dotnet](https://github.com/aws/amazon-cognito-dotnet) - Sync SDK for .NET.
512 | * [amazon-cognito-ios](https://github.com/aws/amazon-cognito-ios) - Sync SDK for iOS.
513 | * [amazon-cognito-js :fire::fire:](https://github.com/aws/amazon-cognito-js) - Sync SDK for JavaScript.
514 | * [amazon-cognito-streams-sample](https://github.com/awslabs/amazon-cognito-streams-sample) - Consuming Streams sample.
515 | * [cognito-sample-nodejs :fire:](https://github.com/awslabs/cognito-sample-nodejs) - Sample App for Node.js.
516 |
517 | Community Repos:
518 |
519 | * [capeless/warrant :fire::fire:](https://github.com/capless/warrant) - Python library for using Cognito.
520 | * [rahulpsd18/cognito-backup-restore :fire:](https://github.com/rahulpsd18/cognito-backup-restore) - Tool for backing up and restoring Cognito user pools.
521 |
522 | ### Data Pipeline
523 |
524 | AWS Repos:
525 |
526 | * [data-pipeline-samples :fire::fire:](https://github.com/awslabs/data-pipeline-samples) - Sample pipelines.
527 |
528 | Community Repos:
529 |
530 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
531 |
532 | ### Device Farm
533 |
534 | AWS Repos:
535 |
536 | * [aws-device-farm-appium-tests-for-sample-app](https://github.com/awslabs/aws-device-farm-appium-tests-for-sample-app) - Appium TestNG Android tests.
537 | * [aws-device-farm-calabash-tests-for-sample-app](https://github.com/awslabs/aws-device-farm-calabash-tests-for-sample-app) - Calabash Android tests.
538 | * [aws-device-farm-gradle-plugin](https://github.com/awslabs/aws-device-farm-gradle-plugin) - Gradle plugin.
539 | * [aws-device-farm-jenkins-plugin](https://github.com/awslabs/aws-device-farm-jenkins-plugin) - Jenkins plugin.
540 | * [aws-device-farm-sample-app-for-android :fire:](https://github.com/awslabs/aws-device-farm-sample-app-for-android) - Sample Android app.
541 |
542 | Community Repos:
543 |
544 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
545 |
546 | ### DynamoDB
547 |
548 | AWS Repos:
549 |
550 | * [aws-dotnet-session-provider](https://github.com/aws/aws-dotnet-session-provider) - A session state provider for ASP.NET apps.
551 | * [aws-dotnet-trace-listener](https://github.com/aws/aws-dotnet-trace-listener) - A trace listener for System.Diagnostics that can be used to log events.
552 | * [aws-dynamodb-encryption-java :fire:](https://github.com/awslabs/aws-dynamodb-encryption-java) - Encryption Client for Java.
553 | * [aws-dynamodb-examples :fire::fire:](https://github.com/awslabs/aws-dynamodb-examples) - Samples using the Java SDK.
554 | * [aws-dynamodb-mars-json-demo](https://github.com/awslabs/aws-dynamodb-mars-json-demo) - Stores and indexes NASA JPL Mars images.
555 | * [aws-dynamodb-session-tomcat](https://github.com/aws/aws-dynamodb-session-tomcat) - Session store for Apache Tomcat.
556 | * [aws-sessionstore-dynamodb-ruby](https://github.com/aws/aws-sessionstore-dynamodb-ruby) - Handles sessions for Ruby web apps.
557 | * [dynamodb-cross-region-library :fire::fire:](https://github.com/awslabs/dynamodb-cross-region-library) - Cross-region replication.
558 | * [dynamodb-geo :fire::fire:](https://github.com/awslabs/dynamodb-geo) - Library to create and query geospatial data.
559 | * [dynamodb-import-export-tool](https://github.com/awslabs/dynamodb-import-export-tool) - Import and export examples.
560 | * [dynamodb-online-index-violation-detector](https://github.com/awslabs/dynamodb-online-index-violation-detector) - Finds violations on an online GSI's hash key and range key.
561 | * [dynamodb-streams-kinesis-adapter](https://github.com/awslabs/dynamodb-streams-kinesis-adapter) - Kinesis interface to consume and process data from a DynamoDB stream.
562 | * [dynamodb-tictactoe-example-app](https://github.com/awslabs/dynamodb-tictactoe-example-app) - Lightweight python app.
563 | * [dynamodb-titan-storage-backend :fire::fire:](https://github.com/awslabs/dynamodb-titan-storage-backend) - Storage Backend for Titan.
564 | * [dynamodb-transactions :fire::fire:](https://github.com/awslabs/dynamodb-transactions) - Performs atomic writes and isolated reads across multiple items and tables.
565 | * [logstash-input-dynamodb :fire:](https://github.com/awslabs/logstash-input-dynamodb) - Logstash input plugin.
566 |
567 | Community Repos:
568 |
569 | * [channl/dynamodb-lambda-autoscale :fire::fire:](https://github.com/channl/dynamodb-lambda-autoscale) - Autoscale DynamoDB provisioned capacity using Lambda.
570 | * [lyft/confidant :fire::fire::fire::fire:](https://github.com/lyft/confidant) - Stores secrets, encrypted at rest.
571 | * [sebdah/dynamic-dynamodb :fire::fire::fire:](https://github.com/sebdah/dynamic-dynamodb) - Provides auto-scaling.
572 | * [sensedeep/dynamodb-onetable :fire::fire::fire:](https://github.com/sensedeep/dynamodb-onetable) - DynamoDB library for single table designs using NodeJS.
573 |
574 | ### Elastic Beanstalk
575 |
576 | AWS Repos:
577 |
578 | * [aws-eb-glassfish-dockerfiles](https://github.com/aws/aws-eb-glassfish-dockerfiles) - GlassFish docker files.
579 | * [aws-eb-python-dockerfiles](https://github.com/aws/aws-eb-python-dockerfiles) - Python docker files.
580 | * [eb-demo-php-simple-app :fire:](https://github.com/awslabs/eb-demo-php-simple-app) - Simple PHP app.
581 | * [eb-docker-multiple-ports](https://github.com/awslabs/eb-docker-multiple-ports) - Simple Node.js and Tomcat apps using Docker images.
582 | * [eb-docker-nginx-proxy :fire:](https://github.com/awslabs/eb-docker-nginx-proxy) - Simple PHP app using the PHP-FPM and Nginx Docker images.
583 | * [eb-docker-virtual-hosting](https://github.com/awslabs/eb-docker-virtual-hosting) - Simple PHP, Tomcat, and Nginx applications using Docker images.
584 | * [eb-node-express-sample :fire::fire:](https://github.com/awslabs/eb-node-express-sample) - Sample express app.
585 | * [eb-node-express-signup](https://github.com/awslabs/eb-node-express-signup) - Express framework and Bootstrap Node.js sample app.
586 | * [eb-node-express](https://github.com/awslabs/eb-node-express) - Sample app referenced in the Developer Guide.
587 | * [eb-py-flask-signup-worker](https://github.com/awslabs/eb-py-flask-signup-worker) - Python app that illustrates worker roles.
588 | * [eb-py-flask-signup :fire::fire:](https://github.com/awslabs/eb-py-flask-signup) - Python signup form app with Flask and Bootstrap.
589 | * [eb-python-flask](https://github.com/awslabs/eb-python-flask) - Simple Python and Flask app.
590 | * [eb-wif-sample](https://github.com/awslabs/eb-wif-sample) - Sample login app with Web Identity Federation.
591 |
592 | Community Repos:
593 |
594 | * [alienfast/elastic-beanstalk :fire:](https://github.com/alienfast/elastic-beanstalk) - Gem with rake configuration and deployment for rails apps.
595 | * [ThoughtWorksStudios/eb_deployer :fire::fire:](https://github.com/ThoughtWorksStudios/eb_deployer) - Blue-green deployment automation.
596 |
597 | ### Elastic Compute Cloud
598 |
599 | AWS Repos:
600 |
601 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
602 |
603 | Community Repos:
604 |
605 | * [alestic/ec2-consistent-snapshot :fire::fire:](https://github.com/alestic/ec2-consistent-snapshot) - Initiate consistent EBS snapshots in EC2.
606 | * [ConradIrwin/aws-name-server :fire::fire::fire:](https://github.com/ConradIrwin/aws-name-server) - DNS server that lets you look up instances by name.
607 | * [cristim/autospotting :fire::fire::fire::fire::fire:](https://github.com/autospotting/autospotting) - Automatically rolling-replace on-demand EC2 instances in AutoScaling groups with compatible spot instances.
608 | * [evannuil/aws-snapshot-tool :fire::fire:](https://github.com/evannuil/aws-snapshot-tool) - Automates EBS snapshots and rotation.
609 | * [kelseyhightower/kubernetes-the-hard-way :fire::fire::fire::fire::fire:](https://github.com/kelseyhightower/kubernetes-the-hard-way) - Bootstrap Kubernetes the hard way on EC2. No scripts.
610 | * [mirakui/ec2ssh :fire::fire:](https://github.com/mirakui/ec2ssh) - SSH config manager.
611 | * [openebs/openebs :fire::fire::fire::fire::fire:](https://github.com/openebs/openebs) - Containerized block storage QoS SLAs, tiering and replica policies across AZs and environments, and predictable and scalable performance.
612 | * [skavanagh/EC2Box :fire::fire:](https://github.com/skavanagh/EC2Box) - A web-based SSH console to manage multiple instances simultaneously.
613 | * [wbailey/claws :fire:](https://github.com/wbailey/claws) - CLI-driven console with capistrano integration.
614 |
615 | ### Elastic Container Service
616 |
617 | AWS Repos:
618 |
619 | * [amazon-ecs-agent :fire::fire::fire::fire:](https://github.com/aws/amazon-ecs-agent) - Agent that runs on and starts containers.
620 | * [amazon-ecs-amazon-efs](https://github.com/awslabs/amazon-ecs-amazon-efs) - Persists Data from containers.
621 | * [amazon-ecs-init :fire:](https://github.com/aws/amazon-ecs-init) - RPM developed to support the Amazon ECS Container Agent.
622 | * [blox :fire::fire::fire:](https://github.com/blox/blox) - Open source tools for building custom schedulers on ECS.
623 | * [ecs-blue-green-deployment :fire::fire:](https://github.com/awslabs/ecs-blue-green-deployment) - Blue-green deployment on ECS.
624 | * [ecs-cloudwatch-logs](https://github.com/awslabs/ecs-cloudwatch-logs) - Assets from the blog using Amazon ECS and Amazon CloudWatch logs.
625 | * [ecs-demo-php-simple-app :fire:](https://github.com/awslabs/ecs-demo-php-simple-app) - Simple PHP app.
626 | * [ecs-mesos-scheduler-driver :fire:](https://github.com/awslabs/ecs-mesos-scheduler-driver) - Integrates Apache Mesos.
627 | * [ecs-refarch-continuous-deployment :fire::fire::fire:](https://github.com/awslabs/ecs-refarch-continuous-deployment) - Reference Architecture for continuous deployment to ECS using CodePipeline.
628 | * [ecs-task-kite](https://github.com/awslabs/ecs-task-kite) - Simple ambassador container for inter-task communication.
629 | * [lambda-ecs-worker-pattern :fire::fire:](https://github.com/awslabs/lambda-ecs-worker-pattern) - Extends Lambda using SQS and ECS.
630 | * [py-flask-signup-docker](https://github.com/awslabs/py-flask-signup-docker) - Python sample app.
631 | * [service-discovery-ecs-consul :fire:](https://github.com/awslabs/service-discovery-ecs-consul) - Assets from the blog Service Discovery via Consul with Amazon ECS.
632 |
633 | Community Repos:
634 |
635 | * [Lumoslabs/broadside](https://github.com/lumoslabs/broadside) - Command line tool for deploying revisions of containerized applications.
636 | * [Stelligent/mu :fire::fire::fire:](https://github.com/stelligent/mu) - Command line tool to simplify ECS deployments via CodeBuild and CodePipeline.
637 |
638 | ### Elastic File System
639 |
640 | AWS Repos:
641 |
642 | * [amazon-ecs-amazon-efs](https://github.com/awslabs/amazon-ecs-amazon-efs) - Persist data from ECS.
643 |
644 | Community Repos:
645 |
646 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
647 |
648 | ### Elastic MapReduce
649 |
650 | AWS Repos:
651 |
652 | * [emr-bootstrap-actions :fire::fire::fire:](https://github.com/awslabs/emr-bootstrap-actions) - Sample bootstrap actions.
653 | * [emr-sample-apps](https://github.com/awslabs/emr-sample-apps) - Sample apps.
654 |
655 | Community Repos:
656 |
657 | * [Yelp/mrjob :fire::fire::fire::fire::fire:](https://github.com/Yelp/mrjob) - Run MapReduce jobs on Hadoop or EMR.
658 |
659 | ### Elastic Search
660 |
661 | AWS Repos:
662 |
663 | * [logstash-output-amazon_es :fire::fire:](https://github.com/awslabs/logstash-output-amazon_es) - Logstash output plugin to sign and export events.
664 | * [opsworks-elasticsearch-cookbook](https://github.com/awslabs/opsworks-elasticsearch-cookbook) - OpsWorks Elasticsearch sample cookbook.
665 |
666 | Community Repos:
667 |
668 | * [elastic/elasticsearch-cloud-aws :fire::fire::fire:](https://github.com/elastic/elasticsearch-cloud-aws) - Plugin for Elasticsearch.
669 |
670 | ### Elasticache
671 |
672 | AWS Repos:
673 |
674 | * [aws-elasticache-cluster-client-libmemcached](https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached) - Libmemcached library support.
675 | * [aws-elasticache-cluster-client-memcached-for-java](https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-java) - Client for Java.
676 | * [aws-elasticache-cluster-client-memcached-for-php](https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php) - Enhanced PHP library connecting to ElastiCache.
677 | * [elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net) - Config object for Enyim's MemcachedClient to enable auto discovery.
678 |
679 | Community Repos:
680 |
681 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
682 |
683 | ### Glacier
684 |
685 | Community Repos:
686 |
687 | * [vsespb/mt-aws-glacier :fire::fire::fire:](https://github.com/vsespb/mt-aws-glacier) - Perl Multithreaded Multipart sync to Glacier.
688 |
689 | ### Kinesis
690 |
691 | AWS Repos:
692 |
693 | * [amazon-kinesis-aggregators :fire:](https://github.com/awslabs/amazon-kinesis-aggregators) - Provides a simple way to create real time aggregations.
694 | * [amazon-kinesis-client-net](https://github.com/awslabs/amazon-kinesis-client-net) - Client Library for .NET.
695 | * [amazon-kinesis-client-nodejs :fire::fire:](https://github.com/awslabs/amazon-kinesis-client-nodejs) - Client Library for Node.js.
696 | * [amazon-kinesis-client-python :fire::fire:](https://github.com/awslabs/amazon-kinesis-client-python) - Client Library for Python.
697 | * [amazon-kinesis-client-ruby :fire:](https://github.com/awslabs/amazon-kinesis-client-ruby) - Client Library for Ruby.
698 | * [amazon-kinesis-client :fire::fire::fire:](https://github.com/awslabs/amazon-kinesis-client) Client library for Amazon Kinesis.
699 | * [amazon-kinesis-connectors :fire::fire:](https://github.com/awslabs/amazon-kinesis-connectors) - Libary to integrate with other AWS and non-AWS services.
700 | * [amazon-kinesis-data-visualization-sample :fire:](https://github.com/awslabs/amazon-kinesis-data-visualization-sample) - Sample data visualization app.
701 | * [amazon-kinesis-learning](https://github.com/awslabs/amazon-kinesis-learning) - Learning Kinesis Development.
702 | * [amazon-kinesis-producer :fire::fire:](https://github.com/awslabs/amazon-kinesis-producer) - Producer Library.
703 | * [amazon-kinesis-scaling-utils :fire::fire:](https://github.com/awslabs/amazon-kinesis-scaling-utils) - Provides the ability to scale streams.
704 | * [aws-fluent-plugin-kinesis :fire::fire:](https://github.com/awslabs/aws-fluent-plugin-kinesis) - Fluent Plugin.
705 | * [dynamodb-streams-kinesis-adapter](https://github.com/awslabs/dynamodb-streams-kinesis-adapter) - DynamoDB Streams Adapter.
706 | * [kinesis-log4j-appender](https://github.com/awslabs/kinesis-log4j-appender) - Log4J Appender.
707 | * [kinesis-poster-worker](https://github.com/awslabs/kinesis-poster-worker) - Simple multi-threaded Python Poster and Worker.
708 | * [kinesis-storm-spout :fire:](https://github.com/awslabs/kinesis-storm-spout) - Spout for Storm.
709 | * [mqtt-kinesis-bridge](https://github.com/awslabs/mqtt-kinesis-bridge) - Simple MQTT bridge in Python.
710 |
711 | Community Repos:
712 |
713 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
714 |
715 | ### Lambda
716 |
717 | AWS Repos:
718 |
719 | * [amazon-elasticsearch-lambda-samples :fire::fire:](https://github.com/awslabs/amazon-elasticsearch-lambda-samples) - Data ingestion for Elasticsearch from S3 and Kinesis.
720 | * [awslabs/aws-sam-local :fire::fire::fire::fire::fire:](https://github.com/awslabs/aws-sam-local) - CLI tool for local development and testing of Serverless applications.
721 | * [aws-lambda-go :fire::fire::fire::fire::fire:](https://github.com/aws/aws-lambda-go) - Libraries, samples and tools to help Go developers develop Lambda functions.
722 | * [aws-lambda-java-libs :fire::fire:](https://github.com/aws/aws-lambda-java-libs) - Official mirror for interface definitions and helper classes.
723 | * [aws-lambda-redshift-loader :fire::fire::fire:](https://github.com/awslabs/aws-lambda-redshift-loader) - Redshift loader.
724 | * [chalice :fire::fire::fire::fire::fire:](https://github.com/awslabs/chalice) - Python Serverless Microframework.
725 | * [create-thumbnails-lambda](https://github.com/awslabs/create-thumbnails-lambda) - Uses the grunt-aws-lambda plugin to help you develop and test.
726 | * [lambda-ecs-worker-pattern :fire::fire:](https://github.com/awslabs/lambda-ecs-worker-pattern) - Extends Lambda using SQS and ECS.
727 | * [lambda-refarch-fileprocessing :fire::fire:](https://github.com/awslabs/lambda-refarch-fileprocessing) - Reference Architecture for Real-time File Processing.
728 | * [lambda-refarch-iotbackend :fire::fire:](https://github.com/awslabs/lambda-refarch-iotbackend) - Reference Architecture for creating an IoT Backend.
729 | * [lambda-refarch-mobilebackend :fire::fire::fire:](https://github.com/awslabs/lambda-refarch-mobilebackend) - Reference Architecture for creating a Mobile Backend.
730 | * [lambda-refarch-webapp :fire::fire::fire::fire:](https://github.com/awslabs/lambda-refarch-webapp) - Reference Architecture for creating a Web Application.
731 |
732 | Community Repos:
733 |
734 | * [alestic/lambdash :fire::fire::fire:](https://github.com/alestic/lambdash) - Lambda shell - Run sh commands inside the Lambda environment.
735 | * [Alephbet/gimel :fire::fire:](https://github.com/Alephbet/gimel) - Run your own A/B testing backend using Lambda.
736 | * [apex/apex ](https://github.com/apex/apex) - Minimal AWS Lambda function manager with Go support.
737 | * [claudiajs/claudia :fire::fire::fire::fire::fire:](https://github.com/claudiajs/claudia) - Deploy Node.js projects to Lambda and API Gateway easily.
738 | * [cloudnative/lambda-chat :fire::fire:](https://github.com/cloudnative/lambda-chat) - A chat application without servers.
739 | * [danilop/LambdAuth :fire::fire::fire::fire:](https://github.com/danilop/LambdAuth) - Sample authentication service.
740 | * [eawsy/aws-lambda-go :fire::fire::fire:](https://github.com/eawsy/aws-lambda-go) - A fast and clean way to execute Go on Lambda.
741 | * [garnaat/kappa :fire::fire::fire:](https://github.com/garnaat/kappa) - Kappa is a CLI tool that makes it easier to deploy, update, and test functions for AWS Lambda.
742 | * [goadapp/goad :fire::fire::fire::fire:](https://github.com/goadapp/goad) - Lambda powered, highly distributed, load testing tool.
743 | * [graphcool/chromeless :fire::fire::fire::fire::fire:](https://github.com/graphcool/chromeless) - Automate Chrome through Lambda.
744 | * [grycap/scar :fire::fire::fire:](https://github.com/grycap/scar) - Transparently execute containers out of Docker images in AWS Lambda.
745 | * [jeremydaly/lambda-api :fire::fire::fire::fire:](https://github.com/jeremydaly/lambda-api) - Lightweight web framework for your serverless applications.
746 | * [jimpick/lambda-comments :fire::fire::fire:](https://github.com/jimpick/lambda-comments) - Blog commenting system built with Lambda.
747 | * [jorgebastida/gordon :fire::fire::fire::fire::fire:](https://github.com/jorgebastida/gordon) - λ Gordon is a tool to create, wire and deploy AWS Lambdas using CloudFormation.
748 | * [ks888/LambStatus :fire::fire::fire::fire:](https://github.com/ks888/LambStatus) - A status page system inspired by StatusPage.io, built on AWS Lambda.
749 | * [kubek2k/lambdoku :fire::fire::fire:](https://github.com/kubek2k/lambdoku) - Heroku-like experience when using Lambda.
750 | * [lambci/lambci :fire::fire::fire::fire::fire:](https://github.com/lambci/lambci) - A continuous integration system built on Lambda.
751 | * [littlstar/s3-lambda :fire::fire::fire::fire:](https://github.com/littlstar/s3-lambda) - Lambda functions over S3 objects with concurrency control (each, map, reduce, filter).
752 | * [mentum/lambdaws :fire::fire::fire::fire:](https://github.com/mentum/lambdaws) - Deploy, run and get results in a breeze.
753 | * [Miserlou/Zappa :fire::fire::fire::fire::fire:](https://github.com/Miserlou/Zappa) - Serverless WSGI Python Web Apps with AWS Lambda + API Gateway.
754 | * [nficano/python-lambda :fire::fire::fire::fire:](https://github.com/nficano/python-lambda) - A toolkit for developing and deploying serverless Python code in Lambda.
755 | * [serverless/serverless :fire::fire::fire::fire::fire:](https://github.com/serverless/serverless) The Serverless Application Framework (formerly JAWS).
756 | * [Tim-B/grunt-aws-lambda :fire::fire:](https://github.com/Tim-B/grunt-aws-lambda) - Grunt plugin.
757 | * [trek10inc/aws-lambda-debugger :fire::fire:](https://github.com/trek10inc/aws-lambda-debugger) - Remote debugging tool for Lambda functions running on Node 6.10
758 |
759 | ### Machine Learning
760 |
761 | AWS Repos:
762 |
763 | * [machine-learning-samples :fire::fire::fire:](https://github.com/awslabs/machine-learning-samples) - Sample apps.
764 |
765 | Community Repos:
766 |
767 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
768 |
769 | ### Mobile Analytics
770 |
771 | AWS Repos:
772 |
773 | * [aws-sdk-mobile-analytics-js](https://github.com/aws/aws-sdk-mobile-analytics-js) - JavaScript SDK.
774 |
775 | Community Repos:
776 |
777 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
778 |
779 | ### OpsWorks
780 |
781 | AWS Repos:
782 |
783 | * [opsworks-attribute-customization](https://github.com/awslabs/opsworks-attribute-customization) - Attribute customization example.
784 | * [opsworks-capistrano](https://github.com/awslabs/opsworks-capistrano) - Capistrano with instances.
785 | * [opsworks-cloudwatch-logs-cookbooks](https://github.com/awslabs/opsworks-cloudwatch-logs-cookbooks) - CloudWatch sample cookbook.
786 | * [opsworks-cookbooks :fire::fire::fire::fire:](https://github.com/aws/opsworks-cookbooks) - Chef Cookbooks.
787 | * [opsworks-demo-php-photo-share-app](https://github.com/awslabs/opsworks-demo-php-photo-share-app) - Simple PHP photo share app.
788 | * [opsworks-demo-php-simple-app](https://github.com/awslabs/opsworks-demo-php-simple-app) - Simple PHP app.
789 | * [opsworks-demo-rails-photo-share-app](https://github.com/awslabs/opsworks-demo-rails-photo-share-app) - A sample Rails app.
790 | * [opsworks-elasticsearch-cookbook](https://github.com/awslabs/opsworks-elasticsearch-cookbook) - Elasticsearch sample cookbook.
791 | * [opsworks-example-cookbooks :fire:](https://github.com/awslabs/opsworks-example-cookbooks) - Cookbooks used with the sample apps.
792 | * [opsworks-first-cookbook](https://github.com/awslabs/opsworks-first-cookbook) - Cookbook used to demonstrate simple recipes.
793 | * [opsworks-windows-demo-](https://github.com/awslabs/opsworks-windows-demo-nodejs) - A sample Node.JS app.
794 | * [opsworks-windows-demo-cookbooks](https://github.com/awslabs/opsworks-windows-demo-cookbooks) - Cookbooks for Windows.
795 | * [todo-sample-app-cookbooks](https://github.com/awslabs/todo-sample-app-cookbooks) - Custom cookbooks associated with the todo-sample-app.
796 |
797 | Community Repos:
798 |
799 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
800 |
801 | ### Redshift
802 |
803 | AWS Repos:
804 |
805 | * [aws-lambda-redshift-loader :fire::fire::fire:](https://github.com/awslabs/aws-lambda-redshift-loader) - Lambda database loader.
806 | * [amazon-redshift-utils :fire::fire::fire::fire::fire:](https://github.com/awslabs/amazon-redshift-utils) - Applies optimal Column Encoding to existing Tables.
807 |
808 | Community Repos:
809 |
810 | * [Lumoslabs/aleph](https://github.com/lumoslabs/aleph) - A full featured web application for writing and running Redshift
811 | queries. Supports revision tracking of queries and has basic visualization support.
812 | * [getredash/redash :fire::fire::fire::fire::fire:](https://github.com/getredash/redash/) - A web application that allows to easily query an existing database, share the dataset and visualize it in different ways. Initially was developed to work with Redshift, and has great support for it.
813 | * [everythingMe/redshift_console](https://github.com/EverythingMe/redshift_console) - A simple tool to monitor and manage a Redshift cluster. The first release has basic tools to monitor running queries, WLM queue and your tables/schemas.
814 |
815 | ### Route 53
816 |
817 | AWS Repos:
818 |
819 | * [route53-infima :fire::fire:](https://github.com/awslabs/route53-infima) - Manages service-level fault isolation.
820 |
821 | Community Repos:
822 |
823 | * [barnybug/cli53 :fire::fire::fire::fire:](https://github.com/barnybug/cli53) - cli53 is a command line tool for Amazon Route 53 which provides import and export from BIND format and simple command line management of Route 53 domains.
824 | * [winebarrel/roadworker :fire::fire:](https://github.com/winebarrel/roadworker) - Roadworker is a tool to manage Route53. It defines the state of Route53 using DSL, and updates Route53 according to DSL.
825 |
826 | ### S3
827 |
828 | Community Repos:
829 |
830 | * [anomalizer/ngx_aws_auth :fire::fire:](https://github.com/anomalizer/ngx_aws_auth) - Implements proxying of authenticated requests.
831 | * [bloomreach/s4cmd :fire::fire::fire::fire:](https://github.com/bloomreach/s4cmd) - S3 command line tool, faster than S3cmd for large files.
832 | * [CulturalMe/meteor-slingshot :fire::fire::fire:](https://github.com/CulturalMe/meteor-slingshot) - Upload files in meteor.
833 | * [danilop/yas3fs :fire::fire::fire:](https://github.com/danilop/yas3fs) - Yet Another S3-backed File System, inspired by s3fs.
834 | * [grippy/node-s3](https://github.com/grippy/node-s3) - Node.js app to manage buckets.
835 | * [jubos/fake-s3 :fire::fire::fire::fire::fire:](https://github.com/jubos/fake-s3) - Lightweight S3 clone that simulates most commands.
836 | * [kahing/goofys :fire::fire::fire::fire::fire:](https://github.com/kahing/goofys) - a Filey System for Amazon S3 written in Go.
837 | * [littlstar/s3renity :fire::fire::fire::fire:](https://github.com/littlstar/s3renity) - Batch functions with concurrency control (each, map, reduce, filter, join)
838 | * [marcel/aws-s3 :fire::fire::fire:](https://github.com/marcel/aws-s3) - Ruby implementation of Amazon's S3 REST API.
839 | * [mardix/flask-cloudy :fire::fire:](https://github.com/mardix/flask-cloudy) - Flask extension.
840 | * [MathieuLoutre/grunt-aws-s3 :fire::fire:](https://github.com/MathieuLoutre/grunt-aws-s3) - Grunt plugin.
841 | * [mickael-kerjean/filestash :fire::fire::fire::fire::fire:](https://github.com/mickael-kerjean/filestash) - A modern web client for S3.
842 | * [minio/mc :fire::fire::fire::fire::fire:](https://github.com/minio/mc) - Minio Client for filesystem and cloud storage.
843 | * [minio/minio :fire::fire::fire::fire::fire:](https://github.com/minio/minio) - Object storage server compatible with S3.
844 | * [mumrah/s3-multipart :fire:](https://github.com/mumrah/s3-multipart) - Parallel upload/download to S3 via Python.
845 | * [ncw/rclone :fire::fire::fire::fire::fire:](https://github.com/ncw/rclone) - Rsync for various cloud storage providers such as S3.
846 | * [owocki/s3_disk_util :fire:](https://github.com/owocki/s3_disk_util) - S3 Disk usage (du) utility.
847 | * [peak/s5cmd :fire::fire::fire:](https://github.com/peak/s5cmd) - Fast S3 and local filesystem execution tool with wildcard and batch command support.
848 | * [pgherveou/gulp-awspublish :fire::fire:](https://github.com/pgherveou/gulp-awspublish) - Gulp plugin.
849 | * [rlmcpherson/s3gof3r :fire::fire::fire::fire:](https://github.com/rlmcpherson/s3gof3r) - Fast, concurrent, streaming access, includes a CLI.
850 | * [s3git/s3git :fire::fire::fire::fire:](https://github.com/s3git/s3git) - CLI tool that allows you to create a distributed, decentralized and versioned repository.
851 | * [s3fs-fuse/s3fs-fuse :fire::fire::fire::fire::fire:](https://github.com/s3fs-fuse/s3fs-fuse) - Allows Linux and Mac OS X to mount an S3 bucket via FUSE.
852 | * [s3tools/s3cmd :fire::fire::fire::fire::fire:](https://github.com/s3tools/s3cmd) - CLI for managing S3 and CloudFront.
853 | * [schickling/git-s3 :fire::fire:](https://github.com/schickling/git-s3) - Deploy your git repo to a bucket.
854 | * [sorentwo/carrierwave-aws :fire::fire:](https://github.com/sorentwo/carrierwave-aws) - Adapter for CarrierWave.
855 | * [spring-projects/aws-maven :fire::fire:](https://github.com/spring-projects/aws-maven) - Maven Wagon for S3.
856 | * [tongwang/s3fs-c :fire:](https://github.com/tongwang/s3fs-c) - Mounts buckets for use on a local file system.
857 | * [mishudark/s3-parallel-put :fire::fire:](https://github.com/mishudark/s3-parallel-put) - CLI that supports parallel uploads.
858 | * [waynehoover/s3_direct_upload :fire::fire::fire:](https://github.com/waynehoover/s3_direct_upload) - Direct Upload to Amazon S3 With CORS
859 | * [weavejester/clj-aws-s3 :fire:](https://github.com/weavejester/clj-aws-s3) - Client library for Clojure.
860 |
861 | ### SES
862 |
863 | Community Repos:
864 |
865 | * [drewblas/aws-ses :fire::fire::fire:](https://github.com/drewblas/aws-ses) - Provides an easy ruby DSL & interface.
866 | * [microapps/MoonMail :fire::fire::fire::fire:](https://github.com/microapps/MoonMail) - Shoot billions of emails using SES and Lambda.
867 |
868 | ### Simple Workflow
869 |
870 | AWS Repos:
871 |
872 | * [aws-flow-ruby :fire:](https://github.com/aws/aws-flow-ruby) - Creates background jobs and multistep workflows.
873 | * [aws-flow-ruby-samples](https://github.com/awslabs/aws-flow-ruby-samples) - AWS Flow Framework for Ruby samples.
874 | * [aws-flow-ruby-opsworks-helloworld](https://github.com/awslabs/aws-flow-ruby-opsworks-helloworld) - Hello World sample.
875 |
876 | Community Repos:
877 |
878 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
879 |
880 | ### SimpleDB
881 |
882 | Community Repos:
883 |
884 | * [rjrodger/simpledb :fire:](https://github.com/rjrodger/simpledb) - Node.js library.
885 |
886 | ### SNS
887 |
888 | AWS Repos:
889 |
890 | * [aws-php-sns-message-validator :fire:](https://github.com/aws/aws-php-sns-message-validator) - Message validation for PHP.
891 |
892 | Community Repos:
893 |
894 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
895 |
896 | ### SQS
897 |
898 | AWS Repos:
899 |
900 | * [amazon-sqs-java-messaging-lib :fire:](https://github.com/awslabs/amazon-sqs-java-messaging-lib) - Holds the Java Message Service to communicate with SQS.
901 |
902 | Community Repos:
903 |
904 | * [phstc/shoryuken :fire::fire::fire::fire:](https://github.com/phstc/shoryuken) - A super efficient SQS thread based message processor for Ruby.
905 |
906 | ### Data
907 |
908 | AWS Repos:
909 |
910 | * [aws-data-wrangler :fire::fire::fire::fire::fire:](https://github.com/awslabs/aws-data-wrangler) - Connects Pandas DataFrames and AWS data related services.
911 |
912 | Community Repos:
913 |
914 | * [donnemartin/data-science-ipython-notebooks :fire::fire::fire::fire::fire:](https://github.com/donnemartin/data-science-ipython-notebooks) - Big data/data science notebooks.
915 | * [everpeace/vagrant-mesos :fire::fire:](https://github.com/everpeace/vagrant-mesos) - Spin up your Mesos Cluster with Vagrant.
916 | * [jhorey/ferry :fire::fire:](https://github.com/jhorey/ferry) - Define, run, and deploy big data apps using Docker.
917 | * [nathanmarz/storm-deploy :fire::fire::fire:](https://github.com/nathanmarz/storm-deploy) - One click deploy for Storm clusters.
918 |
919 | ### DevOps
920 |
921 | Community Repos:
922 |
923 | * [cloud-custodian/cloud-custodian :fire::fire::fire::fire::fire:](https://github.com/cloud-custodian/cloud-custodian) - Rules engine for management, DSL in yaml for query, filter, and actions on resources.
924 | * [chef-cookbooks/aws :fire::fire:](https://github.com/chef-cookbooks/aws) - Development repository for aws Chef cookbook.
925 | * [colinbjohnson/aws-missing-tools :fire::fire::fire::fire:](https://github.com/colinbjohnson/aws-missing-tools) - Tools for managing resources including EC2, EBS, RDS and Route53.
926 | * [k1LoW/awspec :fire::fire::fire::fire:](https://github.com/k1LoW/awspec) - RSpec tests your resources.
927 | * [mitchellh/vagrant-aws :fire::fire::fire::fire::fire:](https://github.com/mitchellh/vagrant-aws) - Use Vagrant to manage your EC2 and VPC instances.
928 | * [NixOS/nixops :fire::fire::fire::fire:](https://github.com/NixOS/nixops) - Use NixOS to provision EC2 instances, S3 buckets, and other resources.
929 |
930 | ### Security
931 |
932 | AWS Repos:
933 |
934 | * [aws-sha256-agentcs](https://github.com/awslabs/aws-sha256-agentcs) - SHA256 Agent Compatibility Ccanner.
935 | * [aws-tvm-anonymous](https://github.com/awslabs/aws-tvm-anonymous) - Token Vending Machine for Anonymous Registration.
936 | * [aws-tvm-identity](https://github.com/awslabs/aws-tvm-identity) - Token Vending Machine for Identity Registration.
937 | * [s2n :fire::fire::fire::fire::fire:](https://github.com/awslabs/s2n) - An implementation of the TLS/SSL protocols.
938 |
939 | Community Repos:
940 |
941 | * [AdRoll/hologram :fire::fire::fire:](https://github.com/AdRoll/hologram) - Easy, painless credentials on developer laptops.
942 | * [alex/letsencrypt-aws :fire::fire::fire:](https://github.com/alex/letsencrypt-aws) - Automatically provision and update certificates.
943 | * [bridgecrewio/checkov :fire::fire::fire::fire::fire:](https://github.com/bridgecrewio/checkov) - Terraform static analysis, verifies security best practices.
944 | * [cloudsploit/scans :fire::fire::fire::fire:](https://github.com/cloudsploit/scans) - Detects security risks.
945 | * [iSECPartners/Scout2 :fire::fire::fire::fire:](https://github.com/iSECPartners/Scout2) - Security auditing tool.
946 | * [jordanpotti/AWSBucketDump :fire::fire::fire::fire:](https://github.com/jordanpotti/AWSBucketDump) - Security Tool to Look For Interesting Files in S3 Buckets.
947 | * [Netflix/bless :fire::fire::fire::fire::fire:](https://github.com/Netflix/bless) - SSH Certificate Authority that runs as a Lambda function.
948 | * [Netflix/security_monkey :fire::fire::fire::fire::fire:](https://github.com/Netflix/security_monkey) - Monitors policy changes and alerts on insecure configurations.
949 | * [RiotGames/cloud-inquisitor :fire::fire:](https://github.com/RiotGames/cloud-inquisitor) - Tool to enforce ownership and data security.
950 | * [salesforce/policy_sentry :fire::fire::fire::fire:](https://github.com/salesforce/policy_sentry/) - IAM Least Privilege Policy Generator.
951 | * [sebsto/AWSVPN :fire:](https://github.com/sebsto/AWSVPN) - Start a private VPN server in the cloud.
952 | * [trailofbits/algo :fire::fire::fire::fire::fire:](https://github.com/trailofbits/algo) - Set up a personal IPSEC VPN on EC2 and other cloud services.
953 | * [ttlequals0/autovpn :fire::fire::fire::fire:](https://github.com/ttlequals0/autovpn) - Create On Demand Disposable OpenVPN Endpoints.
954 |
955 | ### Accompanying Repos
956 |
957 | AWS Repos:
958 |
959 | *Repos Accompanying Blogs, Training Events, and Conferences.*
960 |
961 | * [aws-arch-backoff-simulator :fire:](https://github.com/awslabs/aws-arch-backoff-simulator) - Jitter and backoff Simulator for AWS architecture blog.
962 | * [aws-big-data-blog :fire::fire::fire:](https://github.com/awslabs/aws-big-data-blog) - Samples from the AWS Big Data Blog.
963 | * [aws-demo-php-simple-app](https://github.com/awslabs/aws-demo-php-simple-app) - PHP apps from the AWS Blogs.
964 | * [aws-mobile-sample-wif](https://github.com/awslabs/aws-mobile-sample-wif) - Samples from the AWS Mobile SDK blog.
965 | * [aws-mobile-self-paced-labs-samples](https://github.com/awslabs/aws-mobile-self-paced-labs-samples) - Android Snake Game from a self-paced lab.
966 | * [aws-quickstart](https://github.com/aws-quickstart/) - Official repository for AWS Quick Start.
967 | * [aws-spot-labs :fire::fire::fire:](https://github.com/awslabs/aws-spot-labs) - Best practices using AWS Spot Instances.
968 | * [aws-training-demo :fire:](https://github.com/awslabs/aws-training-demo) - Demos from the Technical Trainers community.
969 | * [java-meme-generator-sample](https://github.com/awslabs/java-meme-generator-sample) - Meme generation app from re:Invent 2012.
970 | * [railsconf2013-tech-demo :fire:](https://github.com/awslabs/railsconf2013-tech-demo) - Seahorse demo from RailsConf 2013.
971 | * [reinvent2013-js-blog-demo](https://github.com/awslabs/reinvent2013-js-blog-demo) - Demo blogging app from re:Invent 2013.
972 | * [reinvent2013-mobile-photo-share](https://github.com/awslabs/reinvent2013-mobile-photo-share) - Mobile photo share app from re:Invent 2014.
973 | * [reinvent2014-scalable-site-management](https://github.com/awslabs/reinvent2014-scalable-site-management) - Scalable site management sample from re:Invent 2014.
974 | * [reinvent2015-dev309](https://github.com/awslabs/reinvent2015-dev309) - Large Scale Metrics Analysis from re:Invent 2015.
975 | * [timely-security-analytics](https://github.com/awslabs/timely-security-analytics) - Security analytics sample from 2015 re:Invent 2015.
976 | * [todo-sample-app](https://github.com/awslabs/todo-sample-app) - Simple "Todo" app from RailsConf 2014.
977 |
978 | Community Repos:
979 |
980 | * [startup-class/setup :fire::fire:](https://github.com/startup-class/setup) - EC2 setup files for Startup Engineering MOOC.
981 |
982 | ### Miscellaneous Repos
983 |
984 | AWS Repos:
985 |
986 | * [amediamanager](https://github.com/awslabs/amediamanager) - Media manager.
987 | * [aws-hal-client-java](https://github.com/awslabs/aws-hal-client-java) - Java client for the Hypertext Application Language.
988 | * [aws-model-validators](https://github.com/awslabs/aws-model-validators) - Tools for validating the AWS service JSON model files.
989 | * [aws-sdk-js-sample-video-transcoder](https://github.com/awslabs/aws-sdk-js-sample-video-transcoder) - Sample cross-platform video transcoder app.
990 | * [simplebeerservice :fire::fire:](https://github.com/awslabs/simplebeerservice) - Cloud-connected kegerator that streams live sensor data to AWS.
991 |
992 | Community Repos:
993 |
994 | * [bcoe/thumbd :fire::fire:](https://github.com/bcoe/thumbd) - Node.js/ImageMagick-based image thumbnailing service.
995 | * [cdkpatterns/serverless :fire::fire::fire::fire:](https://github.com/cdk-patterns/serverless) - Deployable serverless architecture patterns built in AWS CDK.
996 | * [Comcast/cmb :fire::fire:](https://github.com/Comcast/cmb) - Highly available, horizontally scalable queuing and notification service.
997 | * [convox/rack :fire::fire::fire::fire:](https://github.com/convox/rack) - Open-source PaaS on AWS.
998 | * [devops-israel/aws-inventory :fire::fire:](https://github.com/devops-israel/aws-inventory) - Display all your AWS resources on a single web page.
999 | * [donnemartin/dev-setup :fire::fire::fire::fire:](https://github.com/donnemartin/dev-setup) - Mac setup of various developer tools and AWS services.
1000 | * [dtan4/terraforming :fire::fire::fire::fire::fire:](https://github.com/dtan4/terraforming) - Export existing resources to Terraform style (tf, tfstate).
1001 | * [segmentio/stack :fire::fire::fire::fire::fire:](https://github.com/segmentio/stack) - A set of Terraform modules for configuring production infrastructure.
1002 | * [j2labs/microarmy ](https://github.com/j2labs/microarmy) - Deploy micro instances to launch a coordinated siege.
1003 | * [jpillora/grunt-aws :fire:](https://github.com/jpillora/grunt-aws) - Grunt interface into the Node.JS SDK.
1004 | * [jvehent/haproxy-aws :fire::fire:](https://github.com/jvehent/haproxy-aws) - Documentation on building a HTTPS stack with HAProxy.
1005 | * [localstack/localstack :fire::fire::fire::fire::fire:](https://github.com/localstack/localstack) - A fully functional local AWS cloud stack. Develop and test your cloud apps offline!
1006 | * [meducation/propono :fire::fire:](https://github.com/meducation/propono) - Easy-to-use pub/sub in Ruby.
1007 | * [mozilla/awsbox :fire::fire::fire:](https://github.com/mozilla/awsbox) - A featherweight PaaS on top of EC2 for deploying node apps.
1008 | * [Netflix/aminator :fire::fire::fire:](https://github.com/Netflix/aminator) - A tool for creating EBS AMIs.
1009 | * [Netflix/archaius :fire::fire::fire::fire::fire:](https://github.com/Netflix/archaius) - Library for configuration management API.
1010 | * [Netflix/asgard :fire::fire::fire::fire::fire:](https://github.com/Netflix/asgard) - Web interface for application deployments and cloud management.
1011 | * [Netflix/aws-autoscaling :fire::fire:](https://github.com/Netflix/aws-autoscaling) - Tools for using auto scaling and documentation best practices.
1012 | * [Netflix/chaosmonkey :fire::fire::fire::fire::fire:](https://github.com/Netflix/chaosmonkey) - Resiliency tool that helps applications tolerate random instance failures.
1013 | * [Netflix/eureka :fire::fire::fire::fire::fire:](https://github.com/Netflix/eureka) - Service registry for resilient mid-tier load balancing and failover.
1014 | * [Netflix/EVCache :fire::fire::fire::fire:](https://github.com/Netflix/EVCache) - A distributed in-memory data store.
1015 | * [Netflix/Fenzo :fire::fire::fire:](https://github.com/Netflix/Fenzo) - Extensible Scheduler for Mesos Frameworks.
1016 | * [Netflix/ice :fire::fire::fire::fire::fire:](https://github.com/Netflix/ice) - Usage and cost monitoring tool.
1017 | * [Netflix/ribbon :fire::fire::fire::fire::fire:](https://github.com/Netflix/ribbon) - Remote procedure call library with built in software load balancers.
1018 | * [Netflix/SimianArmy :fire::fire::fire::fire::fire:](https://github.com/Netflix/SimianArmy) - Tools to keep your cloud operating in top form.
1019 | * [Netflix/zuul :fire::fire::fire::fire::fire:](https://github.com/Netflix/zuul) - Edge service that provides dynamic routing, monitoring, resiliency, security, and more.
1020 | * [niftylettuce/gulp-aws-splash :fire::fire:](https://github.com/niftylettuce/gulp-aws-splash) - Open-source LaunchRock alternative. Build beautiful splash pages.
1021 | * [puppetlabs/puppetlabs-aws :fire:](https://github.com/puppetlabs/puppetlabs-aws) - Puppet module for managing resources to build out infrastructure.
1022 | * [mhart/react-server-routing-example :fire::fire:](https://github.com/mhart/react-server-routing-example) - Sample universal client/server routing and data in React.
1023 | * [Similarweb/finala :fire::fire::fire:](https://github.com/similarweb/finala) - A resource cloud scanner that analyzes and reports wasteful and unused resources to cut unwanted expenses.
1024 | * [snowplow/snowplow :fire::fire::fire::fire::fire:](https://github.com/snowplow/snowplow) - Enterprise-strength web, mobile and event analytics, powered by Hadoop, Kafka, Kinesis, Redshift and Elasticsearch.
1025 | * [Spinnaker/spinnaker :fire::fire::fire::fire::fire:](https://github.com/Spinnaker/spinnaker) - Successor to asgard supporting pipelines and more.
1026 | * [spulec/moto :fire::fire::fire::fire::fire:](https://github.com/spulec/moto) - Allows your python tests to easily mock out the boto library.
1027 |
1028 | ## Guides, Books, Documentation, and Training
1029 |
1030 | *How-to's, training, whitepapers, docs, and case studies.*
1031 |
1032 |
1033 |
1034 |
1035 |
1036 |
1037 |
1038 | ### Getting Started Guides
1039 |
1040 | AWS Guides:
1041 |
1042 | * [Getting Started with AWS](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-intro.html)
1043 | * [Getting Started Tutorials](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html)
1044 | * [Run a Virtual Server](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2614)
1045 | * [Store Files](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2683)
1046 | * [Share Digital Media](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2755)
1047 | * [Deploy a Website](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2767)
1048 | * [Host a Website (Linux)](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2836)
1049 | * [Host a Website (Windows)](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2908)
1050 | * [Run a Database](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e2980)
1051 | * [Analyze Your Data](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-tutorials.html#d0e3065)
1052 |
1053 | Community Guides:
1054 |
1055 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
1056 |
1057 | ### General Guides
1058 |
1059 | AWS Guides:
1060 |
1061 | * [Analyzing Big Data](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html)
1062 | * [Working with the AWS Management Console](http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html)
1063 | * [Deploying a Web App Using Elastic Beanstalk](http://docs.aws.amazon.com/gettingstarted/latest/deploy/overview.html)
1064 | * [Hosting a Web App](http://docs.aws.amazon.com/gettingstarted/latest/wah-linux/web-app-hosting-intro.html)
1065 | * [Hosting a .NET Web App](http://docs.aws.amazon.com/gettingstarted/latest/wah/web-app-hosting-intro.html)
1066 | * [Hosting a Static Website](http://docs.aws.amazon.com/gettingstarted/latest/swh/website-hosting-intro.html)
1067 | * [Quick Start Deployment Guides](https://aws.amazon.com/documentation/quickstart/)
1068 |
1069 | Community Guides:
1070 |
1071 | * [Open Guide to AWS :fire::fire::fire::fire::fire:](https://github.com/open-guides/og-aws)
1072 |
1073 | ### Books
1074 |
1075 | * Amazon Web Services in Action [Manning](https://www.manning.com/books/amazon-web-services-in-action) or [Amazon.com](http://amzn.com/1617292885)
1076 | * AWS Lambda in Action [Manning](https://www.manning.com/books/aws-lambda-in-action) or [Amazon.com](http://amzn.com/1617293717) - [Code Repo :fire::fire:](https://github.com/danilop/AWS_Lambda_in_Action)
1077 |
1078 | ### Whitepapers
1079 |
1080 | * [AWS Well-Architected Framework](https://d0.awsstatic.com/whitepapers/architecture/AWS_Well-Architected_Framework.pdf)
1081 | * [Whitepapers](https://aws.amazon.com/whitepapers/)
1082 |
1083 | ### Documentation
1084 |
1085 | * [Documentation](https://aws.amazon.com/documentation/)
1086 | * [AWS Billing and Cost Management](https://aws.amazon.com/documentation/account-billing/)
1087 | * [AWS Marketplace](https://aws.amazon.com/documentation/marketplace/)
1088 | * [AWS Support](https://aws.amazon.com/documentation/aws-support/)
1089 | * [AWS General Reference](http://docs.aws.amazon.com/general/latest/gr/)
1090 | * [AWS Glossary](http://docs.aws.amazon.com/general/latest/gr/glos-chap.html)
1091 |
1092 | ### Training
1093 |
1094 | * [Training and Certification](https://aws.amazon.com/training/)
1095 | * [Webinars](https://aws.amazon.com/about-aws/events/)
1096 |
1097 | ### Case Studies: Powered by AWS
1098 |
1099 | * [Adobe](https://aws.amazon.com/solutions/case-studies/adobe/)
1100 | * [AdRoll](https://aws.amazon.com/solutions/case-studies/adroll/)
1101 | * [Airbnb](https://aws.amazon.com/solutions/case-studies/airbnb/)
1102 | * [Autodesk](https://aws.amazon.com/solutions/case-studies/autodesk/)
1103 | * [Citrix](https://aws.amazon.com/solutions/case-studies/citrix/)
1104 | * [Comcast](https://aws.amazon.com/solutions/case-studies/comcast/)
1105 | * [Coursera](https://aws.amazon.com/solutions/case-studies/coursera/)
1106 | * [Docker](https://aws.amazon.com/solutions/case-studies/docker/)
1107 | * [Dow Jones](https://aws.amazon.com/solutions/case-studies/dow-jones/)
1108 | * [Dropbox](https://www.dropbox.com/)
1109 | * [Dropcam](https://aws.amazon.com/solutions/case-studies/dropcam/)
1110 | * [Expedia](https://aws.amazon.com/solutions/case-studies/expedia/)
1111 | * [Foursquare](https://aws.amazon.com/solutions/case-studies/foursquare/)
1112 | * [IMDb](https://aws.amazon.com/solutions/case-studies/imdb/)
1113 | * [Instrumental](https://instrumentalapp.com/blog/aws-kinesis/)
1114 | * [Intuit](https://aws.amazon.com/solutions/case-studies/soasta-intuit/)
1115 | * [Johnson & Johnson](https://aws.amazon.com/solutions/case-studies/johnson-and-johnson/)
1116 | * [Lionsgate](https://aws.amazon.com/solutions/case-studies/lionsgate/)
1117 | * [mlbam](https://aws.amazon.com/solutions/case-studies/major-league-baseball-mlbam/)
1118 | * [NASA](https://aws.amazon.com/solutions/case-studies/nasa-jpl-curiosity/)
1119 | * [Netflix](https://aws.amazon.com/solutions/case-studies/netflix/)
1120 | * [Nike](https://web.archive.org/web/20150910200649/http://aws.amazon.com/solutions/case-studies/nike/)
1121 | * [Nokia](https://web.archive.org/web/20161210062336/https://aws.amazon.com/solutions/case-studies/nokia/)
1122 | * [PBS](https://aws.amazon.com/solutions/case-studies/pbs/)
1123 | * [Pfizer](https://web.archive.org/web/20161210034734/https://aws.amazon.com/solutions/case-studies/pfizer/)
1124 | * [Philips](https://aws.amazon.com/solutions/case-studies/philips/)
1125 | * [Reddit](https://web.archive.org/web/20150905070945/https://aws.amazon.com/solutions/case-studies/reddit/)
1126 | * [Samsung](https://aws.amazon.com/solutions/case-studies/samsung/)
1127 | * [Siemens](https://aws.amazon.com/solutions/case-studies/siemens/)
1128 | * [Slack](https://aws.amazon.com/solutions/case-studies/slack/)
1129 | * [Spotify](https://web.archive.org/web/20180608043124/https://aws.amazon.com/solutions/case-studies/spotify/)
1130 | * [Swiftkey](https://web.archive.org/web/20160410051253/https://aws.amazon.com/solutions/case-studies/swiftkey/)
1131 | * [The Weather Company](https://aws.amazon.com/solutions/case-studies/the-weather-company/)
1132 | * [Ticketmaster](https://aws.amazon.com/solutions/case-studies/ticketmaster/)
1133 | * [Time Inc](https://aws.amazon.com/solutions/case-studies/time-inc/)
1134 | * [Twilio](https://aws.amazon.com/solutions/case-studies/twilio/)
1135 | * [U.S. Department of State](https://aws.amazon.com/solutions/case-studies/exchangesconnect/)
1136 | * [Ubisoft](https://aws.amazon.com/solutions/case-studies/ubisoft/)
1137 | * [Yelp](https://aws.amazon.com/solutions/case-studies/yelp-docker/)
1138 | * [Zillow](https://aws.amazon.com/solutions/case-studies/zillow/)
1139 |
1140 | ## Social
1141 |
1142 | *Blogs, discussion groups, conferences, and social media.*
1143 |
1144 |
1145 |
1146 |
1147 |
1148 |
1149 |
1150 | ### Blogs
1151 |
1152 | AWS Blogs:
1153 |
1154 | * [Official Blog](https://aws.amazon.com/blogs/aws/)
1155 | * [Brasil](https://aws.amazon.com/pt/blogs/aws-brasil/)
1156 | * [China](https://aws.amazon.com/cn/blogs/china/)
1157 | * [Germany](https://aws.amazon.com/de/blogs/germany/)
1158 | * [Japan](https://aws.amazon.com/jp/blogs/news/)
1159 | * [Korea](http://aws.amazon.com/ko/blogs/korea/)
1160 | * [DevOps](https://aws.amazon.com/blogs/devops/)
1161 | * [Architecture](https://aws.amazon.com/blogs/architecture/)
1162 | * [Big Data](https://aws.amazon.com/blogs/big-data/)
1163 | * [Compute](https://aws.amazon.com/blogs/compute/)
1164 | * [Mobile](https://aws.amazon.com/blogs/mobile/)
1165 | * [Messaging](https://aws.amazon.com/blogs/messaging-and-targeting/)
1166 | * [Java](https://aws.amazon.com/blogs/developer/category/programing-language/java/)
1167 | * [PHP](https://aws.amazon.com/blogs/developer/category/programing-language/php/)
1168 | * [Ruby](https://aws.amazon.com/blogs/developer/category/programing-language/ruby/)
1169 | * [.NET](https://aws.amazon.com/blogs/developer/category/programing-language/dot-net/)
1170 | * [Security](https://aws.amazon.com/blogs/security/)
1171 | * [Startup](https://medium.com/aws-activate-startup-blog)
1172 | * [Partner Network](https://aws.amazon.com/blogs/apn/)
1173 | * [SAP](https://aws.amazon.com/blogs/awsforsap/)
1174 |
1175 | Community Blogs:
1176 |
1177 | * [All Things Distributed](http://www.allthingsdistributed.com/) - Werner Vogels, AWS CTO.
1178 | * [Things I Like...](http://jeff-barr.com/) - Jeff Barr, AWS Chief Evangelist.
1179 | * [Netflix Tech Blog](http://techblog.netflix.com/)
1180 | * [A Curated List of Engineering Blogs](https://github.com/kilimchoi/engineering-blogs)
1181 | * [AWS Geek](https://www.awsgeek.com/)
1182 |
1183 | ### Twitter Influencers
1184 |
1185 | AWS Tweeps:
1186 |
1187 | * [@awscloud](https://twitter.com/awscloud) - Official Twitter feed.
1188 | * [@AWS_Partners](https://twitter.com/AWS_Partners)
1189 | * [@AWSIdentity](https://twitter.com/AWSIdentity)
1190 | * [@AWSMarketplace](https://twitter.com/AWSMarketplace)
1191 | * [@AWSreInvent](https://twitter.com/AWSreInvent) - Official Twitter account for re:Invent.
1192 | * [@AWSStartups](https://twitter.com/AWSStartups)
1193 | * [@ajassy](https://twitter.com/ajassy) - Andy Jassy: Senior Vice-President.
1194 | * [@Ianmmmm](https://twitter.com/Ianmmmm) - Ian Massingham - Technical Evangelist.
1195 | * [@jeffbarr](https://twitter.com/jeffbarr) - Jeff Barr: Chief Evangelist.
1196 | * [@mndoci](https://twitter.com/mndoci) - Deepak Singh: GM EC2.
1197 | * [@mza](https://twitter.com/mza) - Matt Wood: Product Strategy.
1198 | * [@Werner](https://twitter.com/Werner) - Werner Vogels: CTO.
1199 | * [Community heroes, Evangelists, etc](https://twitter.com/awscloud/lists)
1200 |
1201 | Community Tweeps:
1202 |
1203 | * [@kennwhite](https://twitter.com/kennwhite)
1204 | * [@esh](https://twitter.com/esh)
1205 | * [@garnaat](https://twitter.com/garnaat)
1206 | * [@quinnypig](https://twitter.com/quinnypig)
1207 | * [@awsgeek](https://twitter.com/awsgeek)
1208 |
1209 | ### Facebook Pages
1210 |
1211 | AWS Pages:
1212 |
1213 | * [amazonwebservices](https://www.facebook.com/amazonwebservices) - Official Facebook page.
1214 | * [awsreinvent](https://www.facebook.com/awsreinvent) - Official Facebook page for re:Invent.
1215 |
1216 | Community Pages:
1217 |
1218 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
1219 |
1220 | ### YouTube Channels
1221 |
1222 | AWS Channels:
1223 |
1224 | * [AmazonWebServices](https://www.youtube.com/user/AmazonWebServices)
1225 | * [AWSDeutsch](https://www.youtube.com/user/AWSAktuell)
1226 | * [AWSJapan](https://www.youtube.com/user/AmazonWebServicesJP)
1227 | * [AWSKorea](https://www.youtube.com/user/AWSKorea)
1228 | * [AWSLatinAmerica](https://www.youtube.com/channel/UCvaUAVzIIGsRNlUDWkQFCeA)
1229 | * [AWSTutorialSeries](https://www.youtube.com/user/awstutorialseries)
1230 | * [AWSWebinars](https://www.youtube.com/user/AWSwebinars)
1231 |
1232 | Community Channels:
1233 |
1234 | * [Backspace Academy](https://www.youtube.com/channel/UCav3fsasRc5VOqvZiT5avgw)
1235 | * [Cloud Academy](https://www.youtube.com/channel/UCeRY0LppLWdxWAymRANTb0g/videos)
1236 | * [Linux Academy](https://www.youtube.com/user/pineheadtv/playlists)
1237 |
1238 | ### LinkedIn Groups
1239 |
1240 | AWS Page:
1241 |
1242 | * [Amazon Web Services](https://www.linkedin.com/company/amazon-web-services)
1243 |
1244 | Community Groups:
1245 |
1246 | * [Amazon AWS Architects](https://www.linkedin.com/grp/home?gid=4387417)
1247 | * [Amazon AWS Architects, Engineers, Developers, Consultants, Entrepreneurs Experts](https://www.linkedin.com/grps?gid=3748455)
1248 | * [Amazon Web Services (AWS) for Business](https://www.linkedin.com/grps?gid=5122002)
1249 | * [Amazon Web Services Architects](https://www.linkedin.com/grps?gid=4233997)
1250 | * [Amazon Web Services Community Network](https://www.linkedin.com/grp/home?gid=49531)
1251 | * [Amazon Web Services Enthusiasts](https://www.linkedin.com/grps?gid=2485626)
1252 | * [Amazon Web Services Users](https://www.linkedin.com/grps?gid=86137)
1253 |
1254 | ### Subreddits
1255 |
1256 | * [/r/aws/](https://www.reddit.com/r/aws/)
1257 | * [/r/AWS_cloud/](https://www.reddit.com/r/AWS_cloud/)
1258 |
1259 | ### Conferences
1260 |
1261 | AWS Conferences:
1262 |
1263 | * [re:Invent](https://reinvent.awsevents.com/) - Annual user conference. The event features keynote announcements, training and certification opportunities, over 250 technical sessions, a partner expo, after hours activities, and more.
1264 | * [Summits](https://aws.amazon.com/summits/) - Global one-day events that are designed to educate new customers about the AWS platform and offer existing customers deep technical content to be more successful with AWS.
1265 | * [AWSome Day](https://aws.amazon.com/events/awsome-day/awsome-day-online/) - Global one-day events are delivered by AWS Education's technical instructors and are ideal for IT pros, developers and technical managers who would like to learn about how to get started in the AWS Cloud.
1266 |
1267 | Community Conferences:
1268 |
1269 | * [Contribute](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md)
1270 |
1271 | ## Latest KPIs and Stats
1272 |
1273 | *Latest key performance indicators and other interesting stats.*
1274 |
1275 |
1276 |
1277 |
1278 |
1279 |
1280 |
1281 | * Over 1 million customers active in past 30 days.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1282 | * $7B+ annual revenue run-rate business.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1283 | * 81% year over year revenue growth.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1284 | * EC2 usage up 95% year over year.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1285 | * S3 data transfer up 120% year over year.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1286 | * S3 holds trillions of objects and regularly peaks at 1.5 million requests per second.[2](http://highscalability.com/blog/2015/1/12/the-stunning-scale-of-aws-and-what-it-means-for-the-future-o.html)
1287 | * Database services usage up 127% year over year.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1288 | * $1B annual revenue run-rate business.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1289 | * 2 million new EBS volumes created per day.[4](https://www.youtube.com/watch?v=OuyUbvtgfDk)
1290 | * Customers have launched more than 15 million Hadoop clusters.[3](http://www.forbes.com/sites/benkepes/2014/11/25/scale-beyond-comprehension-some-aws-numbers/)
1291 | * 102Tbps network capacity into a data center.[2](http://highscalability.com/blog/2015/1/12/the-stunning-scale-of-aws-and-what-it-means-for-the-future-o.html)
1292 | * 500+ major new features and services launched since 2014.[1](https://www.youtube.com/watch?v=D5-ifl7KJ00)
1293 | * All 14 other cloud providers combined have 1/5th the aggregate capacity of AWS.[2](http://highscalability.com/blog/2015/1/12/the-stunning-scale-of-aws-and-what-it-means-for-the-future-o.html)
1294 | * Every day, AWS adds enough new server capacity to support all of Amazon's global infrastructure when it was a $7B annual revenue enterprise (in 2004).[2](http://highscalability.com/blog/2015/1/12/the-stunning-scale-of-aws-and-what-it-means-for-the-future-o.html)
1295 |
1296 | ## Appendix of Core Services
1297 |
1298 | *Appendix of official services, grouped by service category.*
1299 |
1300 | ### Services in Plain English
1301 |
1302 | * [Amazon Web Services in Plain English](https://www.expeditedssl.com/aws-in-plain-english) - Entertaining and educational, a community contribution.
1303 |
1304 | ### Compute Services
1305 |
1306 | * [Auto Scaling](https://aws.amazon.com/autoscaling/) - Launches or terminates EC2 instances based on policies, schedules, and health checks.
1307 | * [Batch](https://aws.amazon.com/batch/) - Run batch jobs at scale.
1308 | * [Blox](https://blox.github.io/) - Open source projects for building custom schedulers on ECS.
1309 | * [EC2 Container Service (ECS)](https://aws.amazon.com/ecs/) - Supports Docker containers on EC2 instances.
1310 | * [EC2 Systems Manager](https://aws.amazon.com/ec2/systems-manager/) - Easily configure and manage EC2 and on-premises systems.
1311 | * [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) - Provides quick deployment and management of applications in the cloud.
1312 | * [Elastic Compute Cloud (EC2)](http://aws.amazon.com/ec2/) - Provides scalable virtual private servers using Xen.
1313 | * [Elastic GPUs](https://aws.amazon.com/ec2/Elastic-GPUs/) - Attach low-cost GPUs to EC2 instances for graphics acceleration.
1314 | * [Elastic Load Balancing (ELB)](https://aws.amazon.com/elasticloadbalancing/) - Automatically distributes incoming traffic across multiple EC2 instances.
1315 | * [Lambda](https://aws.amazon.com/lambda/) - Runs code in response to events and automatically manages EC2 instances.
1316 | * [Lightsail](https://amazonlightsail.com/) - Launch and manage simple virtual private servers.
1317 | * [Virtual Private Cloud (VPC)](https://aws.amazon.com/vpc/) - Creates a logically isolated set of EC2 instances which can be connected to an existing network using a VPN connection.
1318 |
1319 | ### Networking Services
1320 |
1321 | * [Direct Connect](https://aws.amazon.com/directconnect/) - Provides dedicated connections to AWS for faster and cheaper data throughput.
1322 | * [Elastic Load Balancing (ELB)](https://aws.amazon.com/elasticloadbalancing/) - Automatically distributes incoming traffic across multiple EC2 instances.
1323 | * [Route 53](https://aws.amazon.com/route53/) - Provides a highly available and scalable Domain Name System (DNS) web service.
1324 | * [Virtual Private Cloud (VPC)](https://aws.amazon.com/vpc/) - Creates a logically isolated set of EC2 instances which can be connected to an existing network using a VPN connection.
1325 |
1326 | ### Enterprise Applications
1327 |
1328 | * [WorkDocs](https://aws.amazon.com/workdocs/) - Provides a fully managed, secure enterprise storage and sharing service.
1329 | * [WorkMail](https://aws.amazon.com/workmail/) - Provides managed email and calendaring service.
1330 | * [WorkSpaces](https://aws.amazon.com/workspaces/) - Provides a cloud-based desktop experience to end-users.
1331 | * [Workspaces Application Manager (WAM)](http://aws.amazon.com/workspaces/applicationmanager/) - Simplifies deployment and management of WorkSpaces.
1332 |
1333 | ### Analytics Services
1334 |
1335 | * [Athena](https://aws.amazon.com/athena/) - Query data on S3 instantly.
1336 | * [Data Pipeline](https://aws.amazon.com/datapipeline/) - Provides workload management by processing and moving data between services.
1337 | * [Elastic MapReduce (EMR)](http://aws.amazon.com/elasticmapreduce/) - Hosts a Hadoop and Spark framework running on EC2 and S3.
1338 | * [Elasticsearch Service (ES)](https://aws.amazon.com/elasticsearch-service/) - Managed Elasticsearch, a popular open-source search and analytics engine.
1339 | * [Glue](https://aws.amazon.com/glue/) - Prepare and load data to data stores.
1340 | * [Kinesis](https://aws.amazon.com/kinesis/) - Provides real-time data processing over large, distributed data streams.
1341 | * [Kinesis Analytics](https://aws.amazon.com/kinesis/analytics/) - Write standard SQL queries on streaming data without having to learn any new programming skills.
1342 | * [Kinesis Firehose](https://aws.amazon.com/kinesis/firehose/) - Captures and automatically loads streaming data into S3 and Redshift.
1343 | * [Quicksight](https://aws.amazon.com/quicksight/) - Provides cloud-powered business intelligence for 1/10th the cost of traditional BI solutions.
1344 | * [Redshift](https://aws.amazon.com/redshift/) - Provides petabyte-scale data warehousing with columnar storage and multi-node compute.
1345 |
1346 | ### Artificial Intelligence
1347 |
1348 | * [Lex](https://aws.amazon.com/lex/) - Build conversational interfaces through voice or text.
1349 | * [Machine Learning](https://aws.amazon.com/machine-learning/) - Provides managed machine learning technology.
1350 | * [Polly](https://aws.amazon.com/polly/) - Turn text into lifelike speech.
1351 | * [Rekognition](https://aws.amazon.com/rekognition/) - Deep learning-based image analysis.
1352 |
1353 | ### Management Tools
1354 |
1355 | * [CloudFormation](https://aws.amazon.com/cloudformation/) - Provides a file-based interface for provisioning other resources.
1356 | * [CloudTrail](https://aws.amazon.com/cloudtrail/) - Provides logs of all activity.
1357 | * [CloudWatch](https://aws.amazon.com/cloudwatch/) - Provides monitoring for AWS cloud resources and applications, starting with EC2.
1358 | * [Command Line Interface (CLI)](https://aws.amazon.com/cli/) - Provides a CLI to manage all services.
1359 | * [Config](https://aws.amazon.com/config/) - Provides a detailed view of all resources.
1360 | * [Management Console (AWS Console)](https://aws.amazon.com/console/) - A web-based interface to manage all services.
1361 | * [OpsWorks](https://aws.amazon.com/opsworks/) - Provides configuration of EC2 services using Chef.
1362 | * [Personal Health Dashboard](https://aws.amazon.com/premiumsupport/phd/) - Your personalized view of service health.
1363 | * [Service Catalog](https://aws.amazon.com/servicecatalog/) - Service Catalog allows IT administrators to create, manage, and distribute portfolios of approved products to end users, who can then access the products they need in a personalized portal.
1364 |
1365 | ### Security and Identity Services
1366 |
1367 | * [Certificate Manager](https://aws.amazon.com/certificate-manager/) - Lets you easily provision, manage, and deploy SSL/TLS certificates for use with AWS services.
1368 | * [CloudHSM](https://aws.amazon.com/cloudhsm/) - Helps meet corporate, contractual and regulatory compliance requirements for data security by using dedicated Hardware Security Module (HSM) appliances within the AWS cloud.
1369 | * [Directory Service](https://aws.amazon.com/directoryservice/) - A managed service that allows you to connect your resources with an existing on-premises Microsoft Active Directory or to set up a new, stand-alone directory in the AWS Cloud.
1370 | * [Identity and Access Management (IAM)](https://aws.amazon.com/iam/) - An implicit service, the authentication infrastructure used to authenticate access to the various services.
1371 | * [Inspector](https://aws.amazon.com/inspector/) - An automated security assessment service that helps improve the security and compliance of applications deployed on AWS.
1372 | * [Key Management Service (KMS)](https://aws.amazon.com/kms/) - A managed service that makes it easy for you to create and control the encryption keys used to encrypt your data.
1373 | * [Shield](https://aws.amazon.com/shield/) - Managed DDoS Protection.
1374 | * [WAF](https://aws.amazon.com/waf/) - A web application firewall service that monitors and manages CloudFront distributions.
1375 |
1376 | ### Internet of Things Service
1377 |
1378 | * [IoT](https://aws.amazon.com/iot/) - Enables secure, bi-directional communication between internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud over MQTT and HTTP.
1379 |
1380 | ### Mobile Services
1381 |
1382 | * [API Gateway](https://aws.amazon.com/api-gateway/) - Service for publishing, maintaining and securing web service APIs.
1383 | * [Cognito](https://aws.amazon.com/cognito/) - Provides user identity and data synchronization.
1384 | * [Device Farm](https://aws.amazon.com/device-farm/) - App testing service for iOS, Android and Fire OS apps on physical devices.
1385 | * [Mobile Analytics](https://aws.amazon.com/mobileanalytics/) - Service for collecting, visualizing, and understanding app usage data.
1386 | * [Mobile Hub](https://aws.amazon.com/mobile/) - Provides an integrated console that helps you build, test, and monitor your mobile apps.
1387 | * [Pinpoint](https://aws.amazon.com/pinpoint/) - Targeted push notifications for mobile apps.
1388 | * [Simple Notification Service (SNS)](https://aws.amazon.com/sns/) - Provides a hosted multi-protocol "push" messaging for applications.
1389 |
1390 | ### Storage and Content Delivery Services
1391 |
1392 | * [CloudFront](https://aws.amazon.com/cloudfront/) - A content delivery network (CDN) for distributing objects to locations near the requester.
1393 | * [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/) - Provides persistent block-level storage volumes for EC2.
1394 | * [Elastic File System (EFS)](https://aws.amazon.com/efs/) - A file storage service for EC2 instances.
1395 | * [Glacier](https://aws.amazon.com/glacier/) - Provides a low-cost, long-term storage option, intended for archiving data.
1396 | * [Import/Export](https://aws.amazon.com/importexport/) - Accelerates moving large amounts of data into and out of AWS using portable storage devices for transport.
1397 | * [Simple Storage Service (S3)](https://aws.amazon.com/s3/) - Provides Web Service based storage.
1398 | * [Storage Gateway](https://aws.amazon.com/storagegateway/) - An iSCSI block storage virtual appliance with cloud-based backup.
1399 |
1400 | ### Databases
1401 |
1402 | * [Aurora](https://aws.amazon.com/rds/aurora/) - MySQL and PostgreSQL compatible relational database with improved performance.
1403 | * [DynamoDB](https://aws.amazon.com/dynamodb/) - Provides a scalable, low-latency NoSQL online Database Service backed by SSDs.
1404 | * [ElastiCache](https://aws.amazon.com/elasticache/) - Provides in-memory caching for web apps (Memcached, Redis).
1405 | * [Redshift](https://aws.amazon.com/redshift/) - Provides petabyte-scale data warehousing with columnar storage and multi-node compute.
1406 | * [Relational Database Service (RDS)](https://aws.amazon.com/rds/) - Provides a scalable database server with MySQL, Oracle, SQL Server, PostgreSQL, and MariaDB support.
1407 | * [Schema Conversion Tool](https://aws.amazon.com/documentation/SchemaConversionTool/) - App that helps you convert your database schema from an Oracle or Microsoft SQL Server database, to an RDS MySQL DB instance or an Aurora DB cluster.
1408 | * [SimpleDB](https://aws.amazon.com/simpledb/) - Allows developers to run queries on structured data.
1409 |
1410 | ### Application Services
1411 |
1412 | * [API Gateway](https://aws.amazon.com/api-gateway/) - Service for publishing, maintaining and securing web service APIs.
1413 | * [AppStream](https://aws.amazon.com/appstream/) - Flexible, low-latency streaming service for apps and games.
1414 | * [CloudSearch](https://aws.amazon.com/cloudsearch/) - Provides basic full-text search and indexing of textual content.
1415 | * [DevPay](https://aws.amazon.com/devpay/) - Provides billing and account management.
1416 | * [Elastic Transcoder (ETS)](https://aws.amazon.com/elastictranscoder/) - Provides video transcoding of S3 hosted videos.
1417 | * [Flexible Payments Service (FPS)](https://payments.amazon.com/developer) - Provides an interface for micropayments.
1418 | * [Simple Email Service (SES)](https://aws.amazon.com/ses/) - Provides bulk and transactional email sending.
1419 | * [Simple Notification Service (SNS)](https://aws.amazon.com/sns/) - Provides a hosted multi-protocol "push" messaging for applications.
1420 | * [Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) - Provides a hosted message queue for web applications.
1421 | * [Simple Workflow (SWF)](https://aws.amazon.com/swf/) - A workflow service for building scalable, resilient applications.
1422 | * [Step Functions](https://aws.amazon.com/step-functions/) - Coordinate components of distributed applications.
1423 |
1424 | ### Developer Tools
1425 |
1426 | * [CodeBuild](https://aws.amazon.com/codebuild/) - Build and test code.
1427 | * [CodeCommit](https://aws.amazon.com/documentation/codecommit/) - Hosted Git version control service.
1428 | * [CodeDeploy](https://aws.amazon.com/codedeploy/) - Provides automated code deployment to EC2 instances.
1429 | * [CodePipeline](https://aws.amazon.com/documentation/codepipeline/) - Continuous delivery service.
1430 | * [Command Line Interface (CLI)](https://aws.amazon.com/cli/) - Provides a CLI to manage all services.
1431 | * [X-Ray](https://aws.amazon.com/xray/) - Analyze and debug your applications.
1432 |
1433 | ### Miscellaneous Services
1434 |
1435 | * [Fulfillment Web Service](https://aws.amazon.com/about-aws/whats-new/2008/03/19/announcing-amazon-fulfillment-web-service/) - Provides a programmatic web service for sellers to ship items to and from Amazon using Fulfillment by Amazon.
1436 | * [Mechanical Turk](https://www.mturk.com/mturk/welcome) - Manages small units of work distributed among many persons.
1437 | * [Partner Network (APN)](https://aws.amazon.com/partners/) - Provides partners with the technical information and sales and marketing support to increase business opportunities.
1438 | * [Product Advertising API](http://docs.aws.amazon.com/AWSECommerceService/latest/GSG/Welcome.html) - Provides access to product data and electronic commerce functionality.
1439 |
1440 | ## Credits
1441 |
1442 | Check out the [Credits page](https://github.com/donnemartin/awesome-aws/blob/master/CREDITS.md).
1443 |
1444 | ## Other Awesome Lists
1445 |
1446 | Other awesome lists can be found in [awesome](https://github.com/sindresorhus/awesome) and [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness).
1447 |
1448 | ## Contact Info
1449 |
1450 | Feel free to contact me to discuss any issues, questions, or comments.
1451 |
1452 | My contact info can be found on my [GitHub page](https://github.com/donnemartin).
1453 |
1454 | ## License
1455 |
1456 | *I am providing code and resources in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code and resources is from me and not my employer (Facebook).*
1457 |
1458 | Copyright 2017 Donne Martin
1459 |
1460 | Creative Commons Attribution 4.0 International License (CC BY 4.0)
1461 |
1462 | http://creativecommons.org/licenses/by/4.0/
1463 |
--------------------------------------------------------------------------------
/awesome/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | __version__ = '0.1.0'
9 |
--------------------------------------------------------------------------------
/awesome/awesome.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | import re
9 |
10 | import click
11 | from githubcli.lib.github3 import null
12 |
13 | from awesome.lib.github import GitHub
14 |
15 |
16 | class Awesome(object):
17 | """Awesomeness.
18 |
19 | :type github: :class:`awesome.lib.GitHub`
20 | :param github: Provides integration with the GitHub API.
21 |
22 | :type output: list
23 | :param output: The updated README content.
24 |
25 | :type repos_broken: list
26 | :param repos_broken: Dead repos found during parsing.
27 |
28 | :type repos_exclude_score: list
29 | :param repos_exclude_score: Repos to exclude in calculating the
30 | Fiery Meter of AWSome score.
31 |
32 | """
33 |
34 | def __init__(self, github=None):
35 | self.github = github if github else GitHub()
36 | self.output = []
37 | self.repos_broken = []
38 | self.repos_exclude_score = [
39 | 'https://github.com/donnemartin',
40 | 'https://github.com/donnemartin/awesome-aws',
41 | 'https://github.com/sindresorhus/awesome',
42 | 'https://github.com/kilimchoi/engineering-blogs',
43 | 'https://github.com/aws/aws-sdk-go/wiki',
44 | '#',
45 | ]
46 |
47 | def extract_repo_params(self, url):
48 | """Extracts the user login and repo name from a repo url.
49 |
50 | Expects the url to be valid of the form:
51 | https://github.com/user/repo/...
52 |
53 | :type regex_match: :class:`sre.SRE_Match`
54 | :param regex_match:
55 | """
56 | tokens = url.split('/')
57 | POS_USER_ID = 3
58 | POS_REPO_NAME = 4
59 | return tokens[POS_USER_ID], tokens[POS_REPO_NAME]
60 |
61 | def print_repos_broken(self):
62 | """Prints out any broken repos."""
63 | if self.repos_broken:
64 | click.secho('Broken repos:', fg='red')
65 | for repo in self.repos_broken:
66 | click.secho(' ' + repo, fg='red')
67 |
68 | def process_line(self, line):
69 | """Processes each line in the README.
70 |
71 | :type line: str
72 | :param line: The current line in the README.
73 | """
74 | match = re.search(r'(https://github.com/[^)]*)', line)
75 | # If we're not processing a repo, just output the line
76 | if match is None:
77 | self.output.append(line)
78 | return
79 | # If the repo is in the score exclude list, just output the line
80 | if any(substr in match.group(0) for substr in self.repos_exclude_score):
81 | self.output.append(line)
82 | return
83 | user_login, repo_name = self.extract_repo_params(match.group(0))
84 | repo = self.github.api.repository(user_login, repo_name)
85 | # Tag any broken repos
86 | if type(repo) is null.NullObject:
87 | self.repos_broken.append(match.group(0))
88 | return
89 | line = self.update_repo_score(repo, line)
90 | self.output.append(line)
91 |
92 | def rock_it(self, readme_path, result_path=None):
93 | """Processes the README.
94 |
95 | :type readme_path: str
96 | :param readme_path: The README file path.
97 |
98 | :type result_path: str
99 | :param result_path: The file path of where to output the results.
100 | """
101 | with open(readme_path, 'r') as f:
102 | for line in f:
103 | line = line.strip('\n')
104 | self.process_line(line)
105 | if result_path is None:
106 | result_path = readme_path
107 | self.write_output(result_path)
108 | self.print_repos_broken()
109 | click.secho('Rate limit: ' + str(self.github.api.ratelimit_remaining),
110 | fg='blue')
111 | click.secho('Updated ' + result_path, fg='blue')
112 |
113 | def score_repo(self, stars, cached_score):
114 | """Assigns the Fiery Meter of AWSome score.
115 |
116 | :type stars: int
117 | :param stars: The number of repo stars.
118 |
119 | :type cached_score: int
120 | :param cached_score: The previouslya assigned score.
121 | """
122 | score = cached_score
123 | if stars < 100:
124 | score = 0 if score != 0 else cached_score
125 | elif stars < 200:
126 | score = 1 if score != 1 else cached_score
127 | elif stars < 500:
128 | score = 2 if score != 2 else cached_score
129 | elif stars < 1000:
130 | score = 3 if score != 3 else cached_score
131 | elif stars < 2000:
132 | score = 4 if score != 4 else cached_score
133 | else:
134 | score = 5 if score != 5 else cached_score
135 | return score
136 |
137 | def update_repo_score(self, repo, line):
138 | """Updates the repo's markdown, given its new score.
139 |
140 | :type repo: :class:`github3.repos.repo.Repository`
141 | :param repo: Contains repo information.
142 |
143 | :type line: str
144 | :param line: The current line of the README.
145 | """
146 | stars = repo.stargazers_count
147 | cached_score = line.count(':fire:')
148 | score = self.score_repo(stars, cached_score)
149 | if score != cached_score:
150 | prefix = ''
151 | if cached_score == 0:
152 | prefix = ' '
153 | cached_fires = ':fire:' * cached_score
154 | fires = ':fire:' * score
155 | line = line.replace(cached_fires + ']', prefix + fires + ']')
156 | return line
157 |
158 | def write_output(self, result_path):
159 | """Writes the results to the result_path.
160 |
161 | :type result_path: str
162 | :param result_path: The file path specifying where to write the output.
163 | """
164 | with open(result_path, 'w') as f:
165 | for output in self.output:
166 | f.write(output + '\n')
167 |
--------------------------------------------------------------------------------
/awesome/awesome_cli.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | # Copyright 2015 Donne Martin. All Rights Reserved.
5 | #
6 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
7 | # http://creativecommons.org/licenses/by/4.0/
8 |
9 | import click
10 |
11 | from awesome.awesome import Awesome
12 |
13 |
14 | pass_awesome = click.make_pass_decorator(Awesome)
15 |
16 |
17 | class AwesomeCli(object):
18 | """Awesomeness in CLI form."""
19 |
20 | @click.group()
21 | @click.pass_context
22 | def cli(ctx):
23 | """Main entry point for AwesomeCli.
24 |
25 | :type ctx: :class:`click.core.Context`
26 | :param ctx: Stores an instance of Awesome used to update the README.
27 | """
28 | # Create a GitHub object and remember it as as the context object.
29 | # From this point onwards other commands can refer to it by using the
30 | # @pass_github decorator.
31 | ctx.obj = Awesome()
32 |
33 | @cli.command()
34 | @click.argument('readme_path')
35 | @pass_awesome
36 | def rock_it(awesome, readme_path):
37 | """Updates the README.
38 |
39 | :type awesome: :class:`Awesome`
40 | :param awesome: Stores an instance of Awesome used to update the README.
41 |
42 | :type readme_path: str
43 | :param readme_path: The README path
44 | """
45 | awesome.rock_it(readme_path)
46 |
--------------------------------------------------------------------------------
/awesome/lib/__init__.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
--------------------------------------------------------------------------------
/awesome/lib/github.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License"). You
6 | # may not use this file except in compliance with the License. A copy of
7 | # the License is located at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # or in the "license" file accompanying this file. This file is
12 | # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
13 | # ANY KIND, either express or implied. See the License for the specific
14 | # language governing permissions and limitations under the License.
15 |
16 | from getpass import getpass
17 | import os
18 | try:
19 | # Python 3
20 | import configparser
21 | except ImportError:
22 | # Python 2
23 | import ConfigParser as configparser
24 |
25 | import click
26 | from githubcli.lib.github3 import authorize, login
27 | from githubcli.lib.github3.exceptions import UnprocessableEntity
28 |
29 |
30 | class GitHub(object):
31 | """Provides integration with the GitHub API.
32 |
33 | Attributes:
34 | * api: An instance of github3 to interact with the GitHub API.
35 | * CONFIG: A string representing the config file name.
36 | * CONFIG_SECTION: A string representing the main config file section.
37 | * CONFIG_USER_LOGIN: A string representing the user login config.
38 | * CONFIG_USER_PASS: A string representing the user pass config.
39 | * CONFIG_USER_TOKEN: A string representing the user token config.
40 | * CONFIG_URL: A string representing the jump to url config file name.
41 | * CONFIG_URL_SECTION: A string representing the jump to url config
42 | file section.
43 | * GITHUB_ISSUES: A string representing the GitHub issues url portion.
44 | * GITHUB_URL: A string representing the GitHub main url.
45 | * user_login: A string that represents the user's login in
46 | ~/.githubconfig
47 | * user_pass: A string that represents the user's pass in
48 | ~/.githubconfig
49 | * user_token: A string that represents the user's token in
50 | ~/.githubconfig
51 | """
52 |
53 | CONFIG = '.githubconfig'
54 | CONFIG_SECTION = 'github'
55 | CONFIG_USER_LOGIN = 'user_login'
56 | CONFIG_USER_PASS = 'user_pass'
57 | CONFIG_USER_TOKEN = 'user_token'
58 | CONFIG_URL = '.githubconfigurl'
59 | CONFIG_URL_SECTION = 'url'
60 | CONFIG_AVATAR = '.githubconfigavatar.png'
61 | GITHUB_ISSUES = 'issues/'
62 | GITHUB_URL = 'https://github.com/'
63 |
64 | def __init__(self):
65 | """Inits GitHub.
66 |
67 | Args:
68 | * None.
69 |
70 | Returns:
71 | None.
72 | """
73 | self.api = None
74 | self.user_login = None
75 | self.user_pass = None
76 | self.user_token = None
77 | self._login()
78 |
79 | def _github_config(self, config_file_name):
80 | """Attempts to find the github config file.
81 |
82 | Adapted from https://github.com/sigmavirus24/github-cli.
83 |
84 | Args:
85 | * config_file_name: A String that represents the config file name.
86 |
87 | Returns:
88 | A string that represents the github config file path.
89 | """
90 | home = os.path.abspath(os.environ.get('HOME', ''))
91 | config_file_path = os.path.join(home, config_file_name)
92 | return config_file_path
93 |
94 | def _login(self):
95 | """Logs into GitHub.
96 |
97 | Adapted from https://github.com/sigmavirus24/github-cli.
98 |
99 | TODO: Two factor authentication does not seem to be triggering the
100 | SMS code: https://github.com/sigmavirus24/github3.py/issues/387
101 |
102 | Args:
103 | * None.
104 |
105 | Returns:
106 | None.
107 | """
108 | # Get the full path to the configuration file
109 | config = self._github_config(self.CONFIG)
110 | parser = configparser.RawConfigParser()
111 | # Check to make sure the file exists and we are allowed to read it
112 | if os.path.isfile(config) and os.access(config, os.R_OK | os.W_OK):
113 | parser.readfp(open(config))
114 | self.user_login = parser.get(self.CONFIG_SECTION,
115 | self.CONFIG_USER_LOGIN)
116 | self.api = login(token=parser.get(self.CONFIG_SECTION,
117 | self.CONFIG_USER_TOKEN),
118 | two_factor_callback=self._two_factor_code)
119 | else:
120 | # Either the file didn't exist or we didn't have the correct
121 | # permissions
122 | user_login = ''
123 | while not user_login:
124 | user_login = input('User Login: ')
125 | user_pass = ''
126 | while not user_pass:
127 | user_pass = getpass('Password: ')
128 | auth = None
129 | try:
130 | # Get an authorization for this
131 | auth = authorize(
132 | user_login,
133 | user_pass,
134 | scopes=['user', 'repo', 'gist'],
135 | note='githubcli',
136 | note_url='https://github.com/donnemartin/github-cli'
137 | )
138 | except UnprocessableEntity:
139 | click.secho('Error creating token.\nVisit the following '
140 | 'page and verify you do not have an existing '
141 | 'token named "githubcli":\n'
142 | 'See https://github.com/settings/tokens\n'
143 | 'If a token already exists update your ' +
144 | self.githubconfig + ' file with your user_token.',
145 | fg='red')
146 | parser.add_section(self.CONFIG_SECTION)
147 | parser.set(self.CONFIG_SECTION, self.CONFIG_USER_LOGIN, user_login)
148 | parser.set(self.CONFIG_SECTION, self.CONFIG_USER_PASS, user_pass)
149 | parser.set(self.CONFIG_SECTION, self.CONFIG_USER_TOKEN, auth.token)
150 | self.api = login(token=auth.token,
151 | two_factor_callback=self._two_factor_code)
152 | # Create the file if it doesn't exist. Otherwise completely blank
153 | # out what was there before. Kind of dangerous and destructive but
154 | # somewhat necessary
155 | parser.write(open(config, 'w+'))
156 |
157 | def _two_factor_code(self):
158 | """Callback if two factor authentication is requested.
159 |
160 | Args:
161 | * None.
162 |
163 | Returns:
164 | A string that represents the user input two factor
165 | authentication code.
166 | """
167 | code = ''
168 | while not code:
169 | code = input('Enter 2FA code: ')
170 | return code
171 |
--------------------------------------------------------------------------------
/codecov.yml:
--------------------------------------------------------------------------------
1 | comment:
2 | layout: header, changes, diff
3 |
4 | coverage:
5 | ignore:
6 | - awesome/lib/*
7 | - tests/*
8 |
--------------------------------------------------------------------------------
/requirements-dev.txt:
--------------------------------------------------------------------------------
1 | codecov>=1.3.3
2 | flake8>=2.4.1
3 | mock>=1.0.1
4 | pexpect>=3.3
5 | pytest>=2.7.0
6 | tox>=1.9.2
7 | sphinx>=1.3.1
8 | Sphinx-PyPI-upload>=0.2.1
9 | gitchangelog>=2.2.1
10 |
--------------------------------------------------------------------------------
/scripts/create_changelog.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | gitchangelog > CHANGELOG_DRAFT
4 | pandoc --from=markdown --to=rst --output=CHANGELOG.rst CHANGELOG.md
5 |
--------------------------------------------------------------------------------
/scripts/create_readme_rst.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | pandoc --from=markdown --to=rst --output=docs/source/README.rst README.md
--------------------------------------------------------------------------------
/scripts/run_code_checks.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | flake8 --max-line-length=80 --exclude=build,scratch,docs .
4 |
--------------------------------------------------------------------------------
/scripts/set_changelog_as_readme.sh:
--------------------------------------------------------------------------------
1 | mv README.md README_temp.md
2 | cp CHANGELOG.rst README.md
--------------------------------------------------------------------------------
/scripts/set_changelog_as_readme_undo.sh:
--------------------------------------------------------------------------------
1 | mv README_temp.md README.md
--------------------------------------------------------------------------------
/scripts/update_docs.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | scripts/create_readme_rst.sh
4 | python setup.py build_sphinx
--------------------------------------------------------------------------------
/scripts/upload_pypi.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # N. Set CHANGELOG as `README.md`
4 | scripts/set_changelog_as_readme.sh
5 | # O. Register package with PyPi
6 | python setup.py register -r pypi
7 | # P. Upload to PyPi
8 | python setup.py sdist upload -r pypi
9 | # Q. Upload Sphinx docs to PyPi
10 | python setup.py upload_sphinx
11 | # R. Restore `README.md`
12 | scripts/set_changelog_as_readme_undo.sh
13 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [metadata]
2 | description-file = README.md
3 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | from awesome.__init__ import __version__
2 | try:
3 | from setuptools import setup, find_packages
4 | except ImportError:
5 | from distutils.core import setup
6 |
7 | setup(
8 | description='A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources.',
9 | author='Donne Martin',
10 | url='https://github.com/donnemartin/awesome-aws',
11 | download_url='https://github.com/donnemartin/awesome-aws',
12 | author_email='donne.martin@gmail.com',
13 | version=__version__,
14 | license='Creative Commons Attribution 4.0',
15 | install_requires=[
16 | 'click>=5.1',
17 | 'githubcli>=0.1.0',
18 | 'colorama>=0.3.3',
19 | ],
20 | extras_require={
21 | 'testing': [
22 | 'mock>=1.0.1',
23 | 'tox>=1.9.2'
24 | ],
25 | },
26 | entry_points={
27 | 'console_scripts': 'awesome = awesome.awesome_cli:AwesomeCli.cli'
28 | },
29 | packages=find_packages(),
30 | scripts=[],
31 | name='awesome-aws',
32 | classifiers=[
33 | 'Intended Audience :: Developers',
34 | 'Intended Audience :: System Administrators',
35 | 'Natural Language :: English',
36 | 'Programming Language :: Python',
37 | 'Programming Language :: Python :: 3',
38 | 'Programming Language :: Python :: 3.3',
39 | 'Programming Language :: Python :: 3.4',
40 | 'Programming Language :: Python :: 3.5',
41 | 'Programming Language :: Python :: 3.6',
42 | 'Programming Language :: Python :: 3.7',
43 | 'Topic :: Software Development',
44 | 'Topic :: Software Development :: Libraries :: Python Modules',
45 | ],
46 | )
47 |
--------------------------------------------------------------------------------
/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
--------------------------------------------------------------------------------
/tests/data/README.md:
--------------------------------------------------------------------------------
1 | ## The Fiery Meter of AWSome
2 | * [user/foo](https://github.com/user/foo) - desc
3 | * [user/bar](https://github.com/user/bar) - desc
4 | * [user/baz :fire:](https://github.com/user/baz) - desc
5 | * [user/qux :fire::fire:](https://github.com/user/qux) - desc
6 | * [user/foobar :fire:](https://github.com/user/foobar) - desc
7 | * [user/bazqux :fire::fire::fire:](https://github.com/user/bazqux) - desc
8 | * [user/exclude](https://github.com/donnemartin) - desc
9 | * [user/exclude](https://github.com/donnemartin/awesome-aws) - desc
10 | * [user/exclude](https://github.com/sindresorhus/awesome) - desc
11 | * [user/exclude](https://github.com/kilimchoi/engineering-blogs) - desc
12 | * [user/exclude](https://github.com/user/foo#)
13 | * [user/broken](https://github.com/user/broken)
14 |
--------------------------------------------------------------------------------
/tests/data/README_RESULT.md:
--------------------------------------------------------------------------------
1 | ## The Fiery Meter of AWSome
2 | * [user/foo](https://github.com/user/foo) - desc
3 | * [user/bar :fire:](https://github.com/user/bar) - desc
4 | * [user/baz :fire::fire:](https://github.com/user/baz) - desc
5 | * [user/qux :fire::fire::fire:](https://github.com/user/qux) - desc
6 | * [user/foobar :fire::fire::fire::fire:](https://github.com/user/foobar) - desc
7 | * [user/bazqux :fire::fire::fire::fire::fire:](https://github.com/user/bazqux) - desc
8 | * [user/exclude](https://github.com/donnemartin) - desc
9 | * [user/exclude](https://github.com/donnemartin/awesome-aws) - desc
10 | * [user/exclude](https://github.com/sindresorhus/awesome) - desc
11 | * [user/exclude](https://github.com/kilimchoi/engineering-blogs) - desc
12 | * [user/exclude](https://github.com/user/foo#)
13 |
--------------------------------------------------------------------------------
/tests/data/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/donnemartin/awesome-aws/5a49af5f118cef44bd91cdcb7aafe045ef31ad60/tests/data/__init__.py
--------------------------------------------------------------------------------
/tests/data/readme_expected.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | readme_expected = [
9 | '## The Fiery Meter of AWSome\n',
10 | '* [user/foo](https://github.com/user/foo) - desc\n',
11 | '* [user/bar :fire:](https://github.com/user/bar) - desc\n',
12 | '* [user/baz :fire::fire:](https://github.com/user/baz) - desc\n',
13 | '* [user/qux :fire::fire::fire:](https://github.com/user/qux) - desc\n',
14 | '* [user/foobar :fire::fire::fire::fire:](https://github.com/user/foobar) - desc\n',
15 | '* [user/bazqux :fire::fire::fire::fire::fire:](https://github.com/user/bazqux) - desc\n',
16 | '* [user/exclude](https://github.com/donnemartin) - desc\n',
17 | '* [user/exclude](https://github.com/donnemartin/awesome-aws) - desc\n',
18 | '* [user/exclude](https://github.com/sindresorhus/awesome) - desc\n',
19 | '* [user/exclude](https://github.com/kilimchoi/engineering-blogs) - desc\n',
20 | '* [user/exclude](https://github.com/user/foo#)\n',
21 | ]
22 |
--------------------------------------------------------------------------------
/tests/mock_github.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | from githubcli.lib.github3 import null
9 |
10 |
11 | class MockRepo(object):
12 |
13 | def __init__(self, name, stargazers_count):
14 | self.name = name
15 | self.stargazers_count = stargazers_count
16 |
17 |
18 | class MockGitHubApi(object):
19 |
20 | def __init__(self, repos):
21 | self.repos = repos
22 | self.ratelimit_remaining = 9000
23 |
24 | def repository(self, _, repo_name):
25 | for repo in self.repos:
26 | if repo.name == repo_name:
27 | return repo
28 | return null.NullObject()
29 |
30 |
31 | class MockGitHub(object):
32 |
33 | def __init__(self, repos):
34 | self.api = MockGitHubApi(repos)
35 |
--------------------------------------------------------------------------------
/tests/run_tests.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | # Copyright 2015 Donne Martin. All Rights Reserved.
5 | #
6 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
7 | # http://creativecommons.org/licenses/by/4.0/
8 |
9 | import unittest
10 |
11 | from test_awesome import AwesomeTest # NOQA
12 | from test_awesome_cli import AwesomeCliTest # NOQA
13 | try:
14 | from test_cli import CliTest # NOQA
15 | except:
16 | # pexpect import fails on Windows
17 | pass
18 |
19 |
20 | if __name__ == '__main__':
21 | unittest.main()
22 |
--------------------------------------------------------------------------------
/tests/test_awesome.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | import mock
9 | import os
10 | import unittest
11 |
12 | from awesome.awesome import Awesome
13 | from tests.data.readme_expected import readme_expected
14 | from tests.mock_github import MockGitHub, MockRepo
15 |
16 |
17 | class AwesomeTest(unittest.TestCase):
18 |
19 | def setUp(self):
20 | self.repos = self.create_repos()
21 | self.github = MockGitHub(self.repos)
22 | self.awesome = Awesome(self.github)
23 |
24 | def create_repos(self):
25 | return [
26 | MockRepo('foo', 10),
27 | MockRepo('bar', 150),
28 | MockRepo('baz', 270),
29 | MockRepo('qux', 550),
30 | MockRepo('foobar', 1200),
31 | MockRepo('bazqux', 9000),
32 | MockRepo('awesome-aws', 9000),
33 | ]
34 |
35 | @mock.patch('awesome.awesome.click')
36 | def test_rock_it(self, mock_click):
37 | README = os.path.join(os.path.dirname(__file__),
38 | 'data/README.md')
39 | README_RESULT = os.path.join(os.path.dirname(__file__),
40 | 'data/README_RESULT.md')
41 | self.awesome.rock_it(README, README_RESULT)
42 | result = []
43 | with open(README_RESULT, 'r') as f:
44 | for line in f:
45 | result.append(line)
46 | assert result == readme_expected
47 | assert mock.call.secho('Broken repos:', fg='red') \
48 | in mock_click.mock_calls
49 | assert mock.call.secho(' https://github.com/user/broken', fg='red') \
50 | in mock_click.mock_calls
51 | assert mock.call.secho('Rate limit: 9000', fg='blue') \
52 | in mock_click.mock_calls
53 | assert mock.call.secho('Updated ' + README_RESULT, fg='blue') \
54 | in mock_click.mock_calls
55 |
--------------------------------------------------------------------------------
/tests/test_awesome_cli.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | import unittest
9 |
10 | from click.testing import CliRunner
11 |
12 | from awesome.awesome_cli import AwesomeCli
13 |
14 |
15 | class AwesomeCliTest(unittest.TestCase):
16 |
17 | def setUp(self):
18 | self.runner = CliRunner()
19 | self.awesome_cli = AwesomeCli()
20 |
21 | def test_cli(self):
22 | result = self.runner.invoke(self.awesome_cli.cli)
23 | assert result.exit_code == 0
24 |
--------------------------------------------------------------------------------
/tests/test_cli.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright 2015 Donne Martin. All Rights Reserved.
4 | #
5 | # Creative Commons Attribution 4.0 International License (CC BY 4.0)
6 | # http://creativecommons.org/licenses/by/4.0/
7 |
8 | import pip
9 | import pexpect
10 | import unittest
11 |
12 |
13 | class CliTest(unittest.TestCase):
14 |
15 | def test_run_cli(self):
16 | self.cli = None
17 | self.step_cli_installed()
18 | self.step_run_cli()
19 | self.step_see_prompt()
20 | self.step_send_ctrld()
21 |
22 | def step_cli_installed(self):
23 | """
24 | Make sure haxor is in installed packages.
25 | """
26 | dists = set([di.key for di in pip.get_installed_distributions()])
27 | assert 'haxor' in dists
28 |
29 | def step_run_cli(self):
30 | """
31 | Run the process using pexpect.
32 | """
33 | self.cli = pexpect.spawnu('haxor')
34 |
35 | def step_see_prompt(self):
36 | """
37 | Expect to see prompt.
38 | """
39 | self.cli.expect('haxor> ')
40 |
41 | def step_send_ctrld(self):
42 | """
43 | Send Ctrl + D to exit.
44 | """
45 | self.cli.sendcontrol('d')
46 | self.cli.expect(pexpect.EOF)
47 |
--------------------------------------------------------------------------------
/tox.ini:
--------------------------------------------------------------------------------
1 | # Tox (http://tox.testrun.org/) is a tool for running tests
2 | # in multiple virtualenvs. This configuration file will run the
3 | # test suite on all supported python versions. To use it, "pip install tox"
4 | # and then run "tox" from this directory.
5 |
6 | [tox]
7 | envlist = py34, py35, py36, py37
8 |
9 | [testenv]
10 | passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH
11 | deps =
12 | coverage
13 | mock
14 | commands =
15 | coverage erase
16 | coverage run {toxinidir}/tests/run_tests.py
17 | coverage report --include={toxinidir}/*awesome/* --omit={toxinidir}/*awesome/lib/* -m
18 |
--------------------------------------------------------------------------------