Amazon AWS and EC2 are public cloud services implemented through an API driven infrastructure while OpenStack supports all private, public and hybrid cloud models through server based virtual machine technologies. According to AWS, Amazon EC2 is a web service that provides resizable compute capacity in the cloud and is designed to make web-scale cloud computing easier for developers. According to OpenStack, it controls large pools of compute, storage and networking resources throughout a data center, managed through a dashboard or through the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.
The Cost Models

The cost of running a cloud comes in 2 categories: capital investment and operational costs. For the AWS, there are 2 cost models and are applicable for any public clouds:
a) Reserved instance or spot pricing: pre-purchase of resources that provide capacity reservation. Resources can be reserved in advance and can be used when needed. 
b) On-demand pricing: billing as per usage of resources on minute/hour basis. Can cause unpredicted hikes in cost with resource usage.
With OpenStack, following cost or implementation models can be utilized:
a) Buy hardware for setting up and running the OpenStack cloud.
b) Purchase a licensed distribution from a vendor for which the cost involves that for the license, annual support and recurring renewal costs.
c) Buy an OpenStack subscription service from a provider and receive support, maintenance etc.
d) Consume a fully managed OpenStack service also known as hosted cloud or private cloud as a service.
e) Freely download OpenStack and use either an in-house team or contractors to install, setup, maintain and operate the cloud.
With the above cost models, it is apparent that, public cloud cost models are suitable for an IT setup that has varying demands of resources and workload. Private cloud cost model is suitable for setups that expect a linear growth in resource needs and workload. When the infrastructure scale-out with addition of more and more computational, storage and networking resources, obviously it has impacts on the application and client side also. A growing IT model obviously results in an increased usage and network bandwidth consumption. An on-demand cost model causes hike in metered traffic and hence the costs. At this scenario, OpenStack’s private or hybrid cloud based cost models help you to keep cost within your controls, in the bandwidth intensive production setups by allowing for segregation of computational resources across an interconnected hybrid cloud model. Computations and data that need less public access and hence low network bandwidth can be safely deployed in the private cloud while keeping the commercial or production base on the public side.
Flexibility in investment

A public cloud based IT strategy often faces limitations in flexibility when considering long term operational and growth strategies. In this model, the business is locked down with the public cloud vendor’s technology stack and this limits interoperability with other clouds. Also this can prevent you from a transition to another offering when demand and requirements changes in the foreseeable future. The high cost and lack of interoperability and compliance between vendor locked-in public clouds can be overcome by utilizing a more flexible option like that offered by OpenStack. With OpenStack, you can deploy a scalable and flexible infrastructure on a hybrid cloud platform that runs on commodity hardware that uses virtualization for scale-out. OpenStack on its own form or a customized distribution always offer the flexibility in choosing what you need and leaves space and options for expanding and customizing your infrastructure with growing and varying demands at a significantly reduced cost compared to the public cloud model.
Where AWS costs higher than private OpenStack clouds

AWS is ideal for a quick prototyping based setup and where resource and expansion requirements are always within predictable limits. Everything can be controlled easily during these stages with the reserved or on-demand pricing models, since capacity and utilization are under control. But when your infrastructure, the resources, consumption and growth rate expands linearly on large scales, AWS is going to cost heavily. When data and workload are such high to be non-manageable by an in-house solution, moving the infrastructure to a public cloud like AWS costs high and has significant security concerns compared to an in-premise or co-location based private cloud. Another area is the organizational departmental workloads like that needed for accounting, human resources, development, quality assurance etc. where you do not want to spend on network bandwidth. With a public cloud like AWS, you need to spend for each and every bytes and when this is deployed on a local cloud like OpenStack private cloud, your costs are zero.
Getting benefits of a public cloud through private clouds as a service

The advantages of public cloud like non-need of infrastructure setting up expense or capital expense and other benefits like resource sharing, elasticity, procurement etc. can be made available through Private Cloud as a Service offerings. The operating expense based cost models of public clouds are well implemented on vendor based solutions that use OpenStack to provide private cloud as a service architecture. With such a service, businesses can deploy their IT infrastructure or workloads on their premises or at a co-location facility. This setup offers all the benefits of a private cloud like flexibility, authority, security and sovereignty using a public cloud like consumption model. Businesses can utilize the benefits such as capacity planning, monitoring, resource optimization and management for their projects. For well calculated and planned workloads, as well as seasonal spikes, this setup costs less than any public cloud like AWS.
The planning factors for an OpenStack setup

Organizations need to plan the requirements and solution optimization to a specific level along with growth anticipation in advance to make the maximum out of an OpenStack solution. Unless it is a service model, there must be expertise in managing the OpenStack deployment in-house or contracted. Vendor support is available at affordable and reasonable cost for OpenStack service models from the very deployment phase to operational and growth phases. The global community behind OpenStack delivers integration and consultation support that enables organizations to leverage the advantages of OpenStack for the benefits of their IT environment. It is true that OpenStack setup needs planning, expertise and initial capital investment unless you are using a hosted OpenStack solution. But that is a lag that you will be experiencing until reaching the threshold limit of initial resource, computational and bandwidth requirements. When your system becomes mature and starts operating and growing at linear levels, the OpenStack cloud platform starts to return results including cost effectiveness, steadily and continuously.