{
  "id": "963a4c3375c5",
  "url": "http://www.37signals.com/svn/posts/1440-using-the-ec2-environment-for-fewer-moving-parts",
  "title": "Using the EC2 environment for fewer moving parts",
  "note": "One highlight of Amazon’s EC2 is having a wide range of generally available services to help reduce moving parts.\n\n\n\nWe store part of our cluster configuration in S3. The server instances pull this configuration and bootstrap from there using a simple set of rake tasks and a server provisioning tool, Sprinkle. You could use SimpleDB for a similar purpose. One could serve as a backup of the other, given their similar APIs. Either way means fewer moving parts.\n\n\n\nAnother vital EC2 feature is passing arbitrary data to an instance. Many bundled images now automatically execute a blob of text you pass to the instance on boot as a shell script, like those supplied by Alestic. We use this to sync configuration scripts and packages from S3.\n\n\n\nWhile reading Tim Dysinger’s article on using EC2 as a simple DNS, I thought this was a great way to remove the need for an internal DNS server on EC2 for smaller setups. We use a similar technique: specifying a single EC2 Security Group for a host as its identifier. Each server generates its hosts file every minute. Simple, effective and one fewer moving part.\n\n\n\nSecurity groups are useful for describing roles and other identifying information about each host. We use this information to generate Nagios monitoring configuration files. For example, a security group named “role: app” will automatically enable HTTP checks and Passenger memory checks.\n\n\n\nAll this means less dependence on a centralized configuration server or pushing large sets of commands over SSH manually. While these techniques are effective, they require more moving parts and their own care and maintenance.\n\n\n\nAs your application’s complexity increases, you’ll thank yourself for the opportunity to reduce the complexity underneath it.\n\n  \n",
  "voice": "excerpt",
  "saved": "2008-12-02T12:37:00Z",
  "host": "37signals.com",
  "kind": "page",
  "tags": [],
  "record": "https://links.thingelstad.xyz/links/963a4c3375c5/",
  "markdown": "https://links.thingelstad.xyz/links/963a4c3375c5.md",
  "issues": [],
  "connections": {
    "same_host": {
      "count": 15,
      "page": "https://links.thingelstad.xyz/hosts/37signals.com/",
      "nearest": [
        {
          "id": "58509442b87d",
          "title": "Are you sure you want to be in San Francisco?",
          "url": "http://www.37signals.com/svn/posts/987-are-you-sure-you-want-to-be-in-san-francisco",
          "record": "https://links.thingelstad.xyz/links/58509442b87d/"
        },
        {
          "id": "d8fa603be089",
          "title": "Showing the difference between a 19\" and 22\" suitcase",
          "url": "http://www.37signals.com/svn/posts/1481-showing-the-difference-between-a-19-and-22-suitcase",
          "record": "https://links.thingelstad.xyz/links/d8fa603be089/"
        },
        {
          "id": "124c6686f0e7",
          "title": "Getting Real and Design",
          "url": "http://www.37signals.com/svn/posts/1497-getting-real-and-design",
          "record": "https://links.thingelstad.xyz/links/124c6686f0e7/"
        },
        {
          "id": "f1700a689155",
          "title": "PHOTO: Where do you turn when you need \"Happy Birthday",
          "url": "http://www.37signals.com/svn/posts/1632-where-do-you-turn-when-you-need-happy-birthday",
          "record": "https://links.thingelstad.xyz/links/f1700a689155/"
        },
        {
          "id": "75f74344540c",
          "title": "QUOTE: I don't care how good you are at programming",
          "url": "http://www.37signals.com/svn/posts/1768-i-dont-care-how-good-you-are-at-programming",
          "record": "https://links.thingelstad.xyz/links/75f74344540c/"
        }
      ]
    },
    "same_week": {
      "count": 14,
      "nearest": [
        {
          "id": "9bfd8c092238",
          "title": "change.gov set free",
          "url": "http://lessig.org/blog/2008/12/changegov_set_free.html",
          "record": "https://links.thingelstad.xyz/links/9bfd8c092238/"
        },
        {
          "id": "e1efc9e765a1",
          "title": "Business Journal Piece On Mobile Orchard",
          "url": "http://www.unpossible.com/2008/12/01/business-journal-piece-on-mobile-orchard/",
          "record": "https://links.thingelstad.xyz/links/e1efc9e765a1/"
        },
        {
          "id": "3de29af03248",
          "title": "Announcing 37signals' new book deal",
          "url": "http://productblogarchive.37signals.com/products/2008/12/announcing-37signals-new-book-deal-.html",
          "record": "https://links.thingelstad.xyz/links/3de29af03248/"
        },
        {
          "id": "7c03c77fa9e5",
          "title": "Fine-tune Your RSS Subscriptions",
          "url": "http://gigaom.com/collaboration/fine-tune-your-rss-subscriptions/",
          "record": "https://links.thingelstad.xyz/links/7c03c77fa9e5/"
        },
        {
          "id": "14bdb1068ead",
          "title": "Recovering Photos from a Corrupt Memory Card with PhotoRec",
          "url": "http://regex.info/blog/2008-12-03/1016",
          "record": "https://links.thingelstad.xyz/links/14bdb1068ead/"
        }
      ]
    },
    "mentions": [],
    "mentioned_by": [],
    "saved_twice": []
  },
  "elsewhere": {
    "wayback": "https://web.archive.org/web/*/http://www.37signals.com/svn/posts/1440-using-the-ec2-environment-for-fewer-moving-parts"
  }
}
