AWS API Gateway和Lambda的简单测试

测试了一下使用API Gateway来触发Lambda应用,并将结果显示在网页上。 Lambda支持语言为: Node.js,Java,Python,C#,Go,PowerShell,等等。它具有无需管理服务器,根据需求自动扩展,便宜等优势。 具体流程 在S3 Bucket里存放网页,显示网页后,在网页里通过API Gateway来触发Lambda功能应用,并将Lambda功能应用返回的结果显示在网页上。Route53来使用DNS网址为可选。 创建Lambda应用 Lambda是EC2在一起的Compute界面下,点进去后,再点Create Function来创建函数, 取名为:XiongLambdaFunction,语言设置为Python 3.6,这样会自动生成以下代码: import json def lambda_handler(event, context): # TODO implement return { ‘statusCode’: 200, ‘body’: json.dumps(‘Hello from Lambda!’) } 进行以下替换: import json def lambda_handler(event, context): print(“In lambda handler”) resp = { “statusCode”: 200, “headers”: { “Access-Control-Allow-Origin”: “*”, }, “body”: “Xiong Huilin” } return resp […]

AWS的CloudFormation和Elastic Beanstalk的简单测试

CloudFormation CloudFormation归类在Management & Governance下,它有很多模板可以直接使用,模板实际上是包含配置的文本文件,使用模板可以用很简单的操作可以创建,重复创建和设置很复杂的应用。 这里做一个简单的测试,点Create stack,取名: XiongStack,再使用Use a sample template,使用已有的模板,创建一个Wordpress blog,并进行各种设置。在这里可以看到模板的细节,也可以对模板进行编辑。 创建后可以在Events下看到进度。创建完成后,在Resource下查看网址:http://ec2-13-229-131-47.ap-southeast-1.compute.amazonaws.com/wordpress/,输入后有以下提示: ==Your server is running PHP version 5.3.29 but WordPress 5.3 requires at least 5.6.20.== 这个问题以前碰到过,需要升级PHP版本,参见使用AWS云安装WordPress + RDS MySQL方法进行解决,解决后以下网址可以正常访问: http://ec2-13-229-131-47.ap-southeast-1.compute.amazonaws.com/wordpress/ 测试完成后,删除这个Stack,那么这个Stack下所有的资源全部都被删除。 Elastic Beanstalk Elastic Beanstalk是在EC2界面里,它主要实现了容器的功能,使你不用担心底层的架构,例如负载均衡,扩展,运行健康检查等,使用者只需关注于应用层的创建和设置。 创建一个Elastic Beanstalk,进入Create a web app,取名为XiongElasticBeanstalk,使用PHP,并使用Sample Application,也就是样例应用,这里是简单起见。当然也可以上传代码(上传ZIP或者WAR),发布成功后,查看以下生成的 DNS网址,成功访问。 http://xiongelasticbeanstalk-env-1.pysmrc6iwc.ap-southeast-1.elasticbeanstalk.com/ 可以对样例程序进行下载,修改,再上传,进行发布,出现以下问题: ==Forbidden== ==You don’t have permission to access this resource.== 查找原因,参见403 […]

AWS通过自动扩展实现高可用 – 创建一个高可用WordPress站点

创建两个S3 Bucket,分别存放Image和Code 创建两个S3,分别存放Image和Code,一个S3 Bucket命名为xiongwpmedia2019,存放图片,另一个S3 Bucket命名为xiongcode2019,用来存放Wordpress代码。 使用CloudFront来访问图片 在Networking & Content Delivery下的CloudFront,做以下设置, Origin Domain Name选择刚刚创建的S3 Bucket, 为xiongwpmedia2019.s3.amazonaws.com。 其它设置为默认。 创建一个Security Group,开放 ipv4 and ipv6的http, port 80, 和 ssh, 22 port,名字设置为Webdmz。 再创建一个 RDS使用的Security Group,取名为MyRDSSG, 允许 3306 port, TCP, Mysql/Aurora, 确保它开放给刚刚创建的 名为Webdmz的 Security Group. 这里的DNS域名地址是: df3jgic6atm3p.cloudfront.net 创建一个RDS和一个EC2 创建一个RDS,记得在Availability & durability里, 设置Create a standby instance (recommended for production usage)。这里要收费。RDS的Endpoint是:xiongrds.cn63rtxgzraf.ap-southeast-1.rds.amazonaws.com。 参见使用AWS云安装WordPress + […]

AWS中使用负载均衡

进行实验,创建两个EC2, 每一个EC2在一个AZ (Availability Zone)里,再创建一个ELB,达到负载均衡的目的。 AWS负载均衡有三种: Application Load Balancer Network Load Balancer Classic Load Balancer,如果应用没有反应,那么ELB会返回504 这三种负载均衡有一些区别,首先,Application Load Balancers 和 Network Load Balancers需要使用Target Group,注册实例到Target Group,流量会用到Target Group, Classic Load Balancer需要直接注册实例到Load Balancers。 另外, Application Load Balancers的cross-zone load balancing设置是一直开启的,Network Load Balancer的cross-zone load balancing设置默认关闭,可以设置开启。Classic Load Balancer,如果使用API 或者 CLI创建,cross-zone load balancing设置默认关闭,如果使用界面进行创建,cross-zone load balancing设置默认开启。 创建两个EC2 创建两个EC2,分别在不同的AZ里,启动脚本分别是: 第一个EC2, #!/bin/bash yum update -y yum install […]

在AWS中创建定制的虚拟私有云(VPC)

创建定制VPC AWS里一般默认有一个VPC,如果直接使用的话,可以省去很多麻烦。如果创建定制VPC,所有的组件需要各个创建,可以了解各个组件的细节。如果创建定制的VPC,会新创建一个默认的Route Table,Network ACL,和Security Group。不会创建Subnet和Internet Gateway。 创建一个定制的VPC并取名为XiongTestVPC, IPv4 CIDR block为10.0.0.0/16,如下图所示: 这里默认创建了Network ACL是允许所有的流量进出, 也就是所有的Source和Destination都是0.0.0.0/0允许。 以下未知,是否要设置DNS resolution和DNS hostnames为Enabled? DNS resolution Enabled DNS hostnames Enabled 在VPC里创建两个Subnet 首先创建公用Subnet,名字为XiongPublicSubnet,VPC选择新定制的VPC–>XiongTestVPC,IPv4 CIDR block为10.0.1.0/24,这里Availability Zone选择ap-southeast-1a。 ==注意==: 这里选择了ap-southeast-1a,如果在另一个帐户里也选择了ap-southeast-1a,这两个Availability Zone并不一定是同一个,因为AWS会随机分配,这样可以保证不会有大多数用户选择同一个Availability Zone。创建公用Subnet如下图所示: 对于公有的Subnet,改变设置公有的Subnet的自动分配公有地址,在Action –> Modify auto-assign IP settings里,如下图所示: 同理,创建另一个私有的Subnet,名字为XiongPrivateSubnet,VPC选择新定制的VPC–>XiongTestVPC,IPv4 CIDR block为10.0.2.0/24,这里Availability Zone选择ap-southeast-1b。 这里创建的两个Subnet, 默认Route Table里只能访问本地,需要在后面关联能够访问外网的Route Table,Network ACL默认为前面新创建的VPC所默认生成的Network ACL。 创建Internet Gateway 创建一个名为XiongTestInternetGateway的Internet Gateway,并把它附加到新创建的定制VPC上。如下图所示: ==注意==:一个VPC只能附加一个Internet gateway。 创建额外的Route table访问外部 […]

AWS Route53里使用Godady注册的域名

AWS的Route53是可以注册域名的,但是如果在外部注册的域名怎么在Route53里使用呢,这里使用外网的DNS服务的Godaddy注册域名,并在AWS的Route53里使用。 注册域名并下载Zonefile 在Godaddy里注册域名xionghuilin.club,并在管理域名里下载Zonefile, 自动下载并命名为xionghuilin.club.txt 在Route53里创建hosted zone 在Route53里创建hosted zone,会自动生成SOA和NS,如下: 在Godaddy中添加新生成的NS 以下四条NS需要添加到Godaddy中,xionghuilin.club的name server如下: ns-727.awsdns-26.net. ns-1182.awsdns-19.org. ns-1565.awsdns-03.co.uk. ns-211.awsdns-26.com. 这里在Godaddy里添加name server的时候要去掉最后的点,不然输入会不成功。 结果如下: 创建两个EC2实例 使用以下启动脚本在新加坡创建一个EC2的实例,public IP是18.141.25.16 #!/bin/bash yum update -y yum install httpd -y service httpd start chkconfig httpd on cd /var/www/html echo “<html><h1>Hello Xiong! This is the Singapore Web Server</h1></html>” > index.html 使用以下启动脚本在South America (São Paulo)创建另一个EC2的实例,public IP是52.67.73.251 #!/bin/bash yum […]

使用AWS云安装WordPress + RDS MySQL

创建EC2实例 使用以下AWS实例: === Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type – ami-05c859630889c79c8 The Amazon Linux AMI is an EBS-backed, AWS-supported image. The default image includes AWS command line tools, Python, Ruby, Perl, and Java. The repositories include Docker, PHP, MySQL, PostgreSQL, and other packages. Root device type: ebs Virtualization type: hvm ENA Enabled: Yes […]

在AWS Ubuntu上安装和配置VNC并通过SSH隧道连接

在AWS Ubuntu上安装和配置tightvncserver, 并通过SSH隧道进行了远程桌面连接,记录下实验流程。 1,安装tightvncserver 由于已经安装了 xfce4 xfce4-goodies,所以此处不需要安装。以下指令安装tightvncserver。 sudo apt-get update sudo apt-get install tightvncserver 2,设置vncserver的密码,登录使用 如果没有设置用户名和密码,需要设置,我在先前的实验中已经设置了用记名ubuntu和密码,所以我这里不需要设置。设置用户名密码具体参见:连接AWS EC2 Linux instance Ubuntu远程桌面 设置vncserver的密码,这里密码最长为8个字符,设置密码的同时,系统对vncserver时行了相应的设置。 ncserver 3,设置VNC服务器 主要是设置VNC服务器启动时的执行的指令,VNC开始启动时,自动启动一个服务器例程,使用显示端口5901,VNC识别为 :1,同理新开的端口为:2,:3,依此类推,端口使用为5900+x。 要配置5901设置,首先停止在端口5901上运行的例程, vncserver -kill :1 配置 xstartup 文件,首先备份原始的文件以防以后用到, mv ~/.vnc/xstartup ~/.vnc/xstartup.bak 创建一个新的xstartup 文件, emacs ~/.vnc/xstartup 在文件中加入以下三行内容, #!/bin/bash xrdb $HOME/.Xresources startxfce4 & 第一行指令xrdb $HOME/.Xresources告诉GUI的框架读取服务器的.Xresources文件,.Xresources是用户改变图形桌面设置,例如终端颜色,字符指针风格和字体等。 第二行指令告诉服务器启动XFCE,能够通过相应图形界面软件管理服务器。 修改为可执行, sudo chmod +x ~/.vnc/xstartup 4,设置VNC服务文件 为了更好地控制VNC服务器,将其配置成Ubuntu的VCN服务,更加方便地进行start,stop, […]

Nomachine AWS RHEL7 & Ubuntu Remote desktop connection

I have tried the Nomachine on both AWS RHEL7 and Ubuntu, it seems the results are not good. Noted down the procedure, 1, install the nomachine on RHEL7 Have downloaded “freenx-server-0.7.3.tar.gz”, “nomachine_5.1.26_1_x86_64.rpm” and “nomachine-enterprise-server-evaluation_5.1.26_2_x86_64.rpm”, the enterprise server version is with one month evaluation. All the three installation with similar result, below is the log, and […]