JoeAWS! :)
Cloud Computing
-------------------------
Storage s3, EBS, ECS, FSx, S3Glacer
Compute EC2
Networking Virtual Private cloud
Databases RDS, DynamoDB, DocumentDB\
Security
Messaging
HA/FT
Development tools
Management Tools
- Cost Explorer
Automation Tools
- CloudWatch
AI/ML Tools
AWS CDK
- Automation Scripts [ JS and C# ]
CI/CD PIPELINE
Technology used to crate and maintain this page
- HTML and JavaScript
- VS Code
- Node, NPM, and various node modules/code libraries
- S3 Bucket - Web Hosting enabled
- Route 53 - Hosted Zone, Simple Routing
- AWS Certificate Manager
- CloudFront distribution
- Code Commit / git
- Code Pipeline
DynamoDB
Calculating Read/Write Capacity Requirements
Examples are under development...
S3 - Simple Storage Service
// JAVA SCRIPT
let AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
let s3 = new AWS.S3();
var params = {};
s3.listBuckets(params, function(err, data) {
if (err) {console.log(err, err.stack);}
else {
data.Buckets.forEach(bucket => {
showBucketTags(bucket);
});
} //end:
}); //end:fn listBuckets
function showBucketTags(aBucket) {
var params = { Bucket: aBucket.Name };
s3.getBucketTagging(params, function(err, data) {
if (err) { console.log(err, err.stack);}
else {
if(data.TagSet != undefined){
if(data.TagSet.length > 0 ){
console.log(aBucket.Name);
data.TagSet.forEach(tag => {
if(tag!= undefined){
console.log(tag);
}
});
}
}
} //end:if
}); //end:fn getBucketTagging
}//end:fn showBucketTags
// JSON RESULT
www.someWebsite-bucket.com
{ Key: 'Project', Value: 'New Website initiative' }
{ Key: 'ItemClass', Value: 'SPA Website Container' }
{ Key: 'ItemType', Value: 'S3Bucket' }
company-finance-bucket
{ Key: 'Project', Value: 'Company financial information' }
{ Key: 'ItemClass', Value: 'confidential' }
{ Key: 'ItemType', Value: 'financial records' }
DynamoDB
// JAVASCRIPT DESCRIBE TABLE
let AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
let dynamodb = new AWS.DynamoDB();
let tableName = process.argv[2];
var params = { TableName: tableName };
dynamodb.describeTable(params, function(err, data) {
if (err) {console.log(err, err.stack);} // an error occurred
else {
console.log(JSON.stringify(data, null, 2)); // successful response
}
// SAMPLE RESPONSE
/*
data = {
Table: {
AttributeDefinitions: [
{
AttributeName: "Artist",
AttributeType: "S"
},
{
AttributeName: "SongTitle",
AttributeType: "S"
}
],
CreationDateTime: ,
ItemCount: 0,
KeySchema: [
{
AttributeName: "Artist",
KeyType: "HASH"
},
{
AttributeName: "SongTitle",
KeyType: "RANGE"
}
],
ProvisionedThroughput: {
NumberOfDecreasesToday: 1,
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
},
TableName: "Music",
TableSizeBytes: 0,
TableStatus: "ACTIVE"
}
}
*/
});
// JSON RESULT - Contacts table
{
"Table": {
"AttributeDefinitions": [
{
"AttributeName": "ContactID",
"AttributeType": "N"
},
{
"AttributeName": "LastName",
"AttributeType": "S"
}
],
"TableName": "Contacts",
"KeySchema": [
{
"AttributeName": "ContactID",
"KeyType": "HASH"
},
{
"AttributeName": "LastName",
"KeyType": "RANGE"
}
],
"TableStatus": "ACTIVE",
"CreationDateTime": "2019-03-26T15:46:22.515Z",
"ProvisionedThroughput": {
"NumberOfDecreasesToday": 0,
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 5
},
"TableSizeBytes": 48,
"ItemCount": 2,
"TableArn": "arn:aws:dynamodb:us-east-1:175280596862:table/Contacts",
"TableId": "e980c964-cbfb-433d-a7dd-2eed01bd738e"
}
}
01a