Gear6 Cloud Cache for AWS EC2 FAQ
Gear6 Cloud Cache for AWS EC2: Frequently Asked Questions
Jump down to Gear6 Cloud Cache on AWS FAQ
Gear6 Cloud Cache 3.0 with Dynamic Services
1. Gear6 has an existing Memcached server image available in the cloud. It offers extended cache capacity, enhanced performance, REST APIs and integrated reporting. How does this new dynamic Memcached server image differ?
A: The new Gear6 dynamic Memcached server provides the ability to grow & shrink the Memcached pool online without service disruption. Traditionally, adding or removing Memcached capacity requires clients to be reconfigured to include or remove individual Memcached servers and this can cause application problems due to forced client reconfiguration, data location changes and also the potential for misconfiguration or incoherent data. It's hard to smoothly grow (or shrink) the Memcached pool as needed without impacting the rest of the application.
2. How does that work? How do I create a dynamic Memcached pool? Do I need new client software? Application changes?
A: Simply start one or more Gear6 dynamic Memcached instances in the cloud. Each Gear6 instance contains our enhanced Memcached server as well as a new ServiceController component which allows the running instances to see each other in the form of an web overview. Programmatic access to both the Memcached server and the ServiceController is also available via REST APIs. From the overview, you form a Memcached pool by simply assigning a name for management purposes and then adding or removing running server instances to it as needed.
Clients can access the Memcached pool from any or all of the active instance IP addresses. They will get the same key/value view of the cache from any of the pool IP addresses. If you grow the pool, the system will automatically rebalance cache content across the servers while preserving content. Likewise on remove (though we can't guarantee that all the cache content will stick around when you terminate server instances!). The only requirement on the client side is that they are configured with the IP address of at least one of the active instances in the pool. No software changes or special client software is required. No application changes are required.
3. Do you support the Memcached ASCII and/or binary protocol?
A: We are fully compliant with the Memcached 1.2.8 ASCII protocol. Binary protocol support is in development.
4. What about system failures? How are they handled?
A: Built in availability systems keep the core Memcached server and other processes running and they will be restarted automatically on failure. Each instance's ServiceController continually monitors remote instance availability. If an instance fails or terminates unexpectedly, the ServiceControllers will reconfigure the Memcached pool to remove the failed instance.
5. Is there a way to get notified of events? Configuration changes? Failures? I'd like a feedback loop for the rest of my application.
A: Yes. The REST API to the ServiceController offers a COMET-style event interface. Simply do an HTTP GET on http://< instance ip >/api/ServiceController/latest/event and the call will block until either an event occurs (such as the Memcached pool changed) or a heartbeat message was received. An XML view of the latest service configuration will be returned in either case. The heartbeat message is a way for the infrastructure to tell an observer "I'm still alive!" and thereby avoid silent failures. More information can be found on http://www.gear6.com/memcached-resources/tools.
6. What about security? I don't want just anyone to reconfigure my Memcached pool! Do you offer multi-level security?
A: First off, we encourage the use of EC2 security groups to restrict access to both the management interfaces (web & REST) as well as the Memcached data service. The management interfaces are on TCP port 80/443, the Memcached data service is on TCP/UDP port 11211.
Beyond that, Gear6 offers a multi-level security system for management operations. Instances can be started with optional passwords passed in via instance user-data. If present, passwords are required to grant access to a particular authorization levels:
NONE: data service is available but no GUI/REST API access is permitted when operating at this authorization level except to authenticate for a higher authorization level.
VIEW: as NONE, but additionally view-only GUI/REST API operations are permitted when operating at this authorization level. Statistics and state may be viewed.
MODIFY: as VIEW, but additionally memcache pool grow/shrink are permitted when operating at this level.
7. Do you integrate with RightScale? Other cloud management platforms?
A: RightScale is a popular platform and we're working on integration. Others may follow, based on customer demand.
8. Your earlier Memcached server instances use the bundled block devices to increase the effective Memcached capacity to be bigger than memory size of the Amazon machine that’s running it (e.g. 1.7GB “m1.small” machine offers 6.17GB of Memcached storage)? Does that carry over?
A: Yes. The individual server instances that form dynamic Memcached pools use Amazon’s attached block devices to transparently add Memcached capacity. It also overcomes the 4GB memory size limitation of 32bit architectures.
9. Does it cost any more to use these block devices for extra Memcached capacity?
A: No. Our Memcached server uses the included block devices which come with each Amazon instance type from m1.small all the way to m2.4xlarge. These are built-in to in the base cost of running the Amazon instance and do not incur additional charges (like EBS or S3 services).
10. Is your server multithreaded? Can it take advantage of multi-processor (high CPU) instances?
A: Yes. The server auto tunes to the container it is started in and will automatically adjust concurrency and threading internally to take advantage of the hardware platform. That said, it really cares more about memory than CPU, so high memory instances (e.g. m2.4xlarge) are perfect for it.
11. How far back does the web UI go when showing data?
A: The web UI provides a rolling 24-hour look back into stats.
12. I see some Memcached stats I didn’t recognize. What are these?
A: The server provides some new synthetic stats describing health and response time. They are on the “health” tab. It also shows the block device utilization under “Storage”.
13. How about Memcached APIs – can I talk to the server and get management data such as stats? Do you have a REST API?
A: Yes. Normal Memcached telnet stats are available, but also a REST API for all stats is available under http://< instance ip >/api/MemcacheServer/latest/self/stats/{basic, items, storage, health,...}
14. How does that work?
A: Say you wanted to read the amount of evictions and feed that into an auto scaling application. By reading http://< instance ip >/api/MemcacheServer/latest/self/stats/basic/evictions you’ll get the current number of evictions returned as an XML document. Your scaling system could react to that by turning on or off Memcached servers dynamically as needed.
15. Is this free? How about support? Do you provide support?
A:The Gear6 Cloud Cache on AWS is in beta and free to run (not including AWS charges) until March 31st 2010. After March 31st, 2010 32 bit versions will be free to run. 64 bit versions will incur small charges paid through Amazon DevPay. Support is available for the beta period on our forums Gear6 Cloud Cache on AWS Forum. After the beta support is available for the free 32-Bit versions on our forums Gear6 Web Cache Server Forum. 64-Bit versions include paid 24x7 email support and forums.
Gear6 Cloud Cache on AWS
1. Why is the effective Memcached capacity bigger than memory size of the Amazon machine that’s running it (e.g. 1.7GB “m1.small” machine offers 6.17GB of Memcached storage)?
A: Gear6 Memcached Server uses Amazon’s attached block devices to transparently add Memcached capacity to the server. It also overcomes the 4GB memory size limitation of 32bit architectures.
2. How does that work? Do I need to change anything in my Memcached application?
A: No need to change anything. The system automatically makes a bigger server available by intelligently using the Amazon instance’s RAM and block device(s).
3. Does it cost any more to use these block devices for extra Memcached capacity?
A: No. Our Memcached server uses the included block devices which come with each Amazon instance type from m1.small all the way to m2.4xlarge. These are built-in to in the base cost of running the Amazon instance and do not incur additional charges (like EBS or S3 services).
4. How is performance? Aren’t block devices slower than RAM?
A: Our Memcached server intelligently places frequently used items in RAM (fast) and moves less frequently used items onto slower block devices. It constantly auto tunes placement and will evict the least interesting items to make room for new data using frequency of access and other criteria. Overall performance should be comparable to a memory-only server. The web user interface shows the block device utilization under the “Storage” tab.
5. Is your server multithreaded? Can it take advantage of multi-processor (high CPU) instances?
A: Yes. The server auto tunes to the container it is started in and will automatically adjust concurrency and threading internally to take advantage of the hardware platform. That said, it really cares more about memory than CPU, so high memory instances (e.g. m2.4xlarge) are perfect for it.
6. How far back does the web UI go when showing data?
A: The web UI provides a rolling 24-hour look back into stats.
7. I see some Memcached stats I didn’t recognize. What are these?
A: The server provides some new synthetic stats describing health and response time. They are on the “health” tab. It also shows the block device utilization under “Storage”.
8. How about APIs – can I talk to the server and get management data such as stats? Do you have a REST API?
A: Yes. Normal Memcached telnet stats are available, but also a REST API for all stats is available under http://< instance ip >/api/MemcacheServer/latest/self/stats/{basic, items, storage, health,...}
9. How does that work?
A: Say you wanted to read the amount of evictions and feed that into an auto scaling application. By reading http://< instance ip >/api/MemcacheServer/latest/self/stats/basic/evictions you’ll get the current number of evictions returned as an XML document. Your scaling system could react to that by turning on or off Memcached servers dynamically as needed.
10. Is this free? How about support? Do you provide support?
A: Yes. 32 bit versions are free to run. 64 bit versions incur small charges paid through Amazon. Support is available for the free 32-Bit versions on our forums Gear6 Cloud Cache on AWS Forum. 64-Bit versions include paid 24x7 email support and forums.
