Try   HackMD

ADL Tech Series: Containers - Tips and Tricks

alt text The AWS Adelaide Tech Series brings in-person sessions to level-up your skills in key cloud domains. Meet the local team in attendance (hover for names)

alt text alt text alt text alt text alt text alt text

This is our list of hints and tips for this workshop.

JOIN EVENT: https://catalog.workshops.aws/join

  1. Complete OTP to an email address (Any that you can access over public internet)
  2. Code will be on the TV screen for you to type.
  3. Read "Terms and Conditions", select "I agree with the Terms and Conditions" and click "Join event".
  4. On the next page, click "Open AWS Console" URL link.
  5. Skip the entire section: "Before starting the workshop" this is already done!
  6. Go straight to the first lab Deploy With AWS Console

Administrivia, Schedule and Planning

The event will be delivered as follows:

Lab Topics Sections Duration
One Amazon ECR All 20
Two Amazon ECS All 40
Three Monitoring All 20
Four Autoscaling All 30
Five CI/CD All 20

If you've reached this far, you can continue onto the Infrastructure as Code session using copilot CLI or wrap up for drinks! Don't forget the survey.

Cats and Dogs Labs

Refer to the following headings when working through the content and getting stuck.

Auto Scaling > Service Auto Scale > Service Load Test

The load test example looks like this;

siege -c 200 -i [Your ALB DNS name] + '/'

this should be interpreted with your DNS ELB name like the following;

siege -c 200 -i http://demogo-alb-1631020000.us-west-2.elb.amazonaws.com/

NOTE: Make sure that '/' is at the end of the ALB DNS name, because the web service is bound to the default path (/). Without it, the traffic burst will not hit our web application

Auto Scaling > Cluster Auto Scale > Cluster Load Test

The load test example looks like this;

siege -c 500 -i [Your ALB DNS name] + /

You will get warning message from siege saying it can only do 255 concurrent sessions without changing a configuration file. This will be enough to force a scaling event in the cluster. Continue with the test.

CI/CD > AWS CodeCommit

If you don't see any files give the UI 1-2 minutes to catch up on the first push.

CI/CD > CodePipeline Setting

Get Account Information

If you do not know how to get your <YOUR REGION> and <YOUR ACCOUNT ID>, then perform the following in the Cloud9 terminal;

echo ${AWS_REGION} && echo ${AWS_ACCOUNT_ID}

Update your build spec lines 7 & 8, then save the file.

Build Step Failure

Check 1 - Review the build logs
If your build step fails, make sure you have updated the IAM role to include the required permissions and then retry the step.

Check 2 - Review the build logs
Check if your buildspec.yml has been pushed to your repository using cloud9.

[Container] 2023/06/06 02:55:00 Phase context status code: YAML_FILE_ERROR Message: YAML file does not exist

If it hasn't perform the following in Cloud9 terminal:

cd ~/environment/dogs
git add buildspec.yml
git commit -m "add buildspec.yml"
git push

Navigate back to the dogs-cicd Pipeline you will see the Build is 'in progress', this is because it has been triggered by the source repository event from the git push in the previous step.

CI/CD Deploy Test

You may notice that index.html has changed since the last revision of the workshop. The column 17 doesn't match where the H1 tag is. Instead update the H1 tag on column 23

What is Amazon Elastic Container Service

A good place to start learning about Amazon ECS is https://aws.amazon.com/ecs/faqs/

alt text

ECS Best Practices

Best Practices - Running your application with Amazon ECS
https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/application.html
Well Architected - Container Build Lens
https://docs.aws.amazon.com/wellarchitected/latest/container-build-lens/container-build-lens.html

ECS Lens - Well Architected Tool coming soon!

Container Optimisation

General community guidance on container optimisation

Migration

Migration tools and strategies

Interested in these? Chat with us about the App2Container Workshop which includes Refactor Spaces.
https://catalog.us-east-1.prod.workshops.aws/workshops/2c1e5f50-0ebe-4c02-a957-8a71ba1e8c89/en-US

Self Paced Learning

Badges & Training - .NET on AWS
https://aws.amazon.com/developer/language/net/badges-and-training/
AWS Ramp-Up Guide - Containers
https://d1.awsstatic.com/training-and-certification/ramp-up_guides/Ramp-Up_Guide_Containers.pdf
AWS Skill Builder - Containers Learning Path
https://explore.skillbuilder.aws/learn/public/learning_plan/view/83/containers-learning-plan

Kubernetes

What about Elastic Kubernetes Service (EKS)?

EKS Best Practices Guides - The primary goal of this project is to offer a set of best practices for day 2 operations for Amazon EKS. We elected to publish this guidance to GitHub so we could iterate quickly, provide timely and effective recommendations for variety of concerns, and easily incorporate suggestions from the broader community
https://aws.github.io/aws-eks-best-practices/

EKS Workshop - Practical exercises to learn about Amazon Elastic Kubernetes Service
https://www.eksworkshop.com/docs/introduction/

Interested in this? Chat with us about running the eksworkshop.com.