πŸ₯ž backlog

Module-Cloud πŸ”—

[TECH ED] Coursework feedback πŸ”— Clone

https://github.com/CodeYourFuture/Module-Cloud/issues/

Why are we doing this?

The CYF curriculum is an open source project. Like all software, it is continually revised and improved in iterations.

Help improve the curriculum by giving quick emoji feedback on any assignment.

Screenshot 2024-02-23 at 14 06 56

Feedback on this assignment by pressing the emoji reaction button on the top comment.

Emoji Key

πŸ‘ = Useful
πŸ‘Ž = Not useful

πŸš€ = Way too much time given
πŸ˜• = Not enough time given

You are invited to give feedback on any assignment in this way. Do this on the CYF issue, not your copy, so CYF can track it using the GitHub reactions API.

Maximum time in hours

.05

How to submit

Click the emoji button on the first post on any coursework assignment.

  • 🎯 Topic Iteration
  • 🎯 Topic Teamwork
  • 🏝️ Priority Stretch
  • πŸ¦” Size Tiny
  • πŸ“… Week 4
[TECH ED] Develop extra skills with Udemy courses πŸ”— Clone

https://codeyourfuture.udemy.com/learning-paths/2897212/

Why are we doing this?

We have a partnership with Udemy and you have access to thousands of specialised courses. Use this resource to develop your skills and consolidate your understanding.

Don’t like these courses? Suggest better ones. πŸ˜‰

Maximum time in hours

n/a

How to get help

The best way to make progress in courses is to form a study group and do a course together. You don’t need to overcomplicate this – just checking in for 15 minutes a week with each other can help you focus, and finish.

  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Teamwork
  • 🎯 Topic Time Management
  • 🏝️ Priority Stretch
  • πŸ‚ Size Medium
  • πŸ“… Sprint 2
[TECH ED] Check module success criteria πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/success/

Why are we doing this?

πŸ”‘ The most important thing is that you are secure in your understanding.

At the end of the course, we will expect you to deploy infrastructure as code using your understanding. If you cannot build things, we cannot put you forward for jobs. It is in your personal interest to make sure you have properly understood this track.

To join the Cloud employment pool, you will need to successfully complete this track. How will you as a cohort meet the success criteria? Discuss it in your channel and make a plan together.

πŸ§‘πŸΏβ€πŸŽ€ good strategies

  • asking volunteers to review your code
  • helping each other with coursework blockers
  • arranging midweek study sessions
  • using Saturday time to review code and demo progress

πŸ™…πŸΏ bad strategies

  • opening empty PRs or pretending to do work
  • copying and pasting
  • breaking the Trainee Agreement
  • mistaking the measure for the target

Maximum time in hours

.5

How to get help

Discuss with your cohort. Support each other.

How to submit

In the penultimate sprint of your module you will need a representative to report to the organisation. Post your decision on Slack. Here’s your template, fill in your details and delete as appropriate:

# πŸ“ˆ Cohort Progress Report from @cohort-name to @programme-team
  • criterion
  • criterion
  • criterion
  • criterion

βœ… We are on target to complete this module.
β›” We are taking a consolidation week to meet our targets.

  • 🎯 Topic Code Review
  • 🎯 Topic Communication
  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Teamwork
  • 🎯 Topic Testing
  • 🎯 Topic Time Management
  • πŸ• Priority Mandatory
  • πŸ¦” Size Tiny
  • πŸ“… Week 1
  • πŸ“… Week 4
[TECH ED] Play the Bandit πŸ”— Clone

https://overthewire.org/wargames/bandit/

Why are we doing this?

Basic Linux skills are essential for roles in Cloud, DevOps, Cyber, and SRE. Junior Cloud and DevOps roles are growing in the industry. It’s a good idea to practice Linux skills to make yourself more employable. During this module, you will execute commands in the terminal to create files and run scripts, so you will have many chances to practice your command line skills.

Your goal is to get to Level 30 by the end of the module. πŸ’ͺ You can do this!

Maximum time in hours

n/a stretch

How to get help

Work through the puzzles together in #cyf-over-the-wire

Take this Linux 101 course if you are enjoying the puzzles

How to submit

There is no submission step. However, to apply for some roles and some courses (like CYF+ ) you must demonstrate these skills, so it would be a good idea to learn them.

Anything else?

Here’s a ChatGPT prompt you can use to get the best, most helpful learning experience:

Please act as a friendly, warm, straightforward technical mentor. You are an experienced Site Reliability Engineer who uses the terminal regularly and understands all shell commands in bash. You can explain clearly, using English mostly at CEFR B2 level, how to execute shell commands and how to navigate Linux file systems. We will be playing The Bandit, Over the Wire, shell game together. I don’t want you to give me all the answers. I want you to walk me towards the answer, helping me to find out and learn Linux commands, explaining clearly what is happening as we go. Please answer my questions carefully and do not offer code solutions, just explain in English the approach I should take and then review the commands I suggest to you. Say okee dokee if you understand.

And remember: every time ChatGPT offers code you don’t recognise, you must ask “Is this valid” before you continue. ChatGPT makes up invalid code all the time.

  • 🎯 Topic Problem-Solving
  • 🎯 Topic Programming Fundamentals
  • 🏝️ Priority Stretch
  • πŸ¦” Size Tiny
  • πŸ“… Sprint 2
[TECH ED] Use Terraform to add the previous steps πŸ”— Clone

https://registry.terraform.io/namespaces/terraform-aws-modules

Why are we doing this?

This ticket assume you have completed #20 #21 #22 #23

By completing these tasks, you’ll gain practical experience in implementing scalability and monitoring within AWS, essential for maintaining a healthy and efficient application. By using Terraform, you’ll have the opportunity to embed your understanding of infrastructure as code.

Use Terraform

Terraform: update the existing terraform files to add the previous steps in this coursework.

Maximum time in hours

n/a

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Commit your terraform files to your working repo.

  • 🎯 Topic Code Review
  • 🎯 Topic Delivery
  • 🎯 Topic Iteration
  • 🎯 Topic Requirements
  • 🏝️ Priority Stretch
  • πŸ¦‘ Size Large
  • πŸ“… Sprint 5
[TECH ED] Setup Scalability And Monitoring: CloudWatch Dashboards πŸ”— Clone

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html

Why are we doing this?

In this sprint, you’ll focus on implementing scalability features and monitoring capabilities for the CYF Hotel project.

Set High Availability for RDS

Create Custom Dashboard: Utilize CloudWatch Metrics to create a custom dashboard that shows metrics for both EC2 and RDS services.

By completing these tasks, you’ll gain practical experience in implementing scalability and monitoring within AWS, essential for maintaining a healthy and efficient application.

Maximum time in hours

n/a

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • 🏝️ Priority Stretch
  • πŸ‚ Size Medium
  • πŸ“… Sprint 5
[TECH ED] Setup Scalability And Monitoring: CloudWatch Alarms πŸ”— Clone

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

Why are we doing this?

In this sprint, you’ll focus on implementing scalability features and monitoring capabilities for the CYF Hotel project.

Set High Availability for RDS

Navigate to CloudWatch: In the AWS Management Console, navigate to the CloudWatch service.

Create CPU Utilization Alarm: Set up an alarm to monitor the CPU utilization of your EC2 instances.

Create RDS Read/Write Alarm: Set up another alarm to monitor the Read and Write capacity of your RDS instance.

Maximum time in hours

2

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 5
[TECH ED] Setup Scalability And Monitoring: High Availability for RDS πŸ”— Clone

https://docs.aws.amazon.com/rds/

Why are we doing this?

In this sprint, you’ll focus on implementing scalability features and monitoring capabilities for the CYF Hotel project.

Set High Availability for RDS

Modify RDS Instance: In the AWS RDS Dashboard, modify your existing RDS instance to include Multi-AZ deployments for MySQL, PostgreSQL, SQL Server, or Oracle.

Maximum time in hours

1

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ¦‘ Size Large
  • πŸ“… Sprint 5
[TECH ED] Setup Scalability And Monitoring: EC2 Load Balancers πŸ”— Clone

https://docs.aws.amazon.com/elasticloadbalancing/

Why are we doing this?

In this sprint, you’ll focus on implementing scalability features and monitoring capabilities for the CYF Hotel project.

Setup EC2 Load Balancers

Create EC2 Load Balancer: In the AWS Management Console, set up a new EC2 Load Balancer.

Configure Load Balancer: Add rules to your Load Balancer to route traffic to your EC2 instances.

Test Load Balancer: Ensure that the Load Balancer is distributing traffic across multiple EC2 instances

Maximum time in hours

3

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ¦‘ Size Large
  • πŸ“… Sprint 5
[TECH ED] Prepare for live session πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/sprints/5/prep/

Why are we doing this?

It is essential to start learning new concepts and ideas before Saturday’s session. During the week, we expect you to get stuck and form questions about the new content so you can address misconceptions during Saturday’s session. The prep work here will introduce you to the new concepts for the week.

You will need to do this prep work before tackling the coursework.

Maximum time in hours (Tech has max 16 per week total)

3

How to get help

Share your blockers in your track channel

https://curriculum.codeyourfuture.io/guides/asking-questions

How to submit

It will be clearly evident if you don’t do the prep. At CYF we come to class prepared.

  • :brain: Prep work
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 5
[TECH ED] Prepare for live session πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/sprints/4/prep/

Why are we doing this?

It is essential to start learning new concepts and ideas before Saturday’s session. During the week, we expect you to get stuck and form questions about the new content so you can address misconceptions during Saturday’s session. The prep work here will introduce you to the new concepts for the week.

You will need to do this prep work before tackling the coursework.

Maximum time in hours (Tech has max 16 per week total)

3

How to get help

Share your blockers in your track channel

https://curriculum.codeyourfuture.io/guides/asking-questions

How to submit

It will be clearly evident if you don’t do the prep. At CYF we come to class prepared.

  • :brain: Prep work
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 4
[TECH ED] Prepare for live session πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/sprints/3/prep/

Why are we doing this?

It is essential to start learning new concepts and ideas before Saturday’s session. During the week, we expect you to get stuck and form questions about the new content so you can address misconceptions during Saturday’s session. The prep work here will introduce you to the new concepts for the week.

You will need to do this prep work before tackling the coursework.

Maximum time in hours (Tech has max 16 per week total)

3

How to get help

Share your blockers in your track channel

https://curriculum.codeyourfuture.io/guides/asking-questions

How to submit

It will be clearly evident if you don’t do the prep. At CYF we come to class prepared.

  • :brain: Prep work
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 3
[TECH ED] Prepare for live session πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/sprints/2/prep/

Why are we doing this?

It is essential to start learning new concepts and ideas before Saturday’s session. During the week, we expect you to get stuck and form questions about the new content so you can address misconceptions during Saturday’s session. The prep work here will introduce you to the new concepts for the week.

You will need to do this prep work before tackling the coursework.

Maximum time in hours (Tech has max 16 per week total)

3

How to get help

Share your blockers in your track channel

https://curriculum.codeyourfuture.io/guides/asking-questions

How to submit

It will be clearly evident if you don’t do the prep. At CYF we come to class prepared.

  • :brain: Prep work
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 2
[TECH ED] Prepare for live session πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/sprints/1/prep/

Why are we doing this?

It is essential to start learning new concepts and ideas before Saturday’s session. During the week, we expect you to get stuck and form questions about the new content so you can address misconceptions during Saturday’s session. The prep work here will introduce you to the new concepts for the week.

You will need to do this prep work before tackling the coursework.

Maximum time in hours (Tech has max 16 per week total)

3

How to get help

Share your blockers in your track channel

https://curriculum.codeyourfuture.io/guides/asking-questions

How to submit

It will be clearly evident if you don’t do the prep. At CYF we come to class prepared.

  • :brain: Prep work
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 1
[TECH ED] Check module success criteria πŸ”— Clone

https://curriculum.codeyourfuture.io/cloud/success/

Why are we doing this?

πŸ”‘ The most important thing is that you are secure in your understanding.

At the end of the course, we will expect you to deploy infrastructure as code using your understanding. If you cannot build things, we cannot put you forward for jobs. It is in your personal interest to make sure you have properly understood this track.

To join the Cloud employment pool, you will need to successfully complete this track. How will you as a cohort meet the success criteria? Discuss it in your channel and make a plan together.

πŸ§‘πŸΏβ€πŸŽ€ good strategies

  • asking volunteers to review your code
  • helping each other with coursework blockers
  • arranging midweek study sessions
  • using Saturday time to review code and demo progress

πŸ™…πŸΏ bad strategies

  • opening empty PRs or pretending to do work
  • copying and pasting
  • breaking the Trainee Agreement
  • mistaking the measure for the target

Maximum time in hours

.5

How to get help

Discuss with your cohort. Support each other.

How to submit

In the penultimate sprint of your module you will need a representative to report to the organisation. Here’s your template, fill in your details and delete as appropriate:

πŸ“ˆ Cohort Progress Report from @cohort-name to @programme-team

  • criterion
  • criterion
  • criterion
  • criterion

βœ… We are on target to complete this module.
β›” We are taking a consolidation week to meet our targets.

  • 🎯 Topic Code Review
  • 🎯 Topic Communication
  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Teamwork
  • 🎯 Topic Testing
  • 🎯 Topic Time Management
  • πŸ• Priority Mandatory
  • πŸ¦” Size Tiny
  • πŸ“… Week 1
  • πŸ“… Week 4
[TECH ED] Using Terraform Modules and Remote State πŸ”— Clone

https://developer.hashicorp.com/terraform/docs

Why are we doing this?

Objective

In this exercise, you will utilize a Terraform module to create a reusable configuration for S3 buckets. Additionally, you’ll implement remote state management using an S3 bucket.

Steps

  1. Create a Terraform Module for S3 Buckets

    • Create a new directory named s3_module and place a new Terraform file inside it, e.g., main.tf.
    • Define the Terraform code for an S3 bucket inside this file.
  2. Implement Remote State in S3

    • In your main Terraform configuration (main.tf), configure the backend for remote state using S3.
  3. Initialize and Apply

    • Initialize your Terraform project.
    • Apply the configuration to create the S3 bucket using the module and configure remote state.

Validation

  • Confirm that the S3 bucket was created as expected.
  • Check the S3 bucket where you store the remote state to ensure that the terraform.tfstate file is present.

References

Maximum time in hours

n/a stretch

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • 🏝️ Priority Stretch
  • πŸ¦‘ Size Large
  • πŸ“… Sprint 4
[TECH ED] Infrastructure as Code for CYF Hotel Database in RDS πŸ”— Clone

https://developer.hashicorp.com/terraform/docs

Why are we doing this?

Objective:

Use Terraform to deploy your CYF Hotel backend to an RDS instance.

Steps:

Write a Terraform configuration file main.tf for the RDS database.
Include necessary configurations like database engine, version, and credentials.
Deploy the code to AWS.

Outcome:

After running terraform apply, the database should be live and reachable on the RDS instance.

Maximum time in hours

2

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 4
[TECH ED] Infrastructure as Code for CYF Hotel Backend in EC2 πŸ”— Clone

https://developer.hashicorp.com/terraform/docs

Why are we doing this?

Objective:

Use Terraform to deploy your CYF Hotel backend to an EC2 instance.

Steps:

Write a Terraform configuration file (main.tf) to define the EC2 instance.
Include configurations for security groups, key pairs, and IAM roles if necessary.
Deploy the code to AWS.

Outcome:

After running terraform apply, the backend should be running on an AWS EC2 instance accessible via its IP address.

Maximum time in hours

1.5

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 4
[TECH ED] Infrastructure as Code for CYF Hotel Frontend in S3 πŸ”— Clone

https://developer.hashicorp.com/terraform/docs

Why are we doing this?

Objective:

Use Terraform to deploy your CYF Hotel frontend to an S3 bucket.

Steps:

  1. Write a Terraform configuration file main.tf to define the S3 bucket.
  2. Include the necessary configurations like ACL, policy, and versioning.
  3. Deploy the code to AWS.

Outcome:

After running terraform apply, you should see the CYF Hotel frontend live on the S3 bucket URL.

Maximum time in hours

2

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

Demo your progress in class.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 4
[TECH ED] Docker Compose πŸ”— Clone

https://docs.docker.com/

Why are we doing this?

Research Docker Compose, its syntax and a few examples. Think how it can help you orchestrate your 3 containers for local development, and then create a docker-compose file to use this tool to automatically build, start and network your containers. Find a way to specify dependencies, to ensure that the backend start initialising only when the database is up and running.

If you want, you can experiment with running all 3 components in EC2 via Docker compose, but keep it as an experiment. Think about some advantages and disadvantages of the 2 approaches (all in a docker-compose file inside a EC2 instance vs using multiple managed services such as S3 and RDS)

How to get help

If you are doing this for the first time, this will be hard. You must reach out to volunteers to help you. Your ability to ask for help is actively assessed during this time. Ask good, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

You are not expected to be able to complete this module completely independently. You are expected to get help from volunteers.

How to submit

In this advanced module you will demo your work. You may wish to make notes for case studies to add to your portfolio.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Structuring Data
  • 🎯 Topic Testing
  • 🏝️ Priority Stretch
  • πŸ“… Sprint 2
[TECH ED] Local Development Docker πŸ”— Clone

https://docs.docker.com/

Why are we doing this?

Local development (bonus)

This step is a bonus one, if you completed all previous steps and are not behind on the previous weeks.

Dockerise your Frontend, and have it run locally alongside via Docker with your backend. Can you get both to work correctly at the same time?

Replicate the process for the database, and move it from your local instance to a local Docker Container (remember persistence via volumes).

In both cases, managed AWS services (S3 and RDS) give us a lot of advantages for Cloud Deployment, but lack support for local development, and Docker can help with that.

Imagine how you would automate, with a script, the process of rebuilding all 3 containers on changes, and restart/reconnect everything. Try to build it.

How to get help

If you are doing this for the first time, this will be hard. You must reach out to volunteers to help you. Your ability to ask for help is actively assessed during this time. Ask good, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

You are not expected to be able to complete this module completely independently. You are expected to get help from volunteers.

How to submit

In this advanced module you will demo your work. You may wish to make notes for case studies to add to your portfolio.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Structuring Data
  • 🎯 Topic Testing
  • 🏝️ Priority Stretch
[TECH ED] Dockerise CYF Hotel πŸ”— Clone

https://docs.docker.com/

Why are we doing this?

Dockerize CYF Hotel

The main aim of this sprint is to become familiar with Docker Concepts and be able to use it to a base level. To achieve this, we’ll keep working on our CYF Hotel.

Prep

Make sure you have completed the prep for this week and your Docker daemon is working correctly before continuing.

Docker Backend

Start working on dockerising your application backend. Create a Dockerfile, set it up for node and replicate your setup and install steps that were manual so far in there. Iterate until you get it to run successfully as a Docker Container locally. Hint: Remember port forwarding!

Once successful, upload your created Docker Image to either your DockerHub account or (advanced) AWS’s ECR.
Once done, Update your EC2 instance to now run your backend as a container. Hint: You will need to set up Docker on the VM itself for this to work

GitHub Pipelines

Once this is done and working fully, time to automate it - rework your Github Actions Workflow to test, build and upload your Docker image, and then deploy the new version to the EC2 machine.

Maximum time in hours

6

How to get help

If you are doing this for the first time, this will be hard. You must reach out to volunteers to help you. Your ability to ask for help is actively assessed during this time. Ask good, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

You are not expected to be able to complete this module completely independently. You are expected to get help from volunteers.

How to submit

In this advanced module you will demo your work. You may wish to make notes for case studies to add to your portfolio.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Structuring Data
  • 🎯 Topic Testing
  • πŸ• Priority Mandatory
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 2
[TECH ED] GitHub Actions for Backend πŸ”— Clone

https://docs.github.com/en/actions

Why are we doing this?

Setup Github Actions for CYF Hotel Backend deployments to EC2

Create GitHub Actions Workflow File: Similar to the frontend, create a new YAML file in your CYF Hotel repository under .github/workflows, and name it appropriately, like backend-ec2-deploy.yml.

Configure AWS and SSH Credentials: Store your AWS and SSH credentials securely using GitHub Secrets. These will be used to authenticate and connect to your EC2 instance.

Write EC2 Deployment Steps: Outline the steps in the YAML file for SSHing into your EC2 instance, pulling the latest code, and restarting your backend service.

Test the Workflow: Like with the frontend, push a change to your repository or manually trigger the workflow from GitHub Actions to ensure that your backend is successfully deployed to the EC2 instance.

Maximum time in hours

4

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

In this advanced module you will demo your work. You may wish to make notes for case studies to add to your portfolio.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • 🎯 Topic Structuring Data
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 2
[TECH ED] GitHub Actions πŸ”— Clone

https://docs.github.com/en/actions

Why are we doing this?

Setup Github Actions for CYF Hotel Frontend deployments to S3

Create GitHub Actions Workflow File: In your CYF Hotel repository, create a new YAML file under the .github/workflows directory. Name it something relevant, like frontend-s3-deploy.yml.

Configure AWS Credentials: Utilize GitHub Secrets to securely store your AWS credentials. These secrets will be used in the GitHub Actions workflow to authenticate against AWS.

Write S3 Deployment Steps: In the YAML file, define the steps to install AWS CLI, configure AWS credentials, and sync your build folder to your S3 bucket.

Test the Workflow: Push a change to your repository or manually run the workflow from the GitHub Actions tab to verify that the S3 deployment works as expected.

Maximum time in hours

2

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

In this advanced module you will demo your work. You may wish to make notes for case studies to add to your portfolio.

  • 🎯 Topic Delivery
  • 🎯 Topic Structuring Data
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 2
[TECH ED] Database Deployment πŸ”— Clone

https://github.com/CodeYourFuture/React-Module-Project

Why are we doing this?

Deploy CYF Hotel Database to RDS

  1. Create RDS Instance: In the AWS Management Console, set up a new RDS instance.
  2. Configure Security Groups: Update security groups to allow incoming traffic on the database port you intend to use.
  3. Database Credentials: Make a note of your database credentials (username, password).
  4. Initialize Database: Connect to the database and initialize it with the required tables and sample data.
  5. Connect to Backend: Update your backend code (running on EC2) to connect to the RDS database.
  6. Test End-to-End: Make some test API calls to ensure that the data flows correctly from the RDS database to your EC2 backend, and then to the S3-hosted frontend.

Maximum time in hours

3

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

In this advanced module you will demo your work. You may wish to make notes for case studies to add to your portfolio.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 1
[TECH ED] Backend Deployment πŸ”— Clone

From Module-Cloud created by SallyMcGrath: CodeYourFuture/Module-Cloud#1

https://github.com/CodeYourFuture/React-Module-Project

Why are we doing this?

Deploy CYF Hotel Backend to EC2

  1. Launch EC2 Instance: Start a new EC2 instance using a suitable AMI (Amazon Machine Image).
  2. SSH into EC2: Use SSH to access your EC2 instance. Follow the guide from AWS on how to ssh from your machine https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-ssh.html
  3. Set up Node.js: Install Node.js and any other dependencies.
  4. Upload Code: Transfer your backend code to the EC2 instance. Refer to the SSH guide to transfer the code to EC2 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-ssh.html#linux-file-transfer-scp
  5. Start Application: Run your Node.js application on the EC2 instance.
  6. Test API: Test your API endpoints to make sure they’re working as expected.

Maximum time in hours

3

How to get help

Ask calm, curious questions with links, code samples, and no screenshots.

https://curriculum.codeyourfuture.io/guides/asking-questions/

How to submit

In this advanced module you will demo your work.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 1
[TECH ED] Frontend Deployment πŸ”— Clone

https://github.com/CodeYourFuture/React-Module-Project

Why are we doing this?

Setup Github Actions for CYF Hotel Frontend deployments to S3

  1. Create GitHub Actions Workflow File: In your CYF Hotel repository, create a new YAML file under the .github/workflows directory. Name it something relevant, like frontend-s3-deploy.yml.

  2. Configure AWS Credentials: Utilize GitHub Secrets to securely store your AWS credentials. These secrets will be used in the GitHub Actions workflow to authenticate against AWS.

  3. Write S3 Deployment Steps: In the YAML file, define the steps to install AWS CLI, configure AWS credentials, and sync your build folder to your S3 bucket.

  4. Test the Workflow: Push a change to your repository or manually run the workflow from the GitHub Actions tab to verify that the S3 deployment works as expected.

Maximum time in hours

3

How to get help

If you are doing this for the first time, this will be hard. You must reach out to volunteers to help you. Your ability to ask for help is be actively assessed during this time.

You are not expected to be able to complete this module completely independently. You are expected to get help from volunteers.

How to submit

In this advanced module you will demo your work.

  • 🎯 Topic Delivery
  • 🎯 Topic Requirements
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 1