Databases in the Hosted Cloud

现在几乎每个人都在托管云中使用某种形式的数据库。您可以在多个云提供商中使用托管的mysql、mariadb、percona server和postgresql作为数据库服务(dbaas)。
您将了解Amazon RDS的各种公共云产品(包括Aurora、Google Cloud SQL、Rackspace OpenStack DBAS、Microsoft Azure和Alibaba Cloud)之间的差异,以及您拥有的访问方法和控制级别。在云上托管可能是一个挑战,但在今天的网络研讨会之后,我们将确保您能够更好地了解如何利用云来满足业务需求。


1.Databases in the Hosted Cloud Colin Charles, Chief Evangelist, Percona Inc. / | @bytebot on Twitter Percona Webinar 29 August 2018

2.whoami • Chief Evangelist, Percona Inc • Focusing on the MySQL ecosystem (MySQL, Percona Server, MariaDB Server), as well as the MongoDB ecosystem (Percona Server for MongoDB) + 100% open source tools from Percona like Percona Monitoring & Management, Percona xtrabackup, Percona Toolkit, etc. and now PostgreSQL too! • Founding team of MariaDB Server (2009-2016), previously at Monty Program Ab, merged with SkySQL Ab, now MariaDB Corporation • Formerly MySQL AB (exit: Sun Microsystems) • Past lives include Fedora Project (FESCO), • MySQL Community Contributor of the Year Award winner 2014

3.Agenda • MySQL as a service offering (DBaaS) • Choices • Considerations • MySQL versions & access • Costs • Deeper into RDS • Should you run this on EC2 or an equivalent? • What about PostgreSQL? MongoDB? • Conclusion

4.Database as a service • Database as a Service (DBaaS) • MySQL/PostgreSQL available on-demand, without any installation/ configuration of hardware/software • Pay-per-usage based • Provider maintains database, you don’t maintain, upgrade, or administer the database

5.New way of deployment • Enter a credit card number • call API (or use the GUI) aws ec2 run-instances --image-id ami-xxx -k $ {EC2_KEYPAIR} -t c3.large nova boot --image centos6-x86_64 --flavor m1.large db1 credit:

6.Why DBaaS? • “Couldn’t we just have a few more servers to handle the traffic spike during the elections?” • Don’t have a lot of DBAs, optimise for operational ease • Rapid deployment & scale-out

7.Your choices today • Amazon Web Services Relational Database Service (RDS) • Rackspace Cloud Databases • Google Cloud SQL • Alibaba Cloud • Oracle Cloud MySQL Service • Microsoft Azure Database

8.There are more • Jelastic - PaaS offering MySQL, MariaDB Server • ClearDB - MySQL partnered with Heroku, Azure clouds • Joyent - Image offers Percona MySQL and a Percona SmartMachine

9.Google Compute Engine • Google Compute Engine offers Percona XtraDB Cluster as a “click- to-deploy” app • comes with Galera 3, Percona Toolkit, XtraBackup as well

10.Pivotal CloudFoundry • Pivotal CloudFoundry • “MySQL” PaaS which is MariaDB Galera Cluster 10 (v1, legacy) • MariaDB v10.1.30 and Galera v25.3.20 (latest release, June 12 2018) • MySQL for PCF v2 • Percona Server v5.7.20-21 (latest release, June 22 2018) • Works with IaaS platforms: AWS, Azure, GCP, OpenStack, and vSphere • Significance of Galera Cluster versus regular replication

11.Red Hat OpenShift • Variants between Online & Enterprise editions (usually you get access to modern releases with OpenShift Online) • MySQL 5.5/5.6/5.7 • MariaDB 10.0/10.1 • PostgreSQL 9.4/9.5 • MongoDB 2.4/2.6/3.2/3.4

12.Beware • GenieDB - globally distributed MySQL as a service, master-master replication, works on EC2, Rackspace, Google Compute Engine, HP Cloud • Xeround - 2 weeks notice...


14.Thank you HPCloud • hpcloud-whom-contributed-to-making-mysql-better • Utility user • enforce_storage_engine • prevent LOAD DATA INFILE/SELECT INTO OUTFILE • restrict # of binlog files


16.What else do you get? • PostgreSQL is getting popular in the cloud: AWS RDS, AWS Aurora, Microsoft Azure, Alibaba Cloud, Google Cloud SQL • Most MongoDB users run within the cloud — but not hosted, it tends to be “roll your own” or via ObjectRocket (and lately MongoDB Atlas c- reasonable free tier!) • (now IBM) & the like (MongoLab) — hosted MongoDB, Redis, Enhanced PostgreSQL, ElasticSearch, RethinkDB (!?), MySQL with group replication, ScyllaDB, etc.

17.Regions & Availability Zones • Region: a data centre location, containing multiple Availability Zones • Availability Zone (AZ): isolated from failures from other AZs + low- latency network connectivity to other zones in same region

18.Location, location, location • AWS RDS: US East (N. Virginia, Ohio), US West (Oregon, Northern California, California), EU (Ireland, Frankfurt, London, Paris), APAC (Singapore, Tokyo, Sydney, Seoul, Mumbai), South America (São Paulo), GovCloud, Canada (Central), China (Beijing) • Rackspace: USA (Dallas DFW, Chicago ORD, N. Virginia IAD), APAC (Sydney, Hong Kong), EU (London)* • Google Cloud SQL: • 2nd generation instances: Montréal, Iowa, N. Virginia, Oregon, LA, São Paulo, Finland, London, Frankfurt, Netherlands, Tokyo, Mumbai, Singapore, Sydney

19.Service Level Agreements (SLA) • AWS - at least 99.95% in a calendar month, less than, 10% service credit • Rackspace - 99.9% in a calendar month • Google - 99.95% in a calendar month, less than 10% service credit • Alibaba Cloud - no less than 99.95% in a calendar month (some services, 99.9%) • Microsoft Azure - < 99.99% will give you a 10% service credit • SLAs exclude “scheduled maintenance” which may have impact on storage I/O + elevate latency • e.g. AWS is 30 minutes/week

20.Support • AWS - active forums; $100+ (or a % of AWS usage) phone # • Rackspace - live chat, phone #, forums • Google - forums; $150/mo gets support portal; $400+ (or a % of usage fees) for phone # • Microsoft - forums; $100/mo to start • Alibaba Cloud - $70 (or a % of usage fees) • Most have developer support plans at $19.99-$29 even; enterprise support around $8,000-$15,000

21.Who manages this? • AWS: self-management, Enterprise ($15k+) • Rackspace Cloud: $100 + 0.04 cents/hr over regular pricing • Google: self-management, or via partner, Rackspace Managaed Services • Microsoft: generally self, premier can give you advisory services • Alibaba Cloud: self-management • Rackspace Managed Services: AWS, Alibaba Cloud, Google Cloud Platform, Microsoft Azure Cloud, OpenStack Public Cloud

22.MySQL versions • AWS: MySQL Community 5.1, 5.5, 5.6, 5.7 / MariaDB Server 10.0, 10.1, 10.2 • Rackspace: MariaDB Server 10, 10.1, 10.1-enc, MySQL 5.7/5.6/5.1, Percona Server 5.6 • Google: MySQL Community 5.5, 5.6, 5.7 • Microsoft: MySQL Community 5.6, 5.7 • Alibaba Cloud: MySQL Community 5.6, 5.7

23.Access methods • AWS - within Amazon, externally via mysql client, API access. • Rackspace - private hostname within Rackspace network, API access. • Google - within AppEngine, a command line Java tool (gcutil), standard mysql client • Microsoft - within Azure, externally via mysql client • Alibaba Cloud - standard mysql client

24.Can you configure MySQL? • You don’t access my.cnf naturally • In AWS you have parameter groups which allow configuration of MySQL source:

25.Cost • Subscribe to relevant newsletters of your services • Cost changes rapidly, plus you get new instance types and new features (IOPS) • Don’t forget network access costs • Monitor your costs daily, hourly if possible (spot pricing — if roll your own)

26.Costs: AWS • AWS prices vary between regions •

27.Costs: AWS II • Standard latest generation: db.m4.large (2vCPU/8GB) at $1,533/yr [2017] • Previous generation: Medium instances (3.75GB) useful for testing ($1,577/yr [2014] vs $2,411/yr [2013]) • Large instance (7.5GB) production ready ($3,241/yr vs $4,777/yr [2013]) • Multi-AZ production ready: db.m4.2xlarge (32GB, 8vCPUs) at $12,264/yr [2017] • Previous generation: m3.2XL (30GB, 8vCPUs) ($12,964/yr)

28.Costs: Rackspace • Option to have regular Cloud Database or Managed Instances • 4GB instance is $2,111.4 (vs. $2,102/yr in 2015 and $3,504/yr in 2013) • 8GB instance is $4,213.8 (vs. $4,205/yr in 2015 and $6,658/yr in 2013) • Consider looking at I/O priority, and the actual TPS you get • High Available instances with automatic failover available too

29.Costs: Google • You must enable billing before you create Cloud SQL instances • • Previously (first generation): • Testing (D8 - 4GB RAM) - $3,204.7 vs $4,274.15 (in 2015) • XL equivalent (D16 - 8GB RAM) - $6413.05 vs $8,548.30 (in 2015) • Today: • db-n1-standard-8 (8 vCPUs, 30GB RAM) - $6,762.72 • Packages billing plans are cheaper than per-use billing plans