260 likes | 449 Views
Leverage Amazon Web Services to build Elastic IT-Infrastructure Architectures…. Amazon Web Services. One minute introduction. User(s). Load Balancer. Client. Servers. Web Storage. DevOp. Amazon Web Services. AWS Management Console. Elastic Architectures. A simplistic case….
E N D
Leverage Amazon Web Services to build Elastic IT-Infrastructure Architectures…
Amazon Web Services One minute introduction
User(s) Load Balancer Client Servers Web Storage DevOp Amazon Web Services AWS Management Console
Elastic Architectures A simplistic case…
Mitigate increasing loadwith horizontal scaling Data Center Europe
Traditional Data Center • Manual interface to the Data Center • Hardware provisioning process partly consists of human tasks • Hardware procurement • Hardware installation • Network configuration • … • Adding additional servers is a matter of days to weeks! Traditional Data Center Introduction to Amazon Web Services | Christian Tschenett
Infrastructure-as-a-Service Provider • Self-service interface to the Data Center (Web Console, API) • Virtual-Hardware provisioning is fully automated Adding additional virtual servers is a matter of minutes! Web Interface SOAP Interface Infrastructure-as-a-Service Provider Introduction to Amazon Web Services | Christian Tschenett
Elastic Architecture with Auto Scaling • t1: Medium Load • Servers Nodes: 2 t2: High Load => Scale up! Server Nodes: t3: Low Load => Scale Down! Server Nodes: IaaS-Provider (AWS, …) Introduction to Amazon Web Services | Christian Tschenett
Amazon Web Services Basic concepts and services
Elastic Compute Cloud (EC2) Instances «AWS» «on-premise» CPU, Memory, IO EC2 Instance attached root device Disk - OS - Middleware - Applications Sever Node Elastic Block Storage Introduction to Amazon Web Services | Christian Tschenett
Amazon Machine Images (AMI) «AWS» «on-premise» - OS - (Middleware) - (Applications) Disk Image Amazon Machine Image run instance run instance Instance #2 Instance #1 Node #1 Node #2 Introduction to Amazon Web Services | Christian Tschenett
Security Groups «AWS» «on-premise» Admin SG: allow SSH from Zühlke Web SG:allow HTTPSfrom * DMZ Web #2 Web #1 Web #2 Web #1 App SG:allow 8080from Web SG App Zone App #2 App #1 App #1 App #2 DB SG:allow 1521from App SG Secure Zone DB DB Introduction to Amazon Web Services | Christian Tschenett
Elastic Load Balancers «AWS» «on-premise» availability- zone 1a availability- zone 1b Elastic Load Balancer Load Balancer Load Balancer’ Instance #1 Instance #2 Node #1 Node #2 Introduction to Amazon Web Services | Christian Tschenett
Amazon Relational Database Service (RDS)Managed Oracle, SQL Server, MySQL «AWS» «on-premise» RDBMS Software, Redundant HW, RAID Storage, Failover, Snapshots, Backup/Restore, Patches, … RDS DBInstanceStandby RDS DB Instance availability- zone 1a availability- zone 1b Introduction to Amazon Web Services | Christian Tschenett
Amazon Web Services Putting it all together – back to the simplistic case…
on premises solution Availability Zone 1a EBS Volume EC2 Security Group RDS Security Group EC2 Instance RDS DB Instance Elastic Load Balancer EC2 Instance Standby EBS Volume Availability Zone 1b
AWS command line toolsCreate an new MySQL Database Server • rds-create-db-instancehelloWorldDb --allocated-storage 5 --db-instance-class db.t1.micro --engine mysql --master-username masteruser --master-user-password masterpw1234 --db-security-groups helloRdsSg • rds-describe-db-instanceshelloWorldDb • rds-authorize-db-security-group-ingresshelloRdsSg --cidr-ip 188.63.186.153/32 Introduction to Amazon Web Services | Christian Tschenett
MySQL command line toolsCreate database and tables, import data • echo "create databasehelloworlddb; use helloworlddb; create table message(mkeyvarchar(255), mvalvarchar(255));insert into message(mkey,mval) values ('welcome','Hello from DB');" | mysql -u masteruser -pmasterpw1234 -h helloworlddb.….eu-west-1.rds.amazonaws.com Not AWS specific (standard mysql) Introduction to Amazon Web Services | Christian Tschenett
AWS command line toolsCreate and start a new Linux Server(an EC2 instance based on Amazon Linux) • ec2-run-instances ami-c37474b7 -g helloSg -k myKey -t t1.micro • ec2-describe-instances i-3e15f174 Introduction to Amazon Web Services | Christian Tschenett
Linux AdministrationInstall Tomcat and deploy web application • ssh-imyKey.pem ec2-user@$ec2-….amazonaws.com • sudosu - • yum -y install tomcat7 • cd /var/lib/tomcat7/webapps/ • wget http://sisetestbucket.….amazonaws.com/test.war • chowntomcat:tomcattest.war • cd /usr/share/tomcat7/conf/ • echo 'JAVA_OPTS="${JAVA_OPTS} -Ddbendpoint=helloworlddb.….amazonaws.com/helloworlddb-Ddbuser=masteruser-Ddbpassword=masterpw1234"' >> /usr/share/tomcat7/conf/tomcat7.conf • service tomcat7 start Not AWS specific (standard Linux) Introduction to Amazon Web Services | Christian Tschenett
Amazon Web Services Supporting concepts for Elastic Architectures
Elastic Architecture Down-/Up-Scale Amazon CloudWatch Alarm(s) Amazon RDS EC2 Instances Elastic Load Balancer Auto scaling Group Introduction to Amazon Web Services | Christian Tschenett
AWS command line toolsCreate a new Elastic Load Balancer • elb-create-lbhelloWorldWeb --availability-zones eu-west-1a,eu-west-1b --listener "protocol=http, lb-port=80, instance-port=8080" • elb-configure-healthcheckhelloWorldWeb --target "HTTP:8080/test/index.html" --interval 60 --timeout 5 --unhealthy-threshold 5 --healthy-threshold 5 Introduction to Amazon Web Services | Christian Tschenett
AWS command line toolsCreate an Auto Scaling Group • as-create-launch-confighelloWorldTomcat --image-id ami-c37474b7 --instance-type t1.micro --group helloSg --key myKey--user-data-file cloudinit_tomcat_demoapp.sh • as-create-auto-scaling-grouphelloWorldAutoScaling --launch-configuration helloWorldTomcat --max-size 2 --min-size 1 --availability-zones eu-west-1a,eu-west-1b --load-balancers helloWorldWeb Introduction to Amazon Web Services | Christian Tschenett
AWS command line toolsSetup Scaling Policies and Alarms • as-put-scaling-policyMyScaleUpPolicy --auto-scaling-group helloWorldAutoScaling --adjustment=1 --type ChangeInCapacity --cooldown 300 • mon-put-metric-alarmMyHighLatencyAlarm --metric-name Latency --namespace "AWS/ELB" --dimensions "LoadBalancerName=helloWorldWeb" --comparison-operator GreaterThanThreshold --evaluation-periods 2 --period 60 --statistic Average --threshold 0.3 --alarm-actions arn:…/MyScaleUpPolicy Introduction to Amazon Web Services | Christian Tschenett
http://www.youtube.com/watch?v=HVGLx8OW5Ds this presentation contains icons provided by Amazon Web Services and by openclipart.org