On Prem vs AWS - Kahuna915/Capstone-Cloud-Integration GitHub Wiki

On prem vs cloud:

Determining whether AWS or on-premises infrastructure is more cost-effective depends on several factors. Here are some considerations:

Initial investment: On-premises infrastructure typically requires a significant upfront investment in hardware, software licenses, and personnel to install and configure the infrastructure. Additionally, there may be ongoing maintenance costs associated with hardware upgrades and software updates. On the other hand, with AWS, you only pay for the resources you use, and you can quickly scale up or down as needed. For example, let's say you need to host a web application. If you choose to host it on-premises, you would need to purchase servers, networking equipment, and licenses for any software you need, such as an operating system, a web server, and a database server. You would also need to hire personnel to set up and configure the infrastructure. This initial investment could be substantial. With AWS, on the other hand, you could launch a web server instance within minutes and only pay for the compute and storage resources you use. Scalability: One of the key advantages of AWS is its scalability. AWS allows you to quickly scale up or down your resources to match demand. This can be more cost-effective than buying and maintaining excess capacity in an on-premises environment. For example, let's say you run an e-commerce website that experiences spikes in traffic during the holiday season. If you host the website on-premises, you would need to buy enough hardware to handle the peak traffic, which means you would have excess capacity for the rest of the year. With AWS, you can scale up your compute and storage resources during the holiday season and then scale them back down afterwards. This can save you money by avoiding the need to buy and maintain excess hardware. Maintenance and support: With AWS, you don't need to worry about maintaining hardware or software, as AWS takes care of this for you. AWS also provides support for its services. However, on-premises infrastructure requires ongoing maintenance and support, which can be costly. For example, if you host an application on-premises, you would need to perform regular maintenance tasks such as hardware upgrades, software updates, and security patches. You would also need to provide support to your users if they encounter any issues. With AWS, on the other hand, AWS takes care of maintenance and support for its services, which can save you time and money. Location and redundancy: AWS has multiple data centers located around the world, which can provide redundancy and disaster recovery capabilities. On-premises infrastructure may require duplicate hardware and backups, which can increase costs. For example, if you host an application on-premises, you may need to purchase duplicate hardware and set up backups to ensure high availability and disaster recovery. With AWS, on the other hand, you can use AWS services such as Amazon S3 and Amazon Glacier to store backups and ensure data durability and availability. Workload type: Certain workloads may be more cost-effective to run on-premises, while others may be better suited for the cloud. For example, applications with predictable usage patterns may be more cost-effective to run on-premises, while applications with variable usage patterns may be more cost-effective to run in the cloud. For example, if you run a payroll application that processes data on a monthly basis, it may be more cost-effective to run it on-premises. On the other hand, if you run a web application that experiences variable traffic patterns, it may be more cost-effective to run it in the cloud, as you can easily scale up or down your resources to match demand.

Cost: When looking into cloud infrastructure costs there are three main cost categories: Server, Storage and networking. These are where 95% of the cost of running could services come from. On-premises infrastructure typically requires a significant upfront investment in hardware, software licenses, and personnel to install and configure the infrastructure. This can include purchasing servers, storage, networking equipment, and licenses for any necessary software. In addition, there may be costs associated with building and maintaining a data center, including power and cooling infrastructure.

AWS Costs: While you don’t have to pay for the cost of equipment there are still costs associated with AWS and there are four main ones. Compute Costs: AWS charges for compute resources based on the number of hours used. This includes charges for EC2 instances, AWS Lambda functions, and other compute services. The cost of compute resources varies depending on the instance type, region, and pricing plan. Storage Costs: AWS charges for storage resources based on the amount of data stored and the amount of data transferred. This includes charges for Amazon S3 storage, Amazon EBS volumes, and other storage services. The cost of storage resources varies depending on the storage type, region, and pricing plan. Data Transfer Costs: AWS charges for data transfer between AWS services and the internet, as well as between AWS regions. The cost of data transfer varies depending on the amount of data transferred and the region. Network Costs: AWS charges for network resources such as load balancers, VPNs, and Direct Connect. The cost of network resources varies depending on the type of resource and the amount of data transferred. Other Costs: AWS also charges for other services such as database hosting, messaging, and monitoring. The cost of these services varies depending on the service type, usage, and pricing plan. It's important to note that the cost of using AWS can vary significantly depending on your specific usage patterns, instance types, and pricing plan. AWS offers a range of tools and services to help you monitor and optimize your costs, such as AWS Cost Explorer, AWS Budgets, and AWS Trusted Advisor. By monitoring your usage and optimizing your resources, you can help minimize your costs and get the most out of your AWS investment.

AWS Usage Categories: Free Tier: The AWS Free Tier is a great option for individuals, small businesses, or startups that want to test out AWS services without incurring any costs. For example, you could use the free tier to set up a test environment for a new application, host a small website, or experiment with data analytics tools. Pay-As-You-Go: Pay-as-you-go pricing is a good option for organizations with unpredictable or variable workloads, as you only pay for what you use. This plan can be ideal for a wide range of use cases, from hosting websites to running compute-intensive workloads such as machine learning or data processing. For example, a media company might use pay-as-you-go pricing to host its website and store its video content on Amazon S3. Reserved Instances: Reserved instances are a good option for organizations with predictable workloads, as they can provide significant cost savings over pay-as-you-go pricing. This plan can be ideal for workloads that require a consistent amount of compute resources, such as database hosting or running a web application. For example, an e-commerce company might use reserved instances to host its online store and run its backend database. Spot Instances: Spot instances are a good option for workloads that are flexible and can handle interruptions. This plan can be ideal for running large-scale batch processing or data analysis workloads, such as genomics research or financial modeling. For example, a research institution might use spot instances to run complex simulations or analyze large datasets. Dedicated Hosts: Dedicated hosts are a good option for organizations with strict compliance or regulatory requirements or those that need full control over their hardware. This plan can be ideal for running legacy applications that require specific hardware configurations, such as mainframe or legacy database applications. Enterprise Agreement: An enterprise agreement is a good option for larger organizations with significant AWS usage that require customized pricing and support. This plan can be ideal for organizations that need to manage complex cloud environments, have specific compliance or regulatory requirements, or require a high level of support and consultation from AWS. For example, a large financial institution might use an enterprise agreement to manage its cloud infrastructure and ensure compliance with regulatory requirements.

Security:

When it comes to security, both AWS and on-premises hardware have their own unique risks and challenges. AWS offers a number of security features and controls that can help mitigate security risks, such as network security groups, encryption, access control, and monitoring. Additionally, AWS is compliant with a number of security standards and regulations, such as SOC 2, HIPAA, and PCI DSS, which can help provide assurance that the platform is secure. However, using AWS also introduces some new security risks that are not present with on-premises hardware. For example, AWS is a shared environment, which means that there is a risk of attacks or breaches that can affect multiple customers. Additionally, there is the risk of misconfigurations or vulnerabilities in the way that the AWS resources are set up or managed, which can also lead to security breaches. On the other hand, using on-premises hardware gives organizations more control over their own security posture. They can implement their own security measures, such as firewalls, intrusion detection systems, and access control mechanisms. They can also physically secure the hardware in a way that is not possible with a cloud-based service. However, using on-premises hardware also has its own security risks. For example, the organization is responsible for ensuring that the hardware is up-to-date with security patches and updates, which can be a challenge for organizations with limited IT resources. Additionally, there is the risk of physical theft or damage to the hardware, which can lead to data loss or theft. Ultimately, the security risks associated with using AWS vs on-premises hardware will depend on a number of factors, including the organization's security requirements, the sensitivity of the data being processed, and the resources available for security management. It is important for organizations to carefully consider these factors when making a decision between the two options.

Examples Let's assume that there is a classroom of 10 students who will be using 4 virtual machines to run various software applications.

AWS: 4 t3a.medium EC2 instances (2 vCPUs, 4GB RAM) = $0.0416 per hour per instance Total cost per hour for 4 instances = $0.1664 Assuming 3 hours of usage per day, 5 days a week, for 15 weeks = 225 hours of usage Total cost for 225 hours of usage = $37.44

On-premises: Assuming that the organization has already invested in the hardware, there will be no initial hardware costs for running the virtual machines. However, there will be ongoing costs associated with power, cooling, maintenance, and support for the hardware. Assuming that the hardware consumes 500 watts of power and runs 24/7 for 15 weeks, the total energy usage would be approximately 3,150 kilowatt hours (kWh). Assuming an average electricity cost of $0.12 per kWh, the total energy cost for 15 weeks would be approximately $378. In addition to the energy cost, there would be ongoing maintenance and support costs associated with the hardware, which can vary depending on the specific hardware and support agreement. Based on this comparison, it appears that running the virtual machines on AWS would still be less expensive than running them on-premises hardware, at least in terms of direct costs. However, as mentioned earlier, there may be other factors to consider when deciding between AWS and on-premises hardware.

For this example we are deciding to create a storage box with 900tb of capacity. AWS:

With AWS, you can use Amazon S3 (Simple Storage Service) to store data. The cost of storing 900 TB of data on Amazon S3 would depend on the storage class you choose and the region where you want to store the data. For example, if you choose the S3 Standard storage class in the US East region, the cost would be $0.023 per GB per month. So, the cost of storing 900 TB of data would be: 900 TB = 900,000 GB Cost per GB per month = $0.023 Cost per month = 900,000 GB * $0.023 = $20,700 per month

Note that this cost does not include any additional charges for data transfer, requests, or other services that you may use in conjunction with S3.

On-Premises: The cost of purchasing 150 8 TB HDDs would be: 150 drives * $140 per drive = $21,000 However, it's important to keep in mind that HDDs have a failure rate, which means that some of the drives may fail and need to be replaced over time. Assuming an annual failure rate of 3%, we would expect approximately 4.5 drives to fail in the first year: 150 drives * 3% failure rate = 4.5 drives To maintain the storage capacity, we would need to replace the failed drives, which would incur additional costs for purchasing and installing new drives. Assuming the cost of a replacement drive is still $140, the cost of replacing 4.5 drives in the first year would be: 4.5 drives * $140 per drive = $630 The total cost of the on-premises solution for the first year would be: $21,000 + $630 = $21,630 In subsequent years, we would expect more drives to fail, which would require additional replacements and maintenance costs.