Runway 7

Signs

signs is a global network of fast image proxy servers that resize your images on demand. All images are then served via our AWS Cloudfront CDN endpoint. We're also working on offering Goole's Cloud CDN as an option.

why we built it

Using a network like this lets you store your large high resoution images in a single place, and have any number of customized sizes and thumnails generated on-the-fly as and when you need them. This also allows you to load just the right size of image your user requires based on their screen size, retina density and possibly even the current bandwidth situation.

All generated images are also cached on the CDN, so all users requesting that image in that size are served instantaneously.

Put together, this allows you more flexibility in your designs, less bandwidth usage and a faster experience for your users.

how it works

You store your images in an AWS S3 bucket, and create a signs distribution with a set of IAM credentials that have specific read-only permissions on just that bucket. The URL for a disbribution looks like https://sgn.rw7.io/abcd1234.

When an image is requested using a URL like https://sgn.rw7.io/abcd1234/image1.jpg?w=1000, our servers

This version of the image is then cached on the CDN at locations around the world where it is being requested, ensuring tha future requesters will recive it very quickly.

cost effectiveness

The input bandwidth used to load your images into signs and resize them is charged at at USD $0.25 per GB.

If you choose to use our CDN endpoints, signs charges a Simplified CDN Rate at USD $0.10 per GB. This includes all request costs and geographic differences, and is the same for both the AWS Cloudfront CDN and the upcoming Google Cloud CDN.

For example, if you have 5 images, each 1 MB or 0.001 GB in size, and you serve 2 sizes of each of them to 1000 users, your charges would be as follows:

Input Bandwidth:
5 images X 0.001 GB each X 2 sizes = 0.01 GB
0.01 GB X USD $0.25 / GB = USD $0.0025


CDN Bandwidth (assuming the sizes were 100 KB or 0.0001 GB each):
0.0001 GB X 2 X 1000 = 0.2 GB
0.2 GB X USD $0.10 / GB = USD $0.02

Keep in mind that depending on frequency of access, your image may be fetched multiple times from your bucket to re-generate the same version. For a distribution that's well cached and frequently accessed, your input bandwidth ought to be an O(log(n)) function of your CDN charges.

As signs grows and we're able to better negotiate high volume CDN rates with AWS & Google, you can expect the Simplified CDN Rate to automatically and consistently drop, even to a point where using signs becomes cheaper than using the CDNs yourself. By simply using the signs CDN endpoints, you can help speed up this process.

Should you wish to, you always have the option of placing your own CDN in front of either of the AWS Cloudfront or Google CDNs. This may be relevant to you if you already have a negotiated bandwidth agreement with a CDN. You will need to handle configuration on your own, though - it's not going to be possible for us to help you with any issues that relate to your CDN.

limitations

signs is designed specifically to be a write-once read-many system. This is because the initial fetch and resize of each specific version of an image may take up to several seconds, depending on geography and other factors. If your use-case is to generate a lot of variations that are only served to users once or twice each, signs may be a sub-optimal solution. Optimal use is to make sure generated images are served from the CDN as much as possible.