Last updated on May 23, 2023
If you are a student, career changer, or IT professional who wants to work in the cloud computing industry, you must present your portfolio to the interviewer. A portfolio is a collection of previous projects and experiences, which can be paid or unpaid. This shows the interviewer that you know what you’re talking about and that you have the skills required for the job.
As a beginner, you must understand how to use a specific service based on the specifications that have been provided to you. In the following section, we’ll look at various projects that you can do to gain practical experience with AWS cloud services.
5 Best Cloud Projects
1. Cloud Migration
One of the fundamentals of cloud computing is understanding how to migrate existing on-premise applications to public cloud services. In AWS, Amazon EC2 is used to create and run virtual machines in the cloud. It has a VM Import/Export feature that allows you to easily import images from existing environments into EC2 instances. Keep in mind that when you export your application from VirtualBox, it will currently be unavailable, so proceed with caution when migrating VMs. If you need as little downtime as possible during VM migration, use AWS Application Migration Service and install an on-premises replication agent.
Objectives:
- Stop the running VM in VirtualBox and then use export to OCI.
- Using the CLI, upload the OVA file to S3.
- Create an IAM role for VM Import/Export with S3, EC2, and KMS permissions.
- Import the OVA file as an Amazon EC2 AMI.
- Provision a new instance using the imported AMI.
Services:
2. Infrastructure-as-Code: 3-Tier Web App
The traditional method for provisioning multiple servers is to use the EC2 console. However, if you need to provision 100 servers, it will take a significant amount of time to configure each one. The solution is to develop a standard template known as infrastructure-as-code. With the YAML template, you can deploy any number of servers using the CLI. The template that you’ll create for the next project will be a three-tiered web app consisting of a load balancer, servers, and a database.
Objectives:
- Write a CloudFormation template that will deploy the following:
- Create a VPC with public and private subnets in Availability Zones.
- Deploy EC2 with auto-scaling and RDS in private subnets.
- Configure Multi-AZ in RDS.
- Set up an Application Load Balancer (ALB) in the public subnet.
- (Optional): Use Route53 to point the custom domain name to ALB.
Services:
- AWS CloudFormation
- Amazon VPC
- AWS ELB – Application Load Balancer
- Amazon EC2
- Amazon RDS
- Amazon Route53
3. Microservices
In a microservice architecture, a monolithic application is divided into small, independent services that communicate via well-defined, lightweight APIs. Each microservice component performs a single function and can be developed, deployed, operated, and scaled independently of other services. For this project, you’ll create a microservice blog app. The user service will handle registration, login, and user management. While the blog service handles all requests for posts to be created, read, updated, and deleted.
Objectives:
- Use RDS to store your application’s data.
- Create a container image for each service.
- In ECR, create a repository and push the container images.
- Create an ECS cluster, task definitions, and services.
- Set up an ALB target group.
Services:
4. Serverless Face Analysis
For this project, we will explore both serverless and machine-learning services. A serverless service does not eliminate the need for servers to run your apps; rather, you will let AWS manage the servers so you can focus on development. While artificial intelligence has many components that you can use depending on your needs, we’ll use the image recognition feature of Amazon Rekognition. After you finish the project, you can try integrating it into an online application form that will analyze the uploaded image to determine whether it is a person or not.
Objectives:
- Create an Amazon S3 bucket with event notifications to trigger the Lambda function.
- Use Amazon Rekognition to detect faces in the uploaded image.
- If the image contains a face, populate the DynamoDB table and trigger Amazon SNS to send email notifications.
Services:
5. CI/CD Pipeline
Lastly, an AWS-powered serverless CI/CD pipeline with automation testing and real-time Slack notifications. The primary goal of this project is to simplify the process of developing and deploying an application. The CI/CD can be used for web or mobile applications. However, for the sake of simplicity, we will only focus on the Android app. After you’ve finished the project, simply configure the pipeline to focus on the release of web or iOS apps.
Objectives:
- Create a repository in CodeCommit.
- Use CodeBuild to generate an Android package (.apk).
- Set up the source, build, and test stages in CodePipeline.
- Use AWS Device Farm to test the generated APK.
- Notify Slack users via Chatbot that the APK is ready for download from the S3 bucket.
Services:
- AWS Developer Tools (CodeCommit, CodeBuild, CodePipeline)
- AWS Device Farm
- AWS Chatbot