getting started with sql server 2016 on amazon ec2 - august 2016 monthly webinar series
TRANSCRIPT
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tom Staab, Partner Solutions Architect
August 25, 2016
Getting Started with Microsoft SQL Server 2016 on AWS
Introduction
How to run SQL on AWS New features in SQL Server 2016 Setting up an instance Demo Q&A
How to run SQL Server on AWS
What is Amazon EC2?
Amazon Elastic Compute Cloud Resizable compute capacity Web-scale cloud computing Virtual machines with full administrative rights License Included and BYOL options available
SQL Server on Amazon EC2
Licensing Options Purchase an Amazon Machine Instance (AMI) that includes Windows and SQL Server Purchase a Windows AMI and install SQL Server yourself (BYOL)
You manage the virtual machine security, storage, network ports, etc. Full SQL Server sysadmin privileges
What is Amazon RDS?
Managed database service Automatic patching, backups, mirroring, etc. Automatic Host Replacement protects you in the event of a hardware failure.
6 database engines to choose from: Amazon Aurora, Oracle, PostgreSQL, MySQL, MariaDB, and SQL Server
License-included and BYOL options available
SQL Server on Amazon RDS
Up to 30 databases per instance Optional managed Multi-AZ deployment for high availability Transparent Data Encryption for encryption at rest and the use of
SSL to secure data in transit Native backup and restore for Microsoft SQL Server databases
using full backup files (.bak files)
SQL Server EC2 vs. RDS: Which should I use?
EC2 RDSLicense included BYOL Full control over the instance Automated backups Self-managed AlwaysOn Availability Groups AWS-managed Multi-AZ deployment
Failover / Disaster Recovery
EC2 (custom) Can span availability zones or regions Mirroring AlwaysOn Availability Groups Transaction Log Shipping
RDS (AWS-managed mirroring) Spans Availability Zones Automatic Failover
What about the rest of SQL Server?
Integration Services (SSIS) Reporting Services (SSRS) Analysis Services (SSAS) SQL Agent Service Broker Data Quality Service Master Data Service
What about the rest of SQL Server?
Remember: RDS is a managed database engine. Most tools or drivers (OLE DB, ODBC, or ADO.NET) that
connect to SQL Server can connect to an RDS instance. For example, SSIS running on EC2 or on-premises can
use a connection to an RDS SQL Server (or other engine) instance as long as the network ports are properly configured.
SQL Server 2016
What’s New in 2016
The “biggest leap forward in Microsoft data platform history” Many improvements and new features across Performance, Security, Analytics Next level of operability with cloud and open source
EnterpriseComprehensive datacenter capabilities for mission-critical database, business intelligence, and advanced analytics workloads.
StandardCore data management and business intelligence capabilities for non-critical workloads with minimal IT resources.
ExpressFree edition of SQL Server ideal for development and production for desktop, web and small server applications.
DeveloperFull feature set of SQL Server Enterprise; not for production environments or use with production data.
Enhanced in-memoryOperational analyticsAlways EncryptedQueryStoreR integration
Row-level securityDynamic data maskingTemporalBasic auditingR connectivity
Policy-based managementBasic reporting and analyticsModernized reportsJSON support
Free edition for dev and test
Improved Installation Experience
SQL Server 2016 also has some new installation options, for better performance and automation Selectable option for Instant File Initialization Configurable tempdb deployment Parameterized install with ini file (can use CloudFormation)
Setting up an instance
DevOps with AWS CloudFormation Basic standard in AWS for automating deployment CloudFormation Template
JSON-formatted document which describes a configuration to be deployed in an AWS account
When deployed, refers to a “stack” of resources PowerShell can be slipstreamed into UserData and run at instance bootstrap AWS CloudFormation
How CloudFormation Works
Anatomy of a Template{ "AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "This is my template!",
"Parameters" : {},
"Mappings" : {},
"Conditions" : {},
"Resources" : {},
"Outputs" : {}}
Resources
"Resources" : {
"Logical ID" : {
"Type" : "Resource type",
"Properties" : { Set of properties }
}}
Resources: Example
"Resources" : {
"myEC2Instance" : { "Type" : "AWS::EC2::Instance",
"Properties" : { "ImageId" : "ami-e7ac2790", "InstanceType" : "m3.medium" }
}}
Anatomy of a Template{ "AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "This is my template!",
"Parameters" : {},
"Mappings" : {},
"Conditions" : {},
"Resources" : {},
"Outputs" : {}}
ParametersType
Standard: String, NumberAdvanced: AWS::EC2::KeyPair::KeyName, AWS::EC2::SecurityGroup::Id,AWS::EC2::Subnet::Id, AWS::EC2::VPC::IdLists: CommaDelimitedList, List<Number>,List<AWS::EC2::SecurityGroup::Id>, List<AWS::EC2::Subnet::Id>,List<AWS::EC2::VPC::Id>
Default ValueMasked (NoEcho)Constraints
AllowedValues, AllowedPattern, MinLength, MaxLength, MinValue, MaxValue
Description
Parameters
"Parameters" : {
"KeyPair" : {
"Type" : "AWS::EC2::KeyPair::KeyName",
"Description" : "What will be the machine key you want to use to get the instance password?”
}}
Using Parameters
"Resources" : {
"myEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-e7ac2790", "InstanceType" : "m3.medium", "KeyName": { "Ref": "KeyPair" } } }}
Outputs
"Outputs" : {
"Logical ID" : {
"Value" : "Value to return", "Description" : "Information about the value"
}}
Outputs
"Outputs" : {
"myEC2InstanceId" : {
"Value" : { "Ref" : "myEC2Instance" },
"Description" : "Instance Id of the new EC2 Instance"
}}
Anatomy of a Template{ "AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "This is my template!",
"Parameters" : {},
"Mappings" : {},
"Conditions" : {},
"Resources" : {},
"Outputs" : {}}
Mappings
"Mappings" : {
"Mapping01" : {
"Key01" : { "Value" : "Value01" },
"Key02" : { "Value" : "Value02" },
"Key03" : { "Value" : "Value03" }
}}
Mappings (2)
"RegionMap" : {
"us-east-1" : { "32" : "ami-6411e20d", "64" : "ami-7a11e213" }, "us-west-1" : { "32" : "ami-c9c7978c", "64" : "ami-cfc7978a" }, "eu-west-1" : { "32" : "ami-37c2f643", "64" : "ami-31c2f645" }, "ap-southeast-1" : { "32" : "ami-66f28c34", "64" : "ami-60f28c32" }, "ap-northeast-1" : { "32" : "ami-9c03a89d", "64" : "ami-a003a8a1" }
}
Functions
Currently, you can use intrinsic functions in resource properties, metadata attributes, and update policy attributes.
Fn::GetAttFn::Base64Fn::If (Fn::Equals, Fn::And, Fn::Or, Fn::Not)Fn::FindInMapFn::GetAZsFn::JoinFn::SelectRef
Pseudo Parameters
You can be “aware” of where your stack runs and get some information about the context.
AWS::AccountIdAWS::NotificationARNsAWS::NoValueAWS::RegionAWS::StackIdAWS::StackName
Using Mappings "Resources" : {
"myEC2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : { "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "32"]}, "InstanceType" : "m1.small"
}
}
}
Referencing Resources "Resources" : { "mySubnet" : { "Type" : "AWS::EC2::Subnet", ... },
"myEC2Instance" : { "Type" : "AWS::EC2::Instance",
"Properties" : { "ImageId" : "ami-e7ac2790", "InstanceType" : "m1.small", "SubnetId" : { "Ref" : "mySubnet" } } } }
Getting Attributes
"Outputs" : {
"LBDNS" : {
"Value" : { "Fn::GetAtt" : [ "myEC2Instance" , "PublicDnsName" ] },
"Description" : "DNS Name of the Instance"
}}
Demo
ResourcesSQL Server on Amazon EC2https://aws.amazon.com/windows/products/sql/
SQL Server on Amazon RDShttps://aws.amazon.com/rds/sqlserver/
Windows Server on AWShttp://aws.amazon.com/windows/
AWS Windows Case Studieshttp://aws.amazon.com/windows/case-studies/
Microsoft Licensing on AWS http://aws.amazon.com/windows/resources/licensing
EC2 Windows Documentationhttp://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html
Use Free Tier for a Yearhttp://aws.amazon.com/free/
Resources for Getting Startedhttp://aws.amazon.com/getting-started
AWS Partner Networkhttp://aws.amazon.com/partners
AWS Quick Startshttps://aws.amazon.com/quickstart/
Take a free Test Drivehttp://aws.amazon.com/testdrive/
RDS SQL Documentationhttp://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.SQLServer.html
TrainingVirtual learning labs are available in many Microsoft subjects. Four learning quests are available, or you can choose individual labs. Learn more at aws.amazon.com/windows/resources/training
Creating Amazon EC2 Instances with Microsoft Windows
AWS Tools for Windows PowerShell: Getting Started Using Windows Server Storage Spaces with
Amazon EBS Introduction to Amazon Relational Database
Service Administering Amazon RDS for Microsoft SQL
Server SQL Server in Amazon EC2: Getting Started
Licensing
AWS provides options for licensing SQL Server You can buy from us or bring your own (BYOL) Buy from us by spinning up a license-included instance of EC2 or
RDS, and pay only for what you use (default option) To bring your own, you can use dedicated (single-tenant), or on
multi-tenant with License Mobility through Software Assurance
more information:https://aws.amazon.com/windows/resources/licensing/https://aws.amazon.com/windows/resources/licensemobility/
re:Invent is coming!The largest global cloud computing conference keeps on growing. Now spanning five days and three venues.
Attend the Windows track Breakout sessions Demos & Hands on Labs Customer examples &
best practices
Learn more and register:https://reinvent.awsevents.com/
Questions & Answers
Thank you!