实验1:在AWS上部署一个Web Application应用实践

Deploying a Web Applicaiton on AWS

实验目标

通过多个AWS的服务去部署一个web application

  1. web application是基于PHP 部署在 EC2上
  2. 数据会被存储在Amazon DynamoDB上
  3. 图片会被保存在 Amazon S3 上

操作步骤

创建一个IAM Role

原因:EC2调用其他aws服务的时候需要具备角色去操作,否则是非法操作。这个AWS做的比较严谨。

  1. 选择IAM服务,从导航菜单栏能看到创建角色
  2. 创建一个角色,记得选择是为EC2创建角色,同时设置权限为AmazonS3FullAccess、AmazonDynamoDBFullAccess,这样就可以访问S3和DynamoDB了

创建一个S3存储Bucket

  1. 选择S3服务,直接创建Bucket,设置一个名字,注意这个名字是全球独一无二的,因为将来要通过这个名字组合出的域名访问S3内存储的内容;

创建一个DynamoDB Table

  1. 选择DynamoDB服务,这是一个托管的NosqlDB ,创建相关表.
  2. 创建表的时候需要指定主键名称和排序键的名称。

创建一个VPC,同时创建一个IGW和一个Public Subnet

  1. 创建一个VPC,规划好网段,一般不使用172网段,这里我们可以采用常用的策略 设置 IPv4 CIDR block的值为10.200.0.0/16


    图片.png
  2. 这样VPC内的子网共计有256*256个IP可用(当然包含了那些预留的IP)

  3. 创建一个Public Subnet,要在vpc的网段内,详情参考如下


    图片.png
  4. 创建一个Internet GateWay,这个就是用来连接互联网的。这里要将Internet Gateway 给Attach到刚才创建的VPC上

  5. 创建一个路由表,Route table 是VPC级别的,设置Destination为0.0.0.0/0,将他的Target设置为刚才创建的Internet Gateway。

  6. 将路由表与刚才创建的Public Subnet关联,这里就是更改路由表的属性标签,将其余Public Subnet进行关联。

  7. 至此我们完成了实验环境的VPC的整体设置

部署应用到EC2上

  1. 先创建一个EC2实例,填写的相关信息如下图,建议选择linux AMI,号称改写了内核,完全虚拟化,性能媲美纯物理服务器;


    图片.png

    上图设置EC2的VPC、子网,自动获取公网IP、拥有写DynamoDB和S3的能力。

  2. 打开EC2的user Data标签,这个标签可以输入一些shell脚本,在服务器启动的时候执行。
  3. 这里我将如下过程都给放到user data输入框里边去:
  • 安装httpd服务器和PHP语言运行环境
  • 下载web application程序脚本
  • 下载安装AWS支持PHP的sdk
  • 将文件拷贝到S3的webapp-开头的那个bucket中
  • 将数据拷贝到DynamoDB中
  • 启动web server
  1. 脚本如下
#!/bin/bash
# Install Apache Web Server and PHP
yum remove -y httpd php
yum install -y httpd24 php56
# Download Lab files
wget https://us-west-2-tcprod.s3.amazonaws.com/courses/ILT-TF-100-ARCHIT/v5.4.0/lab-1-webapp/scripts/lab1src.zip
unzip lab1src.zip -d /tmp/
mv /tmp/lab1src/*.php /var/www/html/
# Download and install the AWS SDK for PHP
wget https://github.com/aws/aws-sdk-php/releases/download/3.15.9/aws.zip
unzip aws -d /var/www/html
# Determine Region
AZ=`curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone/`
REGION=${AZ::-1}
# Copy files to Amazon S3 bucket with name webapp-*
BUCKET=`aws s3api list-buckets --query "Buckets[?starts_with(Name, 'webapp-')].Name | [0]" --output text`
aws s3 cp /tmp/lab1src/jquery/ s3://$BUCKET/jquery/ --recursive --acl public-read --region $REGION
aws s3 cp /tmp/lab1src/images/ s3://$BUCKET/images/ --recursive --acl public-read --region $REGION
aws s3 ls s3://$BUCKET/ --region $REGION --recursive
# Configure Region and Bucket to use
sed -i "2s/%region%/$REGION/g" /var/www/html/*.php
sed -i "3s/%bucket%/$BUCKET/g" /var/www/html/*.php
# Copy data into DynamoDB table
aws dynamodb batch-write-item --request-items file:///tmp/lab1src/scripts/services1.json --region $REGION
aws dynamodb batch-write-item --request-items file:///tmp/lab1src/scripts/services2.json --region $REGION
aws dynamodb batch-write-item --request-items file:///tmp/lab1src/scripts/services3.json --region $REGION
# Turn on web server
chkconfig httpd on
service httpd start

验证应用是否启动

  1. 直接访问EC2,看刚才启动的实例的公网IP
  2. 通过浏览器访问公网IP,就能看到启动的应用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容