CSE3015
Submitted by
                 OM SOMVANSHI
               REG NO. : 22BCE11300
in partial fulfillment of the requirements for the degree of
                   Bachelor of Technology
 SCHOOL OF COMPUTING SCIENCE AND ENGINEERING
            VIT BHOPAL UNIVERSITY
                  MADHYA PRADESH
                       APRIL 2025
INDEX
   EXPERIMENT                        EXPERIMENT NAME
     NUMBER
        EXP 1    Launch an EC2 instance using the AWS Management Console by
                 Select appropriate
                 instance types, AMIs, and configurations. Connect to the EC2
                 instance using SSH or Remote Desktop.
        EXP 2    Create an S3 bucket and Configure bucket policies, versioning, and
                 encryption.
                 Upload and download objects to/from the S3 bucket.
        EXP 3    Create a Lambda function using Python or Node.js and Configure
                 event triggers and test the Lambda function.
        EXP 4    Register a domain name using Amazon Route 53 and Upload
                 HTML, CSS, and
                 JavaScript files to the S3 bucket to host the website
        EXP 5    Configuring a Virtual Private Cloud (VPC) in AWS, including
                 setting up subnets, route tables, internet gateways, NAT gateway
                 and security groups.
        EXP 6    RESTful API using Amazon API Gateway using AWS Lambda
        EXP 7    Launch an RDS instance by Select a database engine (e.g., MySQL,
                 PostgreSQL, SQL
                 Server) and Configure database settings, including storage, security,
                 and backups.
        EXP 8    Create an Identity and Access Management (IAM) in AWS,
                 including creating users,
                 groups, roles, and policies, and managing access permissions to
                 AWS resources
        EXP 9    Creating and managing AMIs and snapshots in AWS and Attach
                 EBS on a running instance.
        EXP 10   Create CloudWatch alarms to monitor metrics EC2 instances, RDS
                 databases, and
                 ELB load balancers and set up dashboards to visualize
                 performance metrics.
  1.     Launch an EC2 Instance
                                     Problem Statement:
Deploy a scalable virtual machine in the AWS cloud by selecting the appropriate instance type, AMI, and
networking options. Ensure successful remote access via SSH or Remote Desktop.
                                             Steps:
1. Sign in to the AWS Management Console.
2. Navigate to EC2 service under Compute.
3. Click on "Launch Instance."
4. Provide a name for your instance.
5. Choose an Amazon Machine Image (AMI), e.g., Amazon Linux 2 or Ubuntu.
6. Select an instance type, e.g., t2.micro (eligible for free tier).
7. Create or select an existing key pair for SSH or RDP access.
8. Configure network settings: choose an existing VPC and subnet or create new ones.
9. Enable auto-assign public IP.
10. Configure storage if needed (default 8 GiB EBS for Linux).
11. Configure a security group to allow SSH (port 22) or RDP (port 3389).
12. Click "Launch Instance."
13. Wait for the instance to reach the "running" state.
14. Connect to the instance:
•   For Linux: ssh -i /path/to/key.pem ec2-user@<public-ip>
•   For Windows: Use Remote Desktop Connection with the administrator password.
                              Result and Output:
•   EC2 instance successfully launched and accessible.
•   Verified by executing remote commands or GUI access.
2. Create an S3 Bucket
                                           Problem Statement:
    Create a scalable object storage bucket in AWS with policies for security, versioning for data protection, and
    encryption for compliance. Upload and retrieve files.
                                                   Steps:
    1. Navigate to S3 in the AWS Management Console.
    2. Click on "Create bucket."
    3. Enter a globally unique name and select the AWS Region.
    4. Enable versioning to keep multiple versions of an object.
    5. Enable server-side encryption (SSE-S3 or SSE-KMS).
    6. Choose object ownership and block public access settings based on requirements.
    7. Click "Create bucket."
    8. Upload objects:
             o Click on the bucket name > Upload > Add files.
             o Select files and click "Upload."
    9. Download objects: o Select the uploaded object > Click "Download."
    10. Set bucket policies:
    •   Go to Permissions > Bucket Policy.
    •   Add JSON-based access rules to allow specific users or public access.
                                 Result and Output:
•   S3 bucket created and secured.
•   Files successfully uploaded and downloaded.
•   Versioning tested by uploading multiple versions of the same file.
3. Create a Lambda Function
                                            Problem Statement:
                          Develop and deploy a serverless function using AWS Lambda with Python or Node.js.
     Configure event triggers and validate function execution.
                                                    Steps:
     1. Go to AWS Lambda in the Console.
     2. Click "Create function."
     3. Choose "Author from scratch."
     4. Enter function name and choose runtime (Python 3.x or Node.js).
     5. Assign an IAM role with basic Lambda execution permissions.
     6. Click "Create Function."
     7. In the code editor, write or paste your code (e.g., a simple Hello World).
     8. Create a test event to simulate input. 9. Click "Test" to execute the function.
  10. Configure triggers (e.g., S3 event, API Gateway).
                                            Result and Output:
     •    Function executed successfully with expected output.
     •    Event trigger tested and verified.
4. Register a Domain with Route 53 & Host Website on S3
                                      Problem Statement:
                     Host a static website on S3 and use Route 53 to associate it with a custom domain.
                                              Steps:
    1. Go to Route 53 > Domains > Register Domain.
    2. Search and purchase an available domain.
    3. Create an S3 bucket with the same name as your domain.
    4. Upload HTML, CSS, and JavaScript files to the bucket.
    5. Enable static website hosting in bucket properties.
    6. Go to Route 53 > Hosted Zones > Create a zone with your domain name.
    7. Add A Record alias to point to the S3 website endpoint.
    8. Update name servers in the domain registrar (if external).
                                       Result and Output:
    •   Website accessible using the registered domain.
    •   Static content served correctly from S3.
5.       Configure a Virtual Private Cloud (VPC)
                                          Problem Statement:
     Design and deploy a custom VPC with public/private subnets, routing, gateways, and security groups for
     network isolation.
                                                  Steps:
     1. Go to VPC Dashboard > Create VPC.
     2. Name your VPC and assign an IP CIDR block (e.g., 10.0.0.0/16).
     3. Create public and private subnets in different AZs.
     4. Attach an Internet Gateway to the VPC.
     5. Create a Route Table for the public subnet, add route to 0.0.0.0/0 via IGW.
     6. Associate the route table with public subnet.
     7. Create a NAT Gateway in the public subnet and an Elastic IP.
     8. Update the private route table to route internet-bound traffic via NAT.
     9. Set up security groups and NACLs as required.
                                          Result and Output:
     •   VPC with internet access for public subnet and isolated private subnet.
     •   Verified access through EC2 instance placements.
6.         RESTful API with API Gateway and Lambda
                                        Problem Statement
:
Create and deploy a serverless REST API using Amazon API Gateway integrated with AWS Lambda.
                                               Steps:
       1. Create a Lambda function to handle API logic.
       2. Go to API Gateway > Create API > HTTP or REST API.
       3. Define resources and methods (e.g., GET, POST).
       4. Integrate each method with the corresponding Lambda function.
       5. Deploy the API to a stage (e.g., dev).
       6. Note the Invoke URL and test via browser or Postman.
                                        Result and Output:
       •   RESTful API functional and returning responses from Lambda.
       •   Endpoint tested using HTTP requests.
7.   Launch an RDS Instance
                                          Problem Statement:
     Deploy a managed relational database using Amazon RDS. Configure storage, access, and security settings.
                                                 Steps:
     1. Go to RDS > Create Database.
     2. Select engine: MySQL, PostgreSQL, etc.
     3. Choose production or dev/test template.
     4. Configure DB instance size, storage, and identifiers.
     5. Set master username and password.
     6. Set VPC, subnet group, and public access options.
     7. Configure security group to allow inbound DB traffic.
     8. Launch and monitor until available.
     9. Connect using a database client with endpoint, username, and password.
                                          Result and Output:
     •   RDS instance created and accessible.
     •   Verified using connection from EC2 or local client.
8.          Create IAM Users, Groups, Roles, and Policies
                                             Problem Statement
:
Manage access to AWS resources using IAM users, roles, groups, and custom policies.
                                                    Steps:
        1. Navigate to IAM in the Console.
        2. Create a new user with programmatic or console access.
        3. Create a group and attach a policy (e.g., AmazonS3ReadOnlyAccess).
        4. Add the user to the group.
        5. Create a custom policy (JSON editor).
        6. Attach policy to users, groups, or roles.
        7. Create IAM roles for EC2/Lambda with trust relationships.
                                             Result and Output:
        •    Users created with restricted access.
        •    Verified access permissions through login and resource interaction.
9.       Create and Manage AMIs and Snapshots
                                      Problem Statement:
                       Create custom machine images and EBS snapshots for backup and scaling.
                                             Steps:
     1. Launch and configure an EC2 instance.
     2. Go to EC2 > Instances > Actions > Create Image (AMI).
     3. Name the AMI and include volumes.
     4. Wait for AMI to become available.
     5. To create a snapshot: EC2 > Volumes > Actions > Create Snapshot.
     6. To attach a new EBS:
            o Create Volume > Choose same AZ. o              Go to EC2 >
                Actions > Attach Volume.
            o Mount the volume in the instance.
                                      Result and Output:
     •   AMIs and snapshots created.
     •   Verified by launching new instances or restoring data.
10. Monitor with CloudWatch Alarms and Dashboards
                                       Problem Statement:
Track performance and availability using CloudWatch metrics, alarms, and dashboards.
                                              Steps:
       1. Go to CloudWatch > Alarms > Create Alarm.
       2. Choose a metric (e.g., CPUUtilization for EC2).
       3. Set threshold and evaluation period.
       4. Configure notification (SNS topic or email).
       5. Create dashboards:
               o Go to Dashboards > Create Dashboard.
               o Add widgets for EC2, RDS, ELB metrics.
       6. Monitor real-time graphs and trends.
                                       Result and Output:
       •   Alarms triggered on threshold breaches.
       •   Dashboards display real-time system performance metrics.