Skip to content

Commit 4792f7e

Browse files
Merge pull request #69 from kamranahmedse/master
Create a new pull request by comparing changes across two branches
2 parents d70122f + e9f3a61 commit 4792f7e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+324
-2
lines changed

public/best-practices/aws.png

469 KB
Loading

public/jsons/best-practices/aws.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

public/pdfs/best-practices/aws.pdf

66.9 KB
Binary file not shown.

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ We have also added a new form of visual content covering best practices:
6262

6363
- [Frontend Performance Best Practices](https://roadmap.sh/best-practices/frontend-performance)
6464
- [API Security Best Practices](https://roadmap.sh/best-practices/api-security)
65+
- [AWS Best Practices](https://roadmap.sh/best-practices/aws)
6566

6667
![](https://i.imgur.com/waxVImv.png)
6768

src/components/FAQs/FAQs.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ if (faqs.length === 0) {
1919
}
2020
---
2121

22-
<div class='border-t bg-gray-100'>
22+
<div class='border-t bg-gray-100 mt-8'>
2323
<div class='container'>
2424
<div class='flex justify-between relative -top-5'>
2525
<h1 class='text-sm sm:text-base font-medium py-1 px-3 border bg-white rounded-md'>Frequently Asked Questions</h1>

src/data/best-practices/aws/aws.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
jsonUrl: '/jsons/best-practices/aws.json'
3+
pdfUrl: '/pdfs/best-practices/aws.pdf'
4+
order: 3
5+
briefTitle: 'AWS'
6+
briefDescription: 'AWS Best Practices'
7+
isNew: true
8+
isUpcoming: false
9+
title: 'AWS Best Practices'
10+
description: 'Detailed list of best practices for Amazon Web Services (AWS)'
11+
dimensions:
12+
width: 968
13+
height: 1770.7
14+
schema:
15+
headline: 'AWS Best Practices'
16+
description: 'Detailed list of best practices for Amazon Web Services (AWS). Each best practice carries further details and how to implement that best practice.'
17+
imageUrl: 'https://roadmap.sh/best-practices/aws.png'
18+
datePublished: '2023-02-21'
19+
dateModified: '2023-02-21'
20+
seo:
21+
title: 'AWS Best Practices'
22+
description: 'Detailed list of best practices for Amazon Web Services (AWS). Each best practice carries further details and how to implement that best practice.'
23+
keywords:
24+
- 'Amazon Web Services Tips'
25+
- 'AWS Tips'
26+
- 'AWS Best Practices'
27+
- 'Amazon Web Services Best Practices'
28+
---
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Alerts as Notifications
2+
3+
> Get your alerts to become notifications.
4+
5+
If you've set everyting up correctly, your health checks should automatically destroy bad instances and spawn new ones. There's usually no action to take when getting a CloudWatch alert, as everything should be automated. If you're getting alerts where manual intervention is required, do a post-mortem and figure out if there's a way you can automate the action in future. The last time I had an actionable alert from CloudWatch was about a year ago, and it's extremely awesome not to be woken up at 4am for ops alerts any more.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# App Changes for AWS
2+
3+
While a lot of applications can probably just be deployed to an EC2 instance and work well, if you're coming from a physical environment, you may need to re-architect your application in order to accomodate changes. Don't just think you can copy the files over and be done with it.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Application State
2+
3+
> Do not store application state on servers.
4+
5+
The reason for this is so that if you server gets killed, you won't lose any application state. To that end, sessions should be stored in a database (or some other sort of central storage; memcached, redis, etc.), not on the local filesystem. Examples:
6+
7+
- Logs should be handled via syslog (or similar) and sent to a remote store.
8+
- Uploads should go direct to S3 (don't store on local filesystem and have another process move to S3 for example). For S3 you can use [pre-signed URLs](http://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html) to let your users directly upload to S3 by bypassing your server entirely.
9+
- Any post-processing or long running tasks should be done via an asynchronous queue (SQS is great for this).
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Automate Everything
2+
3+
This is more of general operations advice than AWS specific, but everything needs to be automated. Recovery, deployment, failover, etc. Package and OS updates should be managed by something, whether it's just a bash script, or Chef/Puppet, etc. You shouldn't have to care about this stuff. As mentioned in a different tip, you should also make sure to disable SSH access, as this will pretty quickly highlight any part of your process that isn't automated. Remember the key phrase from the earlier tip, if you have to SSH into your servers, then your automation has failed.

0 commit comments

Comments
 (0)