AWS/Quick Reference
From r00tedvw.com wiki
Quick Reference | AWS CLI | CloudFormation
Logging in to EC2 instance
When creating the EC2 instance, you should be given a SSH key (.pem), you will use this to log into the instance. Most likely, you will need to change the file permissions of the SSH key. I also like to move it to a common location.
~$ mv /home/r00t/downloads/grafana01.pem /home/r00t/.ssh/ ~$ chmod 600 /home/r00t/.ssh/grafana01.pem
The Username will depend on the type of AMI image used:
| AMI Type | Username |
|---|---|
| Amazon Linux 2 (AMI) | ec2-user
|
| Centos AMI | centos
|
| Debian AMI | admin or root
|
| Fedora AMI | ec2-user or fedora
|
| RHEL AMI | ec2-user or root
|
| Suse AMI | ec2-user or root
|
| Ubuntu AMI | ubuntu
|
~$ ssh -i ~/.ssh/grafana01.pem [email protected]
Cloud Formation
create an S3 bucket with a lifecycle policy. export the name to be used outside of Cloud Formation. It also has a Public read ACL, making the bucket contents available to the public (non-authenticated users)
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"S3Bucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"AccessControl" : "PublicRead",
"LifecycleConfiguration": {
"Rules": [
{
"Status": "Enabled",
"ExpirationInDays": "7"
}
]
}
}
}
},
"Outputs": {
"S3BucketName": {
"Value": {
"Ref": "S3Bucket"
},
"Export": {
"Name": {"Fn::Sub": "${AWS::StackName}-S3BucketName"}
}
}
}
}
CodeBuild
Deploy Cloud formation template and then copy directory recursively to S3 bucket.
version: 0.2
phases:
install:
runtime-versions:
python: 3.7
commands:
- echo $HOSTNAME
- uname -a
- gitdir=$(pwd)
- branch=$(basename $CODEBUILD_SOURCE_VERSION)
- stackname="a$CODEBUILD_PROJECT_UUID"
- printenv
- aws cloudformation deploy --template-file $gitdir/test.json --stack-name $stackname
- s3bucketname=$(aws cloudformation describe-stacks --stack-name $stackname | jq '.Stacks[0].Outputs[0].OutputValue' | sed s'/"//g')
- aws s3 mv $gitdir s3://$s3bucketname/$branch/ --recursive