6-Th INTERNATIONAL SCIENTIFIC CONFERENCE
Total Page:16
File Type:pdf, Size:1020Kb
International Conference on Applied Information and Communication Technologies (AICT2013), 25.-26. April, 2013, Jelgava, Latvia Different solutions of MySQL in the cloud – security and possibilities Zigmunds Bulins, Vjaceslavs Sitikovs Institute of Applied Software, Riga Technical University, Meza 1/3, Riga, LV-1048, Latvia [email protected], [email protected] Abstract: Cloud computing is a good way to raise productivity of offered service without investments into new infrastructure, training of the personnel or software acquisition. This technology expands potential possibilities of existing information systems. In recent years cloud computing grew from good business concept to one of the most demanded industry in information technologies. The paper contains a short review of different cloud database providers which uses MySQL as a basis. Technical nuances, potential problems and risks related to migration of the existing MySQL databases to the new environment are reviewed. In the paper we try to review the actual possibilities of the new platform and compare the cloud DBaaS (database as a service) solutions which are implemented with MySQL database management system widely used in the web. Keywords: MySQL, DBaaS, Heroku, Google Cloud SQL, ClearDB. Introduction Cloud computing is a dynamic method of increasing productivity of service or possibilities without investments in new infrastructure, training of the personnel or software licensing. This expands possibilities of existing information systems. In recent years cloud computing grew from good concept business to one of the most quickly developing industries of information technologies (Chandra, Mondal, 2011). In the last two years there was quite a lot of activity around the cloud databases on the stage – Google, Amazon and Xeround (Xeround, 2012a) companies announced their DBaaS based on the MySQL database. We will review three of them – Google Cloud SQL (Google, 2012b), Xeround, ClearDB (ClearDB, 2012). The Google Cloud SQL Google Cloud SQL is a web service which allows creating, forming and using relational databases with App Engine (Google, 2012a) applications. This is completely self-managed service which supports and manages databases, allowing developers to concentrate on implementation of applications and necessary services. Offering functionality of the MySQL database, service allows moving easily the data, applications and services to the cloud and out of it. It allows increasing mobility of data and provides faster entering the market because there is an ability to quickly scale an existing database. To guarantee service availability for critical applications and services, Google Cloud SQL replicates data in different geographical areas for ensuring high availability of data. Main features of the Google Cloud SQL service are (Google, 2012b): Ease of use – a rich graphical user interface allows for creating, configuring, managing, and monitoring the database instances; Fully managed – no worrying about tasks such as replication, patch management, or other database management chores - all these tasks are provided by “cloud”; Highly available – to meet the critical availability needs of today's applications and services, features like replication across multiple geographic regions are built in, so the service is available even if a datacenter becomes unavailable; Integrated with Google App Engine and other Google services – make it possible to work across multiple products easily, get more value from the data, move the data into and out of the “cloud”, and get better performance. If we compare the Google Cloud SQL with the others similar services on the market like Amazon EC2 (Amazon, 2013), Windows Azure (Microsoft, 2013), Xeround then two possible models of the DBaaS service are met: Virtual images of the configured database instances which are running on the virtualized hardware; Distributed and automatically managed database which is not linked to specific location in the cloud. With Google Cloud SQL we get the second option. Limitation of the Google Cloud SQL The Google Cloud SQL represents MySQL DBMS placed in a “cloud”. Google Cloud SQL provides all functions which are offered by MySQL DBMS, but with several limitations. There are the following main restrictions of cloud service (Google, 2012b): The size of a separate instance of a database is limited by 10 gigabytes; User defined functions (UDF) are not supported; http://aict.itf.llu.lv 225 International Conference on Applied Information and Communication Technologies (AICT2013), 25.-26. April, 2013, Jelgava, Latvia Replication functionality is not available for configuring and setting up; File based functions are blocked (such as DATA INFILE, LOAD_FILE etc.). As the size of an instance is limited this service is applicable generally only for applications of small and medium business (as it was described in the Google Cloud SQL service description). Also this restriction can concern multimedia and similar applications which store binary data in a database and, as a rule, it uses a lot of disk space. Absence of replication support is the minor shortcoming as Google Cloud SQL itself implements this mechanism and tracks its correct operation. One more restriction which isn't specified is an absence of federated table support. If migrated application that already is using this mechanism, it is necessary to alter architecture of application in case of transfer it to Google Cloud SQL platform. Most likely the new platform automatically solves the problem because of which remote tables were used. If not, it will be necessary to find other solution within the new environment. One more technical restriction of cloud DBMS is that the platform is intended for applications with a low to average level of intensity of data recording (Google, 2012b). That is, applications with intensive data recording will not work effectively in the environment of Google Cloud SQL as the replication engine is used. In DBMS instance access control there is a new layer – a Google API project layer. Knowledge of DBMS access codes is not enough for acquiring access to a database. It is necessary to have also access to the project within which DBMS was created. The project and access to it are managed by the service of Google API Console (Google, 2012d) in a Google account. Available tools for the service interaction Unlike stand-alone MySQL DBMS, in Google Cloud SQL there is no possibility to connect to the database directly from any computer. Connection is carried out or by means of the web browser, or using the special Command Line Tool program. In addition it is possible to use the SQuirrel SQL application (Universal, 2012), which actually uses the aforementioned program tool to execute commands on Google Cloud SQL (Fig. 2). In order to connect to the Google Cloud SQL database from a certain computer, it is necessary to generate an access key in settings of the service account and later submit it to the program tool on first use – this mechanism allows the recipient of service to supervise access to instances of databases. In a given context threats relates to the service provider and not to the Google Cloud SQL user, but that’s doesn't free user from potential risks. The question of trust consists in issue that data takes place in the environment belonging and supervised by the third parties where there is no possibility to track their actions. That is not applicable for public government institutions or systems with confidential data (changes in the way how data is stored in the DBMS are necessary, to use Google Cloud SQL environment). Connection is carried out or by means of a web browser (Fig. 1), or using the special Command Line tool (Fig.2). Fig. 1. Web browser access. Fig. 2. Command line tool. http://aict.itf.llu.lv 226 International Conference on Applied Information and Communication Technologies (AICT2013), 25.-26. April, 2013, Jelgava, Latvia Xeround In contrast to Google Cloud SQL, which actually uses the almost not changed MySQL version 5.5 (no modifications were made, just some features were disabled), Xeround is built on the MySQL Storage Engine Architecture, acting as a pluggable storage engine (Fig. 3). Relying on this architecture, and the MySQL query language support, Xeround patented storage engine seamlessly replaces current MySQL database (Xeround, 2012b). Fig. 3. Xeround structure (Xeround, 2012b). Xeround’s two tier architecture is comprised of Access Nodes and Data Nodes. Data Nodes are responsible for storing the data, while Access Nodes receive application requests, communicate with Data Nodes, perform computations and deliver request results. Xeround stores data in virtual partitions that are not bound to the underlying hardware infrastructure. Each partition is replicated to the different Data Nodes located on separate servers, providing high availability and full resiliency (Xeround, 2012b). The background of the Xeround cloud database service is the MySQL server of version 5.1 (as of January 2013, using our test account). This actually is not widely advertised on the company’s website, but for some certain segment of customers that can be an important issue as there are quite many improvements in the SQL syntax, optimizer and other places of the server (MySQL, 2012). But the main advantage over the Google Cloud SQL is that Xeround database is not vendor locked – can be run on any cloud platform and any stack (Xeround, 2012b). It is possible to connect directly to the Xeround