Wow! Now you know how it feels to run a successful startup! Your todo app user base is growing, and potential investors are becoming interested in your project. Before investing money, potential investors want to know how much it costs to run the cloud infrastructure for your application.
In this task, you will need to calculate the costs.
Before completing any task in the module, make sure that you followed all the steps described in the Environment Setup topic, in particular:
-
Ensure you have an Azure account and subscription.
-
Create a resource group called
mate-resources
in the Azure subscription. -
In the
mate-resources
resource group, create a storage account (any name) and atask-artifacts
container. -
Install PowerShell 7 on your computer. All tasks in this module use Powershell 7. To run it in the terminal, execute the following command:
pwsh
-
Install Azure module for PowerShell 7:
Install-Module -Name Az -Repository PSGallery -Force
If you are a Windows user, before running this command, please also run the following:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Log in to your Azure account using PowerShell:
Connect-AzAccount -TenantId <your Microsoft Entra ID tenant id>
In this task, you need to work with the infrastructure from the previous tasks. In order to complete the task, you need to perform the following steps:
-
Use Azure Pricing Calculator to estimate the monthly cost of your infrastructure (as it would cost with the Pay-as-you-go subscription type). You need to include the following resources in your calculations:
-
Virtual Machine (don't forget to include it's OS disk as a part of the VM calculations)
-
Data disk
-
Public IP address
-
-
Export the calculations as an Excel spreadsheet and copy it to the repo folder.
-
Run artifacts generation script
scripts/generate-artifacts.ps1
. -
Test yourself using the script
scripts/validate-artifacts.ps1
. -
Submit the solution for a review.
Tasks in this module are relying on 2 PowerShell scripts:
scripts/generate-artifacts.ps1
generates the task “artifacts” and uploads them to cloud storage. An “artifact” is evidence of a task completed by you. Each task will have its own script to gather the required artifacts. The script also adds a link to the generated artifact in theartifacts.json
file in this repository — make sure to commit changes to this file after you run the script.scripts/validate-artifacts.ps1
validates the artifacts generated by the first script. It loads information about the task artifacts from theartifacts.json
file.
Here is how to complete tasks in this module:
-
Clone task repository
-
Make sure you completed the steps described in the Prerequisites section
-
Complete the task described in the Requirements section
-
Run
scripts/generate-artifacts.ps1
to generate task artifacts. The script will update the fileartifacts.json
in this repo. -
Run
scripts/validate-artifacts.ps1
to test yourself. If tests fail, follow the recommendation from the test script error message to fix or re-deploy your infrastructure. When you are ready to test yourself again - re-generate the artifacts (step 4) and re-run tests again. -
When all tests will pass - commit your changes and submit the solution for review.
Pro tip: If you are stuck with any of the implementation steps, run scripts/generate-artifacts.ps1
and scripts/validate-artifacts.ps1
. The validation script might give you a hint on what to do.