AWS for the Java Developer

943 views 37 slides Mar 27, 2017
Slide 1
Slide 1 of 37
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37

About This Presentation

Talk for Jozi-JUG - https://www.meetup.com/Jozi-JUG/events/238170900/


Slide Content

AWS ( for the Java Developer) @rorypreddy

Meet Rory Developer in R&D team at BBD Training for 500 Developers Most Languages & Frameworks Organizer for the Jozi-JUG Not related to Tyrion Lannister Don’t do kids parties

Agenda The “Cloud” Core AWS Services Tooling Billing Monitoring Demos

6 Cloud Benefits Trade capital expense for flexible expense. Economies of scale. Eliminate guessing capacity needs. Speed and agility. Stop spending money on running and maintaining data centers. Global quickly.

Move

Signing up for an AWS account Sign up through https://aws.amazon.com You will need a credit card There will be a telephone verification Choose a zone try and stick to one Ireland is Best!

Core Services Security Network Security Network Security Groups NACLs Access Mgmt VPC VPC EC2 “ Classic ” “ Public ” ELB On-Demand Provision Traditional Infrastructure Amazon Web Services Servers Amazon EC2 Instances On-Premises Servers Security Security Groups Network ACLs AWS IAM Firewalls ACLs Administrators Networking VPC ELB Router Network Pipeline Switch Storage and Database RDBMS SAN Amazon EBS Amazon EFS Amazon S3 Amazon RDS

S3 Simple Storage Service (S3) Cloud based file storage Simple API to CRUD files Unlimited capacity Great for static web content

EC2   Elastic Compute Cloud (EC2) Hardware virtualization in the cloud Various sized servers All major operating systems Provision , configure, start and stop machines from Java App! Full operating system access via SSH and Security Groups

SSH key pair SSH keys are used for secured access to EC2 instances SSH keys avoid password weaknesses You can import your own key or have AWS generate a key pair for you. AWS does not store the private part of the key pair

Security Group Security Groups are firewalls for your instances By default, they block all traffic You can choose what protocols and ports to open You can use port ranges (e.g. 22-24) You can choose who the ports are open to Create rules groups of IP addresses Create rules that specify Security Groups for other EC2 Instances

Databases Relational Database Service (RDS) MySQL , Oracle, SQL Server, PostGres Automated backups Live replication for fail-over support No difference for JDBC based apps DB provisioning from your browser or from within your Java app.   NOSQL databases SimpleDB – small amounts of structured data 10GB limit per table DynamoDB – hosted on SSD – no size or request limitations

Elastic Beanstalk Deploy and scale web applications Languages: Java, .NET, PHP, Node.js, Python, Ruby Servers: Apache, Nginx, Tomcat , IIS U pload your code; AWS handles: Deployment Capacity Provisioning Load balancing Auto scaling Health Monitoring

EC2 Container Service Run Docker containers in EC2 cluster API controlled Support Images from private Docker repositories Compatible with other services and features, security groups Docker CE and EE for AWS Docker swarm for Cloud

Lambda Runs stateless, request-driven code called Lambda functions: NodeJS , Java , Python and C# Triggered by events (state transitions) in other AWS services Charged per 100ms execution time Upload your code; Lambda handles: Capacity Scaling Deployment Fault tolerance Monitoring Logging Web service front end Security patching

API Gateway RESTful API gateway service Provides DDoS protection and throttling capabilities Multiple API stages that you define (e.g ., dev, test, prod ) Works well with Lambda functions

Tooling AWS and EB CLI IDE integration – Eclipse, IntelliJ, Visual Studio AWS Java SDK API to manage AWS services U se services from within your application or Maven Android and IOS app

AWS Pipelines CodeCommit or GitHub or BitBucket CodeBuild or Jenkins CodeDeploy or Jenkins CodePipeline

Billing Free Tier Free for 12 months EC2 - run 1 micro instance x 1 month or 2 micro instances x half a month S3 - 5 GB of Standard Storage RDS - 750 Hours Lambda - 1,000,000 free requests per month And a lot more….

Billing Keep a close handle on what you are running in the cloud Measure what you are spending Alarms and Reports Calculate Return On Investment Minimize what you don’t need Protect yourself from EDoS

Monitoring Service Type Continuous logging Continuous evaluations On-demand evaluations Periodic evaluations Actions in response to APIs and state change Inspector Config Rules Trusted Advisor CloudTrail CloudWatch Events

Demos Beanstalk Spring boot + AngularJS+ DynamoDB Plain Java 8 - no servers! Tomcat Java Lambda Function Api Gateway

Best Practices Storage is cheap Leverage built-in tools for monitoring and compliance Use “Cloud Native” before M anual Beanstalk before EC2 Docker CE over doing it yourself

Questions? @rorypreddy