Purchasing and redirecting a web page

(This post has been superceded by a newer one that shows an easier way.)

Often, picking a project name seems to boil down to “find a .COM domain name that hasn’t been taken and name it that.”  There should be much more to it than that, but this is a part of it.  It is fairly easy to buy a domain name and point it at your favorite host, and it costs only on the order of $20/year, so I find myself accumulating domains even for potential future projects.

Plan ahead.  The instructions say that it can take up to 3 days for the registration to complete.  I’ve never seen it take that long, but be prepared in case it does.

Step 0: Hold off using the domain

The Domain Name System (DNS) caches information about domain names, both on your local computer and on the various computers that help with the lookup.  This means that if you go looking for a host, a lot of information is retained for up to several hours.  So don’t go looking for your host until you’ve gotten the redirect set up.  And expect it to take a while when you change the redirect before you see the change.

Step 1: Pick a provider

This has turned out to be the most challenging step for me.  I started with godaddy.com, who had excellent pricing, intuitive user interfaces, rapid response, great tech support, and is in almost all ways an ideal provider.  Then I realized that their funky name actually refers to an activity that is both demeaning to women and morally bankrupt.  This prevents me from being able to to recommend them.

My second attempt, 1&1, also has low prices and has no discernible negative corporate or branding connotations.  Unfortunately, I have had several extremely terrible interactions with all operational aspects (slow and confusing interface, poor customer support, incorrect billing, and shutting down my domains right before closing for the weekend which made it impossible for me to reinstate them).  Don’t get me started.

Fortunately, Amazon Web Services has opened its Route 53 services, which include the ability to purchase domain names.  I’ve had good experiences with other AWS services, so I have high hopes for this one as well.  I recommend using them: https://aws.amazon.com.  If you sign up for Amazon Web Services as a new account, they give you one year of free server time (this will let you prototype your new project and make sure it is going to be worthwhile before having to pay to host a server online).  You’ll still need to pay for the domain name up front, but you don’t have to buy the domain from Amazon to make use of an AWS server.

Step 2: Get an account

Buying a domain requires signing up with a domain-name service provider.  I’ll walk you through doing this on Amazon Web Services here, but any provider will do for just forwarding a domain.

Head over to https://aws.amazon.com and click on the Create an AWS Account button.  Put in an email address to be associated with the new account and click on the I am a new user radio button and then click the Sign in using our secure server button.  Pick a name and a password (and re-type your email address to verify it) and then click the Create account button.  (Put this info into your favorite password vault so you remember it.  Be sure to choose a secure password — if someone gets this info, they can own your domain and rack up charges on your credit card).

The next page will ask whether you are creating a company account or a personal account.  If this is to launch your new project for Urbana ’15, you probably want to choose a Company Account to make it easy to hand things off later as needed.  I have found it to be important to make a new account for each new endeavor rather than piling a bunch of domains into my personal account — splitting them out later is more challenging.  It also keeps things cleaner to have a separate account for each endeavor.  You’ll also need to fill in a postal address where they can reach you, as well as a phone number (which they will be calling to complete your registration, so it should be a phone you can answer right away).  Fill in the funky characters for the security check.  Read the AWS customer agreement and make sure you are okay with its terms.  One important term is that you have the legal authority to enter in agreement for the company.  I’m not a lawyer, so can’t advise on contract terms.  If you don’t like their terms, find another provider with better terms.  You’ll need to find one whose terms you can agree with to proceed.

On the next screen, you need to enter credit-card information.  Note: AWS offers lots of services, some of which can cost a lot of money.  Be certain to keep your login information private and take care when activating services to ensure you don’t get billed for something you did not expect.  Other domain-name providers do not offer such a wide range of services, but care is still required.  On the plus side, AWS offers a set of free-tier features that you can try for free for up to a year and they won’t charge your card unless you use services that must be paid for.

Now would be a good time to put a reminder on your calendar for 11 months from now reminding yourself to cancel the account, so that you don’t end up getting charged for services you left running and forgot about.

They will call the phone number you entered above to make you enter a PIN number to verify that you are the one creating the domain.

Then you choose a support plan.  You’ll probably want the Basic (Free) plan; you can upgrade later if you need to.

Along the way, you will have gotten a few emails from AWS letting you know about your progress signing up with them.

Step 3: Purchase a domain

To purchase a domain, you need to log on to your account with your domain-name service provider.  If you are using AWS, you can log on at https://console.aws.amazon.com.  You use your email and password provided above.

There are a lot of options that you can choose from on the AWS management console, and more are added all the time.  For to purchase new domains, you want the Route 53 link.

Way on the right of the page that takes you to (I had to scroll right to find it), is a link for Domain Registration (Get started now).

This takes you to a table showing all of your domains, along with a Register Domain button, which you’ll use to add a new one.

Now comes the hard parts: (A) Finding a great domain name that has not yet been taken.  (B) Deciding what top-level domains (TLDs) to register for.

B: Starting with the second one first.  Way back when, there were three generic TLDs: .com (for business), .org (for nonprofit organizations), and .net (for networking providers).  Most of the world only grokked .com, so pretty much everyone wanted a .com domain even if they were not a company.  Basically, you now want to own the .com domain along with any others if you want to communicate with other than geeks.  There were also various country domains (the most famous of which is Tuvalu because they own the TLD .tv).  But now, the powers that be have decided to open up a bunch of new TLDs, and more are being auctioned off all the time.  So now we’re in the middle of DNS confusion and speculation, with domains going to the highest bidder, who then sells off subdomains for whatever they think they can get for them.  This produces a ton of different domains with different rates charged per year.  Start with the .com domain if you are not sure what you want, then decide how much you are willing to pay to keep others from buying up the other domains and then trying to sell them back to you.

A: Now to the first. After picking the TLD you want (maybe .com), you start putting names into the box on the left and trying them until you find one that matches your project and that hasn’t already been taken.  Don’t even bother trying 1-3 letter names, they have surely all been taken.  Since this is such a populated space, you’ll find that the domain provider will offer a bunch of suggestions on other TLDs, other spellings, and such when it can’t give you the one you want.  I don’t have much advice to give on how to find a good one that is not already taken.  For example, someone already has Urbana15.com and Urbana2015.com (not InterVarsity…).  On the other hand, nobody owned hack4missions.com or hack4missions.org, so I went ahead and purchased them defensively and plan to point them at a reasonable place and then see if Intervarsity wants to take over the domains before they expire in a year.

Once you find a domain name that you like, click on the Add to Cart buttons for all of the TLDs you want; the annual price for each is listed alongside the button.  Once they are all in your cart, click Continue.

Fill in your contact information for the domains on the next page and then click Continue.  Note that all of this contact info will be published on the global WHOIS domain-name registry.  This has in the past resulted in me receiving junk mail and phone calls offering me various services, some of which seems clearly misleading.

On the last page, read the agreement and make sure you agree with its terms before clicking the box.  If you agree with them, use the Complete Purchase button to charge your credit card and get your new domain(s).

This process will result in yet more email from AWS, one of which you must use to verify your email address before your domain can be registered.

Now you wait.  The instructions say that it can take up to 3 days for the registration to complete.  I’ve never seen it take that long, but be prepared in case it does.  In this case, it took less than half an hour to complete.

Step 4: Forward the domain

Once the domains have been registered, you can go back to your account. (For AWS, this means going to the management console and then clicking the Route 53 link.  At that point, the domains will be listed in a table on the bottom of the page).

The most challenging part of forwarding a domain is setting up a place to forward it to.  This will be covered in a separate post.  For me, I wanted to point the hack4missions domains at the main Hack4missions site at https://urbana.org/hack4missions.

Simple domain forwarding was actually easier on both GoDaddy and 1&1 than it is on AWS, but I’ll walk you through it below.  There are lots of options, and with any DNS editing there is the potential for things to go wrong.  When they do, it can be a pain to figure them out because of DNS caching.  If this happens to you at Urbana, come find me and we’ll try and figure it out together.

Here we go…

  • First, go back to the Management console and click on the S3 link.
    • Click the Create Bucket button.
    • In the Bucket Name field, put your domain name.  For me, I made one bucket for each: hack4missions.com and hack4missions.org.  The Region does not matter much, but you can pick it to be near your server if you prefer and know where it is.  Once the bucket has been created, it will show up in your S3 console.
    • Click on the name of the bucket to open it
    • Click on the Properties button in the upper right
    • Click on the Static Website Hosting pull-down
      • Click on the Redirect all requests to another host name radio button
      • Enter the IP address or host name and path you want to redirect to.  In my case, this is urbana.org/hack4missions.  For a public (elastic) IP address on AWS, it would be the IP address itself.
      • Press the Save button to save the redirect
  • Now that you have a redirected bucket, go back to the management console and click on the Route 53 link
    • Click on the Registered domains link on the left side of the screen
    • Click on the name of the domain you want to forward.
    • Click on the Manage DNS button
    • Click (again) on the name of the domain you want to forward.
    • Click Create Record Set
      • The Type is A.
      • Leave the Name field blank, to indicate you’re dealing with no subdomain.
      • Change Alias to Yes.
      • Click in the Alias Target field, and you should see a dropdown including an S3 Website Endpoints section. Select the S3 bucket you created in the previous step
      • Click Create to save the record set.

Now that you have created the alias, go ahead and try it out.  Open a web browser and type in the name of the new domain (for my example, hack4missions.org or hack4missions.com) and you should be redirected to your host.

If you’re at Urbana ’15 and this didn’t work, come find me and we’ll figure it out.