Live data from Hacker News

Why I left Heroku, and notes on my new AWS setup

holovaty.com

111–120 of 231 posts

Re: Why I left Heroku, and notes on my new AWS setup

#111

Earlier quoted context omitted.

What's the difference between EC2 and a VPS for you? Do your VPSs already have things installed or a GUI? I've used EC2 before as a single server, never scaling. The main difference was installing things that are usually pre-installed (like on Ubuntu's official desktop image). Is that it or is it more about the scaling? And thanks for the reference to Digital Ocean. Never heard of them before. Seems great, might try…

I have no idea, just things don't work on EC2. > Do your VPSs already have things installed or a GUI? Nope. I prefer straight-up Arch linux. ssh in and go from there. To add some concrete-ness to the mix, I was installing ejabberd. When it came time to ping the server... no response. I did the exact same steps on my Digital Ocean VPS and everything went fine. I had done whatever commands EC2 expects to open the right…

> I have no idea, just things don't work on EC2.

A raw EC2 instance is identical to your average VPS offering. You don't have to use all the extra alphabet soup of ELB, SQS, SNS, SES, etc.

> When it came time to ping the server... no response.

What were your security group settings? ICMP (ping, traceroute, etc.) are blocked by default, you have to enable them.

Re: Why I left Heroku, and notes on my new AWS setup

#112

How come nobody thinks about Google's App Engine (and/or Compute Engine) in these situations? Is it really that unbaked?

OP here. I actually used to use App Engine for Soundslice, about a year before Soundslice launched publicly. It was cool in principle, but it's severely limited to the point where I just couldn't run my app on it. Plus there was wildly varying performance with the database layer.

I'm sure it's gotten better since then (this was circa late 2011), but I'd think long and hard about using App Engine for anything nontrivial.

Re: Why I left Heroku, and notes on my new AWS setup

#113
post #59

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

I pitched a book to No Starch and a few others, and they all said there wasn't enough demand...

If you think they're wrong, write it anyway and put it in the Kindle store.

Re: Why I left Heroku, and notes on my new AWS setup

#114
post #65

I get a 500 when I go to the site. It seems like a bad omen for an article about your hosting setup.

Which site? My blog? The blog is still on Heroku, and it sounds like it was overloaded for a while there. I just upped the number of dynos, so it should be fine. I don't have any indication that soundslice.com (which is the site I'm hosting on AWS) was returning any 500s, but if it was, please let me know.

I am curious how many dynos you end up using under traffic for a blog site. Care to share?

Also, how many dynos did it take to handle the load on soundslice, when it was on the front page of reddit?

Re: Why I left Heroku, and notes on my new AWS setup

#115

Earlier quoted context omitted.

I have no idea, just things don't work on EC2. > Do your VPSs already have things installed or a GUI? Nope. I prefer straight-up Arch linux. ssh in and go from there. To add some concrete-ness to the mix, I was installing ejabberd. When it came time to ping the server... no response. I did the exact same steps on my Digital Ocean VPS and everything went fine. I had done whatever commands EC2 expects to open the right…

> I have no idea, just things don't work on EC2. A raw EC2 instance is identical to your average VPS offering. You don't have to use all the extra alphabet soup of ELB, SQS, SNS, SES, etc. > When it came time to ping the server... no response. What were your security group settings? ICMP (ping, traceroute, etc.) are blocked by default, you have to enable them.

> A raw EC2 instance is identical to your average VPS offering.

See, you say that, but then you later say

> What were your security group settings?

I dunno, man, I just want a server. Every other VPS provider works, and I can set up my own iptables etc.

I'm not saying EC2 is _bad_, as I'm sure things being extra mega locked down by default is good overall. But I don't think it's fair to say that EC2 is the same as a VPS.

Re: Why I left Heroku, and notes on my new AWS setup

#116

Earlier quoted context omitted.

What's the difference between EC2 and a VPS for you? Do your VPSs already have things installed or a GUI? I've used EC2 before as a single server, never scaling. The main difference was installing things that are usually pre-installed (like on Ubuntu's official desktop image). Is that it or is it more about the scaling? And thanks for the reference to Digital Ocean. Never heard of them before. Seems great, might try…

I have no idea, just things don't work on EC2. > Do your VPSs already have things installed or a GUI? Nope. I prefer straight-up Arch linux. ssh in and go from there. To add some concrete-ness to the mix, I was installing ejabberd. When it came time to ping the server... no response. I did the exact same steps on my Digital Ocean VPS and everything went fine. I had done whatever commands EC2 expects to open the right…

For EC2 security groups you have to open access to both the correct ports and protocols. Ports are a concept at layer 4 of the OSI model, while ping, or more correctly 'ICMP Echo Request', is lower down the TCP/IP stack at layer 3. So when configuring the security group, look for the option to choose Protocols, then enable ICMP :)

Re: Why I left Heroku, and notes on my new AWS setup

#117

Earlier quoted context omitted.

RDS is pretty expensive for what you get. You can't restore to a running instance from snapshots, you get very little control over the environment, and you can't replicate between geographic regions (only availability zones). I know you said you're a two man shop, but in this case it may make more sense to leverage other IaaS DB services instead of RDS.

I am not sure what you mean by "You can't restore to a running instance from snapshots" cause, well, I've done it a few times. Could you expand a bit maybe?

My apologies. I should've said "to an existing instance."

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_R...

"You must create a DB snapshot before you can restore a DB instance from one. When you restore the DB instance, you provide the name of the DB snapshot to restore from, and then provide a name for the new DB instance that is created from the restore. You cannot restore from a DB snapshot to an existing DB instance; a new DB instance is created when you restore."

Re: Why I left Heroku, and notes on my new AWS setup

#118
post #59

Earlier quoted context omitted.

I pitched a book to No Starch and a few others, and they all said there wasn't enough demand...

If you think they're wrong, write it anyway and put it in the Kindle store.

That's the approach I'm taking :)

Re: Why I left Heroku, and notes on my new AWS setup

#119
post #45

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

That's actually, honestly, a bad way to do it. It's fine to pre-load an instance with source and application/package dependencies. At this point though, you really should be backing those up with it being deployed by Puppet/Chef. Essentially you pre-run a puppet manifest and have it do all the first-run processing and then store THAT as the AMI/instance. This way you have an instance that only needs a few seconds to…

Puppet/Chef is overkill for a site running a config this simple.

Re: Why I left Heroku, and notes on my new AWS setup

#120

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

Would you be interested in a blog post about it? I'm a sysadmin/devops with 12 years in, and build stuff like this on a daily basis. I wouldn't mind sharing how the sausage is made.

I have quite a bit of devops experience myself, especially on Amazon Web Services and their CloudFormation service combined with Chef. I would be very interested in a blog post (or a series, go nuts!) and I'm considering doing a series of write-ups on our setup as well.
Post reply on HN