Top Banner
1 Introduction to Amazon RDS – MySQL in the Cloud Scott Seighman Systems Engineer Sun Microsystems
44

Introduction to Amazon RDS – MySQL in the Cloud

Feb 11, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to Amazon RDS – MySQL in the Cloud

1

Introduction to Amazon RDS – MySQL in the CloudScott SeighmanSystems EngineerSun Microsystems

Page 2: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 2

Agenda• Overview: Cloud Concepts• Overview: Amazon Web Services• Amazon Relational Database Service (RDS)

> Technology Overview> Demos> Pricing

• Competing Technologies• Additional Resources

Page 3: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 3

Virtualization

Softwareas a Service

ApplicationHosting

Infrastructureas a Service

Platformas a Service

Utility Computing

Databaseas a Service

Storageas a Service

The Buzz: Cloud Computing

Desktopas a Service

Page 4: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 4

Faster time-to-marketReduction of custom softwarePay only for what you useGrow infrastructure with business

All Clouds Share Key Traits

One Service Fits AllVirtualized Physical Resources

Self ProvisioningElastic

Pay Per UseProgrammatic Control

Page 5: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 5

What’s Driving Interest in Clouds

Lower Costs

BusinessAgility

Page 6: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 6

Efficiency

Pay As-You-GoOp-ex vs. Cap-ex

SLAVirtualization

Rapid,Self Provisioning

Faster DeploymentAPI-Driven

Standard ServicesElastic

On-DemandMulti-Tenant

Economics DeveloperCentric Flexibility

Page 7: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 7

Public, Private & Hybrid Clouds

Public Private Hybrid

Pay as you go, multi-tenant

applications and services

Cloud computing model run within a

company's own datacenter

Mixed usage of public and private

clouds according to application

Page 8: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 8

Adding It All Up

Different clouds catering to a variety of needs

Page 9: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 9

Amazon Web Services (AWS)• Established in 2006• Comprehensive Platform

> Amazon Elastic Compute Cloud (Amazon EC2™)> Amazon Simple Storage Service (Amazon S3™)> Amazon CloudFront™> Amazon SimpleDB™> Amazon Simple Queue Service (Amazon SQS™)> Amazon Relational Database Service (Amazon RDS™)

• AWS uses Xen virtualization. Each virtual machine (AMI), called an "instance", functions as a virtual private server in one of three sizes; small, large or extra large

Page 10: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 10

Amazon Web Services - AMIs

Page 11: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 11

Amazon Web Services• Cost-effective

> Pay only for what you use, as you use it, with no up-front commitments. As the Amazon Web Services cloud grows, our operations, management and hardware costs shrink, and we pass the savings onto you.

• Dependable> Utilize a battle-tested, web-scale infrastructure that handles

whatever you throw at it. The Amazon Web Services cloud is distributed, secure and resilient, giving you reliability and massive scale.

Page 12: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 12

Amazon Web Services• Flexible

> Build any application you want using any platform or any programming model. You control the resources you consume and fit them into your application as you see fit.

• Comprehensive> Don’t start from scratch. Amazon Web Services gives you a

number of services you can incorporate into your applications. From databases to payments, these services help you build great applications cost effectively and with less up-front investment.

Page 13: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 13

Amazon Web Services Mgmt Console

Page 14: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 14

Amazon RDS• Amazon Relational Database Service (RDS) is a web

service that makes it easy to set up, operate, and scale a relational database in the cloud

• Access to the full capabilities of a familiar MySQL database

• Means the code, applications, and tools you already use today with your existing MySQL databases work seamlessly with Amazon RDS

Page 15: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 15

Advantages of Amazon RDS• Accelerated Deployment

> Reduces friction as you move from project conception to deployment

> You can use simple API calls to access the capabilities of a production-ready relational database without worrying about infrastructure provisioning or installing and maintaining database software

• Managed> Handles generic database management tasks so you can

pursue higher value application development or database refinements

Page 16: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 16

Advantages of Amazon RDS• Compatible

> You get full, native access to a MySQL database server.> This means Amazon RDS works with your existing tools,

applications, and drivers. There’s no need to change any code.• Scalable

> With a simple API call you can scale the compute and storage resources available to your database to meet your business needs and application load.

• Reliable> Amazon RDS runs on the same highly reliable infrastructure

used by other Amazon Web

Page 17: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 17

Advantages of Amazon RDS• Services

> Amazon RDS’s automated backup service automatically manages the backup of your database, letting you restore to any point within a retention period you specify.

• Designed for use with other AWS products> Amazon RDS is tightly integrated with our other products. For

example, applications running in Amazon EC2 experience low-latency database access to Amazon RDS.

• Secure> Amazon RDS provides web service interfaces to configure

firewall settings that control network access to your database instances.

Page 18: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 18

Demo• Create an AWS Account• Installing tools• Setup environment• Using Command line tools

> Creating a DB Instance> Listing Available DB Instances> Connecting to a DB Instance> Creating a User> Cleaning Up

Page 19: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 19

Initial Setup• Installing Tools

> Requires Java 5 or later> Amazon RDS Command Line Toolkit

• Setup Environment Variables> JAVA_HOME> AWS_RDS_HOME> AWS_CREDENTIAL_FILE

• Command line tools need the AWS Access Key and Secret Access Key provided with your AWS account

Page 20: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 20

Confirming Tools are Installed Properly• Check that your setup works properly, run the following

command:

rds --help

You should see the usage page for all Amazon RDS commands

Page 21: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 21

Basic Commands• Creating a DB Instance:rds-create-db-instance --db-instance-identifier myinstance --allocated-storage 5 --db-instance-class db.m1.small –engine MySQL5.1 --master-username mymasteruser --master-user-password mymasterpass --db-name MyDatabase –headers

• Creates a DB instance called "myinstance" with 5 GB of storage and an initial database named "MyDatabase"

• Listing available DB instances:rds-describe-db-instances --headers

Page 22: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 22

• You must authorize access to your DB Instance before you can connect to it. Access to DB Instances is controlled using DB Security Groups

• A DB Security Group (called 'default') is created automatically the first time you create a DB Instance, and you can create new DB Security Groups as necessary

• By default, a DB Security Group has no access enabled; you must specifically authorize network ingress. There are two ways of doing this - authorizing a network IP range, or authorizing an existing EC2 security group

Authorizing Network Access

Page 23: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 23

• Enter the following command to authorize access for the 192.0.2.0/30 CIDR range:rds-authorize-db-security-group-ingress default –cidr-ip 192.0.2.0/30 –headers

SECGROUP Name DescriptionSECGROUP default DefaultIP-RANGE IP Range StatusIP-RANGE 192.0.2.0/30 authorized

• To check the state of the authorization enter the following command:rds-describe-db-security-groups default --headers

Authorizing Network AccessGranting Access to an IP Range

Page 24: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 24

• Enter the following command to grant access to an existing EC2 security group:rds-authorize-db-security-group-ingress default --ec2-security-group-name myec2group --ec2-security-group-owner-id 987654321021

SECGROUP Name DescriptionSECGROUP default defaultEC2-SECGROUP myec2group 987654321021 authorizingIP-RANGE 192.0.2.0/30 authorized

Authorizing Network AccessGranting Access to an EC2 Security Group

Page 25: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 25

Connecting to an Instance• Once a DB Instance is created, you can use any

supported tools for the database engine that the instance uses to connect

• In the following example, you use the MySQL command line tools to connect to the instance you just created

• To connect to a DB Instance using the MySQL monitor:mysql -h myinstance.crwjauxgijdf.us-east-1.rds.amazonaws.com -P 3306 -u mymasteruser -p

• You will see output similar to the following:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 350Server version: 5.1.32-log MySQL Community Server (GPL)Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql>

Page 26: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 26

Creating a User• You connect to an DB Instance using the MySQL

command line tool and create a new user:mysql> create user rds_user IDENTIFIED BY 'mysecretpassword';Query OK, 0 rows affected (0.08 sec)

• To verify that the user was created, query the MySQL user table as in the following example.mysql> select user, create_view_priv from mysql.user;+----------+------------------+| User | create_view_priv |+----------+------------------+| rdsadmin | Y || rds_user | N |+----------+------------------+2 rows in set (0.08 sec)

Page 27: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 27

Cleaning Up• To avoid incurring usage charges, you'll want to clean up

after running the demo, to delete a DB Instance:rds-delete-db-instance myinstance --skip-final-snapshot true --headers

• The command will prompt similar to the following:Once you begin deleting this database, it will no longer be able to accept connections.Are you sure you want to delete this database? [Ny]

• Enter Y to begin deleting the database

Page 28: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 28

Additional Commandsrds-authorize-db-security-group-ingressrds-create-db-instancerds-create-db-parameter-grouprds-create-db-security-grouprds-create-db-snapshotrds-delete-db-instancerds-delete-db-parameter-grouprds-delete-db-security-grouprds-delete-db-snapshotrds-describe-engine-default-parametersrds-describe-db-instancesrds-describe-db-parameter-groupsrds-describe-db-parameters

rds-describe-db-security-groupsrds-describe-db-snapshotsrds-describe-eventsrds-modify-db-instancerds-modify-db-parameter-grouprds-reboot-db-instancerds-reset-db-parameter-grouprds-restore-db-instance-from-db-snapshotrds-restore-db-instance-to-point-in-timerds-revoke-db-security-group-ingressrds-version

Page 29: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 29

Importing Data - Small• For small amounts of data already stored in MySQL, the

simplest way to transfer it to Amazon RDS is to extract the data with mysqldump and pipe it directly into Amazon RDSmysqldump acme | mysql --host=hostname --user=username --password acme

Page 30: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 30

Importing Data - Large• If you have more than 1GB of data, recommend creating

flat files and loading them with mysqlimport> Create flat files containing the data to be loaded> Stop any applications accessing the target DB Instance> Create a DB Snapshot> Disable Amazon RDS automated backups> Load the data using mysqlimport> Enable automated backups again

• See documentation on this procedure at:> http://developer.amazonwebservices.com/connect/entry.jspa?

externalID=2933&ref=featured

Page 31: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 31

Pricing Models - Server Options• Amazon RDS currently supports five DB Instance Classes:

> Small DB Instance: 1.7 GB memory, 1 ECU (1 virtual core with 1 ECU), 64-bit platform.

> Large DB Instance: 7.5 GB memory, 4 ECUs (2 virtual cores with 2 ECUs each), 64-bit platform

> Extra Large DB Instance: 15 GB of memory, 8 ECUs (4 virtual cores with 2 ECUs each), 64-bit platform

> Double Extra Large DB Instance: 34 GB of memory, 13 ECUs (4 virtual cores with 3,25 ECUs each), 64-bit platform

> Quadruple Extra Large DB Instance: 68 GB of memory, 26 ECUs (8 virtual cores with 3.25 ECUs each), 64-bit platform

• For each DB Instance class, RDS provides you with the ability to select from 5GB to 1TB of associated storage capacity. One ECU provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor

Page 32: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 32

Pricing Models - Server Options• You can specify any one of five server instance classes:

> db.m1.small (1.7 GB of RAM, $0.11 per hour)> db.m1.large (7.5 GB of RAM, $0.44 per hour)> db.m1.xlarge (15 GB of RAM, $0.88 per hour)> db.m2.2xlarge (34 GB of RAM, $1.55 per hour)> db.m2.4xlarge (68 GB of RAM, $3.10 per hour)

Page 33: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 33

Sizing Your Instance - CPU• If you're unsure how much CPU you need, recommend

starting with the db.m1.small DB Instance class and monitoring CPU utilization with Amazon's CloudWatch service

• You can easily upgrade to a larger DB Instance class using the rds-modify-db-instance commandrds-modify-db-instance acme --db-instance-class db.m1.xlargeNote: Upgrade will be performed during next maintenance window, if you want the update to occur immediately, use this command:rds-modify-db-instance acme --db-instance-class db.m1.xlarge --apply-immediately

Page 34: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 34

Sizing Your Instance - Storage• Start by estimating the storage needed under typical

operating conditions (steady-state)• Add to that the storage required for expected growth for

1-3 months, plus any additional storage needed for operations requiring significant amounts of temporary storage (such as batch jobs or large data loads)

• If the data is in flat files, a rule of thumb for estimating the amount of space needed for your DB Instance is to compute the total size of the flat files and double it

• How to add storage to an instance:rds-modify-db-instance acme --allocated-storage=90 --apply-immediately

Page 35: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 35

Monitoring Your DB• DB Instance metrics are available via the Amazon AWS

CloudWatch service• You can access your metrics using the Amazon

CloudWatch API Tools or via the API itself• Download/install API tools

Page 36: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 36

Monitoring Your DB• In order to retrieve metrics from Cloudwatch, you need to

know the: > namespace> measure names> dimensions of the metrics

• The namespace for Amazon RDS is "AWS/RDS"• The measure names are "CPUUtilization",

"DatabaseConnections", and "FreeStorageSpace", corresponding to the metrics for percent CPU utilization, number of database connections, and amount of free disk storage space respectively

Page 37: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 37

Monitoring Your DB• CPU Utilization

> Display average CPU utilization for the DB Instance "acme" for the past 60 minutes:mon-get-stats CPUUtilization --dimensions="DBInstanceIdentifier=acme" --statistics= Average --namespace="AWS/RDS"

• Database connections> Display the minimum, maximum, and average number of

database connections at 10 minute intervals for the past hour:mon-get-stats DatabaseConnections --namespace=AWS/RDS \--dimensions="DBInstanceIdentifier=acme" \--statistics=Minimum,Maximum,Average --period=600

Page 38: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 38

Monitoring Your DB• Free Storage Space

> Display the minimum available free storage space for the past week at one hour intervals and output as CSV data suitable for loading into a spreadsheet or database.mon-get-stats FreeStorageSpace --namespace=AWS/RDS \--dimensions="DBInstanceIdentifier=acme" \--statistics=Minimum --period=3600 --show-long \--start-time=`date --date="1 week ago" +%FT%T`

Page 39: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 39

Pricing Models – Backup Storage• There is no additional charge for backup storage up to 100% of

your provisioned database storage for an active DB Instance. After the DB Instance is terminated, backup storage is billed at $0.15 per GB-month

• Additional backup storage: $0.15 per GB-month• For example, if you have an active DB Instance with 10GB-month

of provisioned database storage, we will provide up to 10GB-month of backup storage at no additional charge. Based upon our experience as database administrators, the vast majority of databases require less raw storage for a backup than for the primary data set, meaning that most customers will never pay for backup storage

Page 40: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 40

Pricing Models – Data Transfer• The pricing below is based on data transferred “in” and “out” of

Amazon RDS.> Data Transfer In

– All Data Transfer $0.10 per GB> Data Transfer Out

– First 10 TB per Month $0.17 per GB– Next 40 TB per Month $0.13 per GB– Next 100TB per Month $0.11 per GB– Over 150 TB per Month $0.10 per GB

• Data transferred between two Amazon Web Services within the same region (e.g. between Amazon RDS US and Amazon EC2 US) is free of charge. Data transferred between AWS services in different regions will be charged as Internet Data Transfer on both sides of the transfer.

Page 41: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 41

Competing Technologies

RDS

Page 42: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 42

Competing Technologies• Microsoft SQL Azure

> SQL Azure is a multi-tenant service with multiple DBs on the same machine in a shared infrastructure environment

> Their target is the 95% of business applications running in the enterprise that have databases with less than 5GB of data

> 10GB limit introduces design decisions on applications with larger databases

> They recommend partitioning your data set across multiple DBMS instances to manage more than 10GB

• Pricing> $10/month up to 1GB> $99/month for 10G

Page 43: Introduction to Amazon RDS – MySQL in the Cloud

Cleveland MySQL Meetup – November 2009 43

Additional Resources• Amazon Web Services

> http://aws.amazon.com/• Amazon RDS

> http://aws.amazon.com/rds/• Amazon RDS Resources/Tools

> http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=289

• Amazon RDS Forums> http://developer.amazonwebservices.com/connect/forum.jspa?forumID=60