Archive for the ‘hosting’ Category
One of the major problems with WinHost is that you don’t get much disk space, their base plan comes with not even 2GB but 2000MB. One way to stretch this disk space is to host images and other big files using Amazon’s S3 service and just keeping your ASP.NET/PHP e.t.c code files at WinHost. To make this hosting appear seamless to your visitors, Amazon allows users to alias a sub-domain or domain to their hosting service. This way users see your domain i.e s3.xyzio.com but the files are pulled from AWS.
The setup is not very complicated and takes about 2 hours, most of which is spent waiting for your sub-domain name to propagate. First, log into the AWS S3 console and create a bucket named after your sub-domain – s3.xyzio.com here:
Then log into your WinHost control panel and click on DNS Manager. There under Manage CNAME Records enter your sub-domain for Domain Name, s3.amazonaws.com for the Destination and 3600 for TTL. TTL stands for Time-To-Live and denotes how long in seconds the alias is maintained before it is refreshed. Here setting it to 3600 means that it will be refreshed every hour:
Now wait for about two hours. Then you can access any file you’ve uploaded on AWS using the following format: http://<domain>/<directories>/<file-name>. For example, the image above is hosted on AWS at the following address: http://s3.xyzio.com/s3_cname/winhost_cname.jpg.
You can use https to securely link to your image. This will throw a warning message in your browser because the domain and hosted domain names are different i.e. https://s3.xyzio.com/s3_cname/winhost_cname.jpg.
Of course you can also link directly to your file using the AWS linking convention: https://s3.amazonaws.com/s3.xyzio.com/s3_cname/winhost_cname.jpg or http://s3.xyzio.com.s3.amazonaws.com/s3_cname/winhost_cname.jpg
And that is it. Now you can easily extend your disk space at WinHost without having to upgrade!
It has been a year since I moved my website off Mono at Linode to WinHost and I’m being honest here – the hosting has been absolutely boring and that is a great thing!
After spending some time looking at ASP.NET hosts it came down to DiscountASP.NET, GoDaddy, and WinHost. I ended up choosing WinHost because they offered database hosting in their base package, promise not to oversell, and I couldn’t find any bad reviews about them. Looking at my other options – The web is littered with bad GoDaddy reviews and DiscountASP.NET doesn’t offer a MS SQL database (or any database) at the same WinHost price point.
Unlike hosting with Mono – I do not have dink around with arcane text files, there is a nice GUI interface to manage my site. I can select my ASP.NET version, manage my databases, and do everything I need to manage my site through their interface. My website and iTextSharp based BingoCard maker just work! In addition, I’ve had no downtime or hosting issues since I’ve started hosting with them. Perfectly boring!
Of course nothing is perfect – I’ve had a few a couple issues with them:
Their auto installer would only install WordPress in domain.com/wordpress. I couldn’t choose another sub-directory like /blog or /diary. However, I was able to manually install WordPress in a different directory on my own.
Another problem I’ve had is that I had trouble connecting to WordPress Jetpack through my install. However it seems that they’ve now fixed the issue.
One last annoyance is that they don’t include Scheduled Tasks in their basic $5 package. This means that I can’t set up tasks a-la-Cron like a Mono-on-Linux install would allow.
Overall I’m happy with my experience, perfectly boring ASP.NET hosting with database for just $5/month where everything Just Works!
Have other questions? Check out the WinHost forums!
I’ve switched to using Mono at DigitalOcean on their base droplet. I get 20GB of disk space and greater ability to run scripts or set up a database for just $5/month. Also, WinHost changed their monthly price to $5.95/month with a 3-month pre-pay so DigitalOcean with Mono is cheaper, faster, and comes with more features.
I still highly recommend WinHost for beginners and for those that want no-hassle hosting. Maintaining your own server does take time and sometimes requires technical troubleshooting.
I was looking for ASP.NET hosting for the project I built to learn C#/ASP.NET. CrystalTech isn’t the cheapest host or gives the most features for your dollar but I decided to sign up because it is the host used and recommended by Jeff Atwood.
I signed up for the .NET Value plan at $7.95/month. I got the following for my $7.95/month:
- Hosting for 1 site only
- 500 MB disk space
- 50 GB bandwidth
- 2 GB mail disk space
- 10 mail accounts
- 100 MB MySQL database
I paid for 3 months in advance so I didn’t have to pay the setup fee. I was a member from July 2008 through February 2009.
Signing up was easy. I filled out the online form, entered my credit card number, and they started on setting up my account. I finished applying at 8:18PM and had my account information at 8:58PM on the same day.
CrystalTech’s control panel is the worst I have used. They make you log in with a hard to remember customer number instead of a easy to remember user ID. Instead of giving you a overview of your site, the main control panel page is a massive advertisement for their services. I am logged in now and I see ads for Paypal and virtual servers – and this is for a service that I’ve paid for! Even worse, the control panel has poor support for non-IE browsers, I cannot access any of the settings in the control panel with my daily browser – Opera.
Visual Studio has a great GUI for transferring websites and I was easily able to use it to upload my files after I managed to set up a FTP account. Their uptime isn’t too great, I get maintenance notifications 1-2 times a month alerting me that my site will be down for a couple hours. Their last downtime notification was about 2 weeks ago, compare this with my linode virtual server that has been up for 46 days!
Unlike all the other hosting companies I have used, CrystalTech makes you call in to cancel your account. Canceling online is not allowed.
I was very disappointed with CrystalTech’s hosting experience. Their constant downtime, poorly designed control panel, and ads are a pain. In addition, they’ve graciously decided to spam me with their monthly newsletters. Their poor service is apparent when a little while after I signed up, they lost all the data that Jeff Atwood had stored on their servers.
Since then, I’ve moved my site to Linode and set it up to serve ASP.NET pages using Mono. For about $12 more (1.5x more), I get a shell account, dedicated memory, 4x more bandwidth, 32x more disk space, and the ability to host unlimited websites. I would not recommend CrystalTech as a host.
I’m looking into moving one of my ASP.NET projects to Mono and had trouble getting Mono working on Ubuntu 9.10. Turns out the steps to set it up were simple, but they took some digging around so here they are:
apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
Enable the Universe repositories. To do this, uncomment the universe repositories in /etc/apt/sources.list so it looks like this:
Run ‘apt-get update’ to get the latest sources.
Finally, follow the steps listed in the Ubuntu ModMono guide:
Install the mod_mono packages: libapache2-mod-mono mono-apache-server2-
apt-get install libapache2-mod-mono mono-apache-server2
Enable the Apache module:
Place a .aspx page where Apache can see it, for example at ‘/var/www/’
I have a VPS at Slicehost that I use to play around with Linux, it is much easier and convenient to use their remote service than dealing with the security, noise, and heat of running my own machine at home. However their VPS doesn’t come with much disk space, the base 256MB plan only allows for 10GB of disk space. So, I needed a way to offload my files so that I can shutdown my server when I don’t need it. Slicehost pro-rates their charges so I don’t keep my VPS active unless I’m using it which saves me money. I did a lot of research before settling on s3sync to save my files. I tried using Jets3t but it requires Java which was slow and it is GUI based which means I had to run VNC to access it. s3sync runs on Ruby and is on the command line which makes it perfect for running over SSH.
s3sync consists of two utilities, s3sync and s3cmd. s3sync is a utility that will keep folders synchronized between Amazon S3 and your hard drive. This utility is perfect for syncing your personal directories with Amazon for backups or to keep your development and production sites in sync. s3cmd is billed as a counterpart to s3sync for managing your Amazon S3 account, however it is also great as a standalone tools for uploading, downloading, deleting, and managing single files. I mostly use s3cmd on my VPS and that is what I’ll focus on here.
Assuming you are staring from a fresh installation, first install Ruby. From Slicehost’s Ubuntu Ruby-on-Rails guide:
apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 libreadline-ruby1.8 libruby1.8 libopenssl-ruby
Then, install the symlinks:
sudo ln -s /usr/bin/ruby1.8 /usr/bin/ruby
sudo ln -s /usr/bin/ri1.8 /usr/bin/ri
sudo ln -s /usr/bin/rdoc1.8 /usr/bin/rdoc
sudo ln -s /usr/bin/irb1.8 /usr/bin/irb
Now, download, unzip, and untar s3sync:
tar -xvvf s3sync.tar
You should now have a directory called s3sync containing the s3sync files. Create a directory called .s3conf and copy the s3confg.yml.example file to it as s3config.yml. This is where s3sync will look for its configuration options. The README file lists additional locations you can specify the configuration options.
cp ./s3sync/s3config.yml.example ./.s3conf/s3config.yml
Finally, open .s3conf/s3config.yml and edit the aws_access_key_id and aws_secret_access_key. Set them to your S3 access key and S3 secret access key respectively.
You are now set use s3cmd and s3sync. Run the utilities without any arguments to get a listing of the options and commands. I have found the -v (verbose) and –progress (progress bar) options to be great in giving me an update on what is going on during the file load/download process. Some examples:
s3cmd.rb listbuckets –> Lists all your buckets
s3cmd.rb createbucket/deletebucket –> Create and delete buckets
s3cmd.rb list <bucket> –> Lists all tokens in bucket
s3cmd.rb get/put <bucket>:key filename –> Copies filename from/to S3
s3sync can be used to synchronize local folders with buckets:
./s3sync.rb <bucket>:token local_dir –> sync your bucket with the local dir. The –make-dirs option will create local directories as needed for first time downloads.
You will see that s3sync and s3cmd are very capable tools for interacting with S3. Besides the command line, they are also scriptable and you can set up regular syncs and uploads/downloads via cron. They have given me access to virtually unlimited cheap disk space and simplified the complexity of managing my files.
This is the first of several articles I’m going to write about Amazon S3. I’ve done a lot of research and cheap, secure, reliable, and publicly hostable disk space is hard to come by. Sure, there are some companies such as dreamhost and mediatemple that offer enormous amounts of disk space at a low price but often they put restrictions on the file size, locations, and types of files you can save. Other companies even give it away for free, but I wonder how they plan to survive by giving their product away for free. Ads may pay for some of their costs initially, but I doubt they will pay enough as they scale up their operation. I have a feeling that many of them will simply disappear along with the data entrusted to them. I invite you to come back to this post in a year and see how many of these hosts are still around.
My search for a cheap, reliable, and secure place to backup my data ended when I found out about Amazon S3 (Simple Storage Service). S3 is touted as a data storage service and that is all that it is. There is no limitation on the types or quantities of files one can store. They charge you on a pay as you go plan and there are no upload and download limits. You simply pay for what you use. Amazon’s own website is a testament to their experience in building massively scalable services. These are their rates at this time:
$0.15 per GB-Month of storage used
$0.100 per GB – all data transfer in
$0.170 per GB – first 10 TB / month data transfer out
$0.01 per 1,000 PUT, POST, or LIST requests
$0.01 per 10,000 GET and all other requests*
Considering how much other hosts charge, their rates are very reasonable. Their storage and transfer rates have been coming down and I think this trend will continue.
Amazon has built a very simple API with a high level of abstraction for its S3 service. Data is stored in ‘buckets’ and each bucket can contain an unlimited number of objects up to 5GB in size. Objects can be made public or private which makes it ideal for hosting large files as well as using it for backing up your data. In addition, you can choose to store your data in either Europe or the United States which gives your data an additional level of geo-redundancy and allows you to deliver files to users around the globe with minimal latency.
As a results of this simple API, Amazon S3 is very versatile and has a diverse eco-system built up around it. A simple search for amazon s3 tools turns up several tools that abstract away the S3 API and simplify the user experience. Of these, s3sync and JetS3t are my favorite. I use jetS3t to back-up important files on my computer to S3 and s3cmd from the s3sync package to upload files I want to share.
In future columns, I’ll write more about these tools and how I use them to simplify my life.
A while back I wrote an article of how I came to choose RailsPlayground for my next host. I have been their customer for the past 3 months and I thought I’d write a review for those that are interested. After looking at several hosts, I chose RailsPlayground because of their rails support, ssh access, excellent support, and no limitation on how I use my disk space.
Signup was painless, I entered my information and credit card info on April 4 at about 9 AM and I received my log-in information at 4PM on the same day. These are the major details of my hosting plan, The Developer Plan:
- Storage: 5GB
- Bandwidth: 30GB/month
- Shell Accounts: 1
- Cost: $5/month
In addition, I also receive the following:
- Access to PERL, PHP, Ruby, Python, TCL, and Ruby on Rails in your shell
- Unlimited domains, sub-domains, e-mail accounts e.t.c
- Postgres and MySQL databases
- Nightly backups
- 1GB storage/10GB transfer SVN and Trac hosting
With all this, no wonder it is called the Developer Plan! It has everything a developer needs to get started with Rails for web development and work with their favorite language. The SVN and Trac hosting makes version control and issue tracking for yourself or your team easy. According to the description page, their “latest server features Dual Opteron processors with 2 GB of RAM and Raptor 10k RAID 5 protected hard drives.” They don’t list how this maps to their other servers.
So far, their hosting has been solid. I’ve never experienced a slow connection and my server, baldr, has been up longer than I have been a subscriber. My machine is lightly loaded, I’ve seen a load average of 1 only once and it was due to a run-away process. You can always check its uptime on my uptime page or visit my main site.
RailsPlayground uses CPanel as its control panel. The panel has all the features you need to manage your account without ever logging into the shell account. You can add/delete e-mails addresses, databases, backups, domains, sub-domains, and everything else that involves web hosting. The panel includes Fantastico, a one-click installer for many free popular programs such as blogs, wikis, and CRM software.
I’ve had to contact RailsPlayground twice and both times I’ve received excellent support. The first time was to report a run-away process, they answered my e-mail 10 minutes after I sent it and they killed the process right away. The second time, I e-mailed them to set up the SVN account that is included with my hosting package, I sent the email at 9:42PM and they had it ready less than 9 minutes later – I received the confirmation e-mail at 9:51PM! I am very happy with their support.
I haven’t used the documentation at RailsPlayground much. In addition to contacting support, you can also have a wiki for articles and a forum for questions. I once had trouble setting up an e-mail address for automatic notifications, they have a very nice tutorial for it in their wiki that I was easily able to follow that fixed my problems.
One of my deciding factors for choosing RailsPlayground was their shell access. The developer account gives you 1 shell account and this one account is sufficient for me. The shell is accessible via SSH and they put you in a Jail-shell to limit potential damage, that has never gotten in my way. I haven’t seen a time limit, I’ve been logged into my shell days at a time. Likewise, I’ve seen no process limitations, I have several cron jobs that run from once daily to every half-hour and I’ve never seen them delayed or stopped. From the shell you have access to everything you would in a standard UNIX environment – vim, emacs, cron, lynx e.t.c. One thing I noticed is that they don’t have screen installed so you have to log into multiple sessions if you plan on doing any serious editing.
I’m very pleased with the features, hosting, and support at RailsPlayground. Rather than overselling and trying to hook customers on quantity, they deliver quality and strive to please. They have features that fit all users, shell access makes it easy for experts and CPanel makes it easy for newbies. The multiple language support make it easy for users to develop applications in a familiar environment. If you don’t believe it, feel free to visit my site or my uptime page to see how they are doing :).