I’ve been wanting to get a write up done for WordPress on AWS, the fact that it is free for a year, since they’ve released the free-tier many months ago. Well I finally got around to it, however it isn’t a write up. I went ahead and put the work in to produce a video of the steps for setup & configuration. Enjoy.
The commands to install php, mysql, httpd (apache), and manipulate the config files are included below for copy and paste needs.
Create a Linux Instance on AWS – create & assign an IP Address
————————————————————————————
# Web application to manage MySQL
# Order Deny,Allow
# Deny from all
Allow from all
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin
————————————————————————————
service httpd restart
service mysqld start
/usr/bin/mysqladmin -u root password ‘somepassword’
vi /etc/httpd/conf.d/phpmyadmin.conf
vi /usr/share/phpmyadmin/config.inc.php
Here’s the basic outline of what I intend to speak on at the upcoming presentation I have for the Bellingham, Washington .NET Users Group. If you happen to be in the area you should swing by and give it a listen (or heckle, whatever you feel like doing).
On April 5th I have a talk lined up with the Bellingham .NET Users Group. So far here’s a quick one over of the talk:
What Cloud Computing REALLY is to us techies
Geographically dispersed data centers.
Node based – AKA grid computing configurations that are…
Highly Virtualized – thus distributed.
Primarily compute and storage functionality.
Auto-scalable based on demand.
What kind of offerings exist out in the wild?
Amazon Web Services
Rackspace
Orcs Web
GoGrid
Joyent
Heroku
EngineYard
…many others and then the arrival in the last year”ish” of…
Windows Azure
AppHarbor
Developing for the cloud, what are the fundamentals in the .NET world?
Well, let’s talk about who has been doing the work so far, pushing ahead this technology.
Linux is the OS of choice… free, *nix, most widely used on the Internet by a large margin, and extremely capable…
Java
Ruby on Rails
Javascript & jQuery, budding into Node.js via Google’s V8 Engine
The Heroku + EngineYard + Git + AWESOMESAUCE capabilities of pushing… LIVE to vastly scalable and distributable cloud provisions!
So where does that leave us .NETters?
AWS .NET SDK released a few years ago.
Windows Azure & SDK released about a year ago.
These two have however been lacking compared to Heroku and EngineYard for those that want something FAST,
something transformative, easy to use, without extra APIs or odd tightly coupled SDKs.
Enter…
AppHarbor
In Summary the .NET Platform has primarily:
AWS for the top IaaS and most widely available zones & capabilities at the absolutely lowest prices,
Windows Azure for the general build to PaaS Solution, and for the people lucky enough to be going the Git +
MVC + real Agile route, AppHarbor is the peeminent solution.
I’ve been wanting to do a quick write up on the state of cloud apps from my perspective. What’s my perspective? Well I’m keeping up with the SDKs from the big players; AWS and Windows Azure. I’m also working on several cloud applications and providing consulting for some people and companies when approached related to which stack to go with, how to apply their current stacks (such as Ruby on Rails or .NET) in migrating to a cloud service provider. Cloud services, or really more accurately utility computing has my personal and professional interest. Above all, I keep trying to stay informed and know what the best path is for anyone that seeks my advice for moving into hosting & working in the SaaS, PaaS, or IaaS Space. Feel free to contact me in regards to cloud questions: adronhall at the famous gmail dot com. 🙂
Now on to the good tidbits that have been released lately.
These two SDKs are great for customers who want to build on the bare bones X platform. Now whatever language & stack one builds in they are tied to that. Ruby on Rails, .NET, Java, PHP, or whatever. But getting tied to the stack is kind of like breathing air, one has to live with what air they have. You can’t exactly get a refund very easily on that.
The Cloud SDKs though for Azure & AWS provide a certain amount of lock in, in addition to the stack lock in you’re using. One of the easiest ways to prevent this lock in is to use a general deployment method backed by source control on something like Git or Mercurial. So far though, .NET has been left out the cold. There has been almost zero support for pushing .NET via Git or Mercurial into a cloud.
Heroku
Ruby on Rails however has had support for this since… well since the idea popped into the minds of the people at Heroku, EngineYard, and the other companies that are pushing this absolutely amazing and powerful technology pairing.
Engine Yard
Again, for .NET, the problem is it has been left in the dust. Smoked. It has left a lot of .NET Developers moving to Ruby on Rails (which isn’t new, this is just one more thing that has pulled more developers away from the .NET stack).
Well, that’s changed a bit. FINALLY someone has gotten the Git + .NET Pairing in the Cloud put together! FINALLY you can get a cloud application running in a minute or two, instead of the absolutely inane amount of time it takes on Windows Azure (15+ minutes most of the time). So who has done something about this?
AppHarbor is the first fully deployable solution for the cloud that allows Git + .NET to get going FAST! I don’t work for these guys at all, so don’t think I’m shilling for them. I’m just THAT happy that .NET has been pulled out of the dust bins and the community has this option. I am flippin’ stoked matter of fact.
Currently, because of pricing and ease of deployment, I’ve been solely using AWS. I can have a .NET MVC app running in AWS in about 5-10 minutes. Between that speed of setup and the pricing, I pay 2/3 as much as Azure would be and can deploy much fast with a completely traditional .NET deployment. No special project type needed, no extra configs, just a straight deployment with full control over the server (i.e. I can RDP in with no problem). Anyway, the list of reasons I went with AWS over Azure really deserve an entire blog entry unto themselves.
AppHarbor
With AppHarbor though I can step into the realm of doing exactly the same thing a Ruby on Rails Developer would do with Heroku or EngineYard. Fully PaaS Capable with the scalability and features without needing to port or migrate to an entirely new stack! I’ll probably keep a number of things running on AWS (such as the pending WordPress Websites I am about to push up to AWS), but will absolutely be starting up some applications to run in AppHarbor.
If you’re a .NET Developer and you’ve been wanting, looking for, and frustrated that the .NET Community didn’t have a Git + Cloud Deployment option for .NET, wait no longer. Give AppHarbor a look ASAP!
Tomorrow is the big day! So be sure to come check out CloudCamp Seattle! We’re going to have a lot of great attendees, some rock star lightning talks and more. Make sure to get registered ASPA (click on the CloudCamp image above).
Location:
Amazon HQ
426 Terry Avenue North (At South Lake Union)
2nd Floor Conference Room
Seattle, WA 98109
Final Schedule:
6:00pm Registration, Networking w/ Food & Drinks
6:30pm Welcome and Thank yous
6:45pm Lightning Talks (5 minutes each)
Tony Cowan – WebSphere CloudBurst/Hypervisor Editions
Mithun Dhar – Microsoft Azure
Steve Riley – Amazon Web Services
Sundar Raghavan – Skytap
Josh Wieder – Atlantic.net
Margaret Dawson – Hubspan
Patrick Escarcega – “Managing Fear – Transitioning to the Cloud
7:30pm Unpanel
8:00pm Begin Unconference (organize the unconference)
8:15pm Unconference Session 1
9:00pm Unconference Session 2
9:45pm Wrap-up Session
10:00pm Raffle Books: “Host your website in the cloud” by Jeff Barr
10:15pm Drinks at 13coins sponsored by Clear Wireless Internet
Alright, time for the battle o’ clouds to roll on. In this throw down I’m going to compare platforms from the infrastructure and platform perspective. Windows Azure takes a very distinctive, and unique, Platform as a Service (PaaS) model and Amazon Web Services takes a very Infrastructure as a Service (IaaS) model. Each of these things start at different architectural levels for applications and provide different architectural perspectives. Before jumping into the comparison let’s take a look at what a developer, IT, or network specialist has to consider when building and deploying an application into either environment. I’ve highlighted the following steps to the specific profession that each model would most likely involve.
PaaS, Platform as a Service development and deployment model
Steps to Begin Building a Web Application or Service Application
Start a Project in your preferred development environment.
Build the code base. (Such as a web application or service application)
Create the platform web or service role for hosting the web or service application.
Setup the project deployment with the role parameters.
Deploy the project to that location.
Setup an appropriate domain name and point it at the site via nameserver/DNS.
IaaS, Infrastructure as a Service development and deployment model
Steps to Begin Building a Web Application or Service Application
Start a Project in your preferred development environment.
Build the code base. (Such as a web application or service application)
Start the OS Instance of your choice.
Install and configure the environment for hosting (IIS, Apache, or otherwise).
Setup the project deployment with the role parameters.
Deploy the project to that location.
Setup an IP address or externally accessible addressing for the instance.
Setup an appropriate domain name and point it at the site via nameserver/DNS.
As one can see there are more steps, and with reason, more costs to IaaS than to PaaS. With IaaS more control and with PaaS less control, but with the lack of control comes lower costs and barriers for entry. This is most likely, as I’ve heard more than a few times, why Microsoft has pushed the PaaS instead of going IaaS.
So how do each play out in offering the Platform as a Service?
First off, I have to point out that Amazon Web Services doesn’t really offer a PaaS. So comparing them directly is almost impossible. In addition, by not offerring a PaaS it sets up AWS at a disadvantage in this realm. But that being the case, there are 3rd Party Software Companies that offer PaaS Solutions for AWS such as Makara and Heroku. In addition there is rumor that AWS may be heading for a PaaS Offering soon.
I’ve fought with this topic in regards to AWS & Azure. It all really comes down to what your point of view is. So that’s how I’m going to score each of the services. I’ll layout a point of view (POV), which will be a simple description of the team that is building the cloud software, what the end goal is from the business in generic terms, then layout what would be a higher or lower cost, and finally which would provide the fastest time to market with the least amount of cost. It’ll be complex on the back end, but I’ll work to lay it out as neatly as I can.
POV: A Small Business, less than 15 people, working toward a website style SaaS Product.
The team has enough experience and technical skills to develop the product from AWS’s IaaS or Azure PaaS.
The business wants the product out to market in 3 months.
The team & business knows which geographic regions they need to focus on specifically.
The team wants control over instances and has flexibility of server OS, preventing OS lock in. (i.e. they can use Windows or Linux)
Autoscaling must be robust as traffic is expected, hopefully, to skyrocket as the product becomes recognized and available.
In this situation, AWS wins because of items 1, 2, 3, 4, and especially 5.
POV: A small business, less than 15 people, working toward a website style SaaS Product.
The team has .NET and Windows deployment experience, but minimal experience around networking, hosting, or infrastructure experience.
The business wants the product out to market in 3 months.
The team & business don’t care what geographic region the website is focused in.
The team doesn’t care about server lock in, Windows is fine by them.
Autoscaling and controlling traffic bursts isn’t a high priority for the team or business.
In this situation, Azure wins hands down based on 1, 2, 3, 4, and 5.
POV: An enterprise team wants to create a high quality code base, utilizing SCRUM with test driven development practices.
The team knows .NET and Java very well and a little bit of networking, hosting, and infrastructure.
The enterprise wants a steady release cycle of tested, highly reliable code.
The enterprise isn’t worried about which OS the team uses. Windows or a *nix variant.
Autoscaling is irrelevant, as long as capacity can be brought up and down in a timely manner to extremely high counts exceeding 1000+ instances.
In this situation, AWS wins hands down on 1, 2, 3, and 4.
POV: An enterprise team wants to deploy regularly, maintain their existing .NET stack, and utilize existing SDKs to keep the ramp up time minimal.
The team wants to use a familiar stack based on .NET and use SDKs if available.
The team isn’t concerned heavily with testable code, mostly just have a framework to build around that is familiar.
The business just wants the team to maintain familiarity with what exists in the company already.
The team wants to provide a single sign on (SSO) security implementation, using the cloud if possible.
In this situation, Azure wins easily for reasons 1, 2, 3, and 4.
POV: A Development team is putting together a public facing SaaS application.
The team wants to use whatever product has the best price point.
The team wants a strong enterprise style message bus to provide application messaging.
The business wants to deploy frequently and as soon as possible.
The team doesn’t care if the code is PHP, Java, .NET, or otherwise.
The team will create high quality code, and will build their own testing mocks, stubs, and other elements if need be.
The team doesn’t intend to use the SDKs from either AWS or Windows Azure, they want to keep lock in minimal so are building to services using good design patterns.
This situation is unique, and causes a tie between Azure and AWS for reasons 1 and 2 combined, 3, 4, 5, and 6.
Windows Azure
Based on these scorings, things might be a little confusing. I’ll elaborate a bit on some key points in the next entry on AWS vs. Azure. For now, I’m going to hand the victory to Windows Azure. The reason is simple, the PaaS perspective, in a little more than 50% of situation where PaaS or IaaS can be used should go with Windows Azure. In situations where a PaaS is desired then Windows Azure is pretty much the only serious option out there these days. Simply, Windows Azure just offers a ton of really serious features via cloud services for a PaaS offering. Stay tuned for the next grand battle between the cloud giants!
You must be logged in to post a comment.