CSM LAB MANUAL
CSM LAB MANUAL
Certified that this is bonafide record of work done by the above student during
Aim:
To create a Cloud Organization in AWS with Roll-based access control.
Procedure:
To create an organization in AWS with role-based access ,you can follow these general steps:
1. Create an AWS account: If you don't already have an AWS account, you'll need to create one.
This will be your management account and the root of your organization.
2. Enable AWS Organizations: From the AWS Management Console, navigate to the AWS
Organizations service and enable it. This will create the organization with your management
account as the master account.
3. Create OUs (Organizational Units): You can create one or more OUs to organize your
accounts. For example, you might create separate OUs for different departments or environments
(e.g., production, staging, development).
4. Create member accounts: You can create new AWS accounts and invite existing accounts
to join your organization as member accounts. You can add these accounts to the appropriate
OUs.
5. Create service control policies (SCPs): SCPs are policies that you can attach to OUs or
individual accounts to define the maximum set of actions that can be performed on resources in
those OUs or accounts. This allows you to enforce role- based access and other security policies
across your organization.
6. Assign IAM roles: You can create IAM roles in your management account and delegate
specific permissions to them. You can then assume these roles from your member accounts to
perform actions on resources in the management account or other member accounts.
7. Configure permissions: You can use IAM policies to control access to AWS services and
resources. You can attach these policies to IAM users, groups, or roles in your management
account or member accounts.
To create a role with specific permissions, you can follow these steps:
• Open the IAM console in your management account.
• Create a new role and choose the appropriate trusted entity (e.g., another AWS account, an AWS
service, or your AWS Organizations).
• Define the permissions for the role by attaching an IAM policy or a service control policy(SCP).
• Save the role and noted own the ARN (Amazon Resource Name)of the role.
• In the AWS Organizations console, attach the role to the appropriate OU or account.
• In the member account, assume the role to perform actions on resources in the management
account or other member accounts.
Result:
Thus, the Cloud Organization was created in AWS with Role-Based Access Control was
implemented successfully.
EX.NO:02 Create a Cost-model for a web application using various services and do Cost-benefit
Date: analysis
Aim:
To create a Cost-model for a web application using various services and make a analysis for Cost-benefit.
Procedure:
Creating a cost-model for a web application in AWS involves estimating the costs of using various
AWS services for the application. Here's a general process to create a cost-model and do cost-benefit
analysis:
1. Identify the AWS services used by the web application: Some common services used
by web applications include AmazonS3, AmazonEC2, Amazon RDS, Amazon API
Gateway, AWS Lambda, Amazon Dynamo DB, Amazon Cloud Front, and Amazon
SNS.
2. Estimate the costs of each service: You can use the AWS Pricing Calculator to estimate
the costs of each service. The pricing calculator allows you to enter the specifics of your
usage, such as the number of instances, storage size, and data transfer.
3. Create a cost-model: Once you have estimated the costs of each service, you can create a
cost- model that summarizes the total costs. You can use a spreadsheet or a cloud cost
management tool to create the cost-model.
4. Do cost-benefit analysis: After creating the cost-model, you can do a cost-benefit analysis to
determine if the benefits of using AWS services outweigh the costs. You can compare the
costs of using AWS services to the costs of running the application on-premises or using a
different cloud provider.
Program:
Python code:
Import boto3
Output:
{
'Results By Time':[
{
'Time Period':{
'Start':'2022-01-01',
'End':'2022-12-31',
'Time Unit': 'MONTHS'
},
'Groups':[
{
'Keys':['Amaz
onEC2'
],
'Metrics':{'Blended
Cost':{
'Amount':'1234.56',
'Unit': 'USD'
},
'Usage Quantity':
{'Amount':'
1000.0',
'Unit': 'Hours'
}
}
},
{
'Keys':['AWS
Lambda'
],
'Metrics':{'Blended
Cost':{
'Amount':'789.0',
'Unit': 'USD'
},
'Usage
Quantity':{'Amount':'5
000000',
'Unit': 'requests'
}
}
}
]
}
],
'Response Meta data':{
'Request Id':'abcdefg-1234-5678-90ab-
cdefghijkl','HTTPStatusCode':200,
'HTTP Headers':{
'content-type':'text/ xml;charset=
UTF-8','content-length':'1234',
'date':'Tue,15Feb202212:34:56GMT'
},
'RetryAttempts':0
}
}
Result:
Thus, Cost-model for a web application using various services created and analysis was implemented
successfully.
EX.NO:03 Create alerts for usage of Cloud Resources
Date:
Aim:
To create alerts for usage of Cloud Resources.
Procedure:
To create alerts for usage of Cloud resources in AWS, you can use Amazon Cloud Watch and AWS
Lambda. Here's an example code that creates an alert for Amazon S3 bucket usage:
1. Create an IAM role for the Lambda function with the following policy.
2. Create a new Lambda function with the following code.
3. Set the Lambda function trigger to run everyday at a specific time.
4. Create a Cloud Watch alarm with the following code.
Program:
Policy for Role:(JSON code)
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"cloudwatch:PutMetricAlarm","
cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics
"
],
"Resource":"*"
},
{
"Effect":"Allow",
"Action":[
"s3:GetBucketSize"
],
"Resource":[
"arn:aws:s3:::your-bucket-name"
]
}
]
}
s3=boto3.client('s3')
cloudwatch=boto3.client('cloudwatch')
CloudWatchAlarm:(Python)i
mportboto3
Import date time
cloudwatch=boto3.client('cloudwatch')
defcreate_alarm():
try:
cloud watch.put_metric_alarm (AlarmName='S3 Bucket
Size Alarm', Alarm Description='Alarm if S3 bucket
size exceeds10GB',Namespace='S3',
Metric Name='Bucket
Size',Statistic='SampleCount,
Period='86400',Evaluation
Periods='1',Threshold='1000
0000000',
Comparison Operator='GreaterThanThreshold',
AlarmActions=[
'arn:aws:sns:us-east-1:123456789012:your-sns-topic-arn'
],
Dimensions=[
{
'Name':'BucketName',
'Value':'your-bucket-name'
},
],
AlarmDescription='AlarmifS3bucketsizeexceeds10GB'
)
exceptExceptionase:
print(e)
create_alarm()
Output:
Result:
Thus, usage alerts for cloud resources were implemented successfully.
EX.NO:04 Create Billing alerts for your Cloud Organization
Date:
Aim:
To create billing alerts for your Cloud Organization.
Procedure:
To create billing alerts for your Cloud Organization in AWS, you can follow these steps:
1. Sign into the AWS Management Console and navigate to the Billing and Cost Management
service.
2. In the navigation pane, choose "Budgets".
3. Click on "Create budget" and select "Cost budget".
4. Provide a name and description for your budget.
5. Choose the time period for your budget(e.g., Monthly, Quarterly, Annually).
6. Configure the budget threshold. You can choose to set a fixed budget amount or a percentage of
your actual costs.
7. Configure the alerts. You can choose to receive alerts via email or Amazon SNS.
Program:
AWSCLI:(Bash)
Aws budgets create-budget--account-id123456789012--
budget\'{
"BudgetName":"MyCostBudget",
"BudgetLimit":{
"Amount":"1000",
"Unit":"USD"
},
"Cost Filters":{
"Linked Account":["123456789012"]
},
"CostTypes":{
"Include
Tax":true,
"IncludeSubscription":true,"Use
Blended":false,"IncludeRefund":
true,"IncludeCredit":true,
"IncludeUpfront":true,"IncludeR
ecurring":true,"IncludeOtherSubs
cription":true,"IncludeSupport":
true,"Include
Discount":true,"UseAmortized":
false
},
"TimeUnit":"MONTHLY",
"BudgetType":"COST",
"Notifications With Subscribers":[
{
"Notification":{
"Notification
Type":"ACTUAL","ComparisonOperator":"GRE
ATER_THAN","Threshold":100,
"Threshold
Type":"PERCENTAGE",
"Notification State":"ALARM"
},
"Subscribers":[
{
"Subscription Type":"EMAIL",
"Address":"[email protected]"
}
]
}
]
}'
Output:
Result:
Thus, billing alerts for your Cloud Organization were implemented successfully.
EX.NO:05 Compare Cloud cost for a simple web application across AWS, Azure and GCP
and suggest the best one
Date:
Aim:
To compare Cloud cost for a simple web application across AWS, Azure and GCP and suggest the
best one
Observation:
1. AWS: AWS offers a rich array of tools, including databases, analytics, management, IoT,
security, and enterprise applications. AWS introduced per-second billing in 2017 for EC2
Linux-based instances and EBS volumes.
2. Azure: Azure has slightly surpassed AWS in the percentage of enterprises using it. Azure
also offers various services for enterprises, and Microsoft’s longstanding relationship with
this segment makes it an easy choice for some customers. While Azure is the most expensive
choice for general-purpose instances, it’s one of the most cost-effective alternatives to
compute-optimized instances.
3. Google Cloud Platform(GCP): GCP stands out thanks to its almost limitless internal
research and expertise. GCP is different due to its role in developing various open-source
technologies. Google Cloud is much cheaper than AWS and Azure for computing
optimized cloud-based instances.
The best platform depends on your specific needs and requirements. If you need a wide array of tools and
services, AWS might be the best choice. If you’re looking for enterprise services and have along
standing relationship with Microsoft, Azure could be your best bet.
Conclusion:
If you prioritize innovation and open-source technologies, GCP could be the right choice. For
compute-optimized instances, GCP seems to be the most cost-effective. However, it’s essential to
understand your requirements fully before making a decision.
Result:
Thus, the comparison for Cloud cost for a simple web application across AWS, Azure and GCP were
implemented successfully.