AWS 实战
AWS (Amazon Web Service)
要使用亚马逊的免费云服务 AWS,必须先注册账号,然后绑定信用卡。
创建 AMI(Amazon Machine Image)
- 选择 EC2 服务
- EC2 Management Console(EC2 Dashboard)
打开 EC2 虚拟服务器的管理控制台(默认打开仪表盘) - Launch Instance
点击创建实例按钮 - Amazon Machine Image
第一步选择 AMI 映像的类型,这里选择可免费的 Amazon Linux AMI。 - Instance Type
第二步选择实例类型,这里选择唯一可免费的 t2.micro。 - 确认并创建实例。
一个实例就是一个单独的虚拟服务器。 - 创建实例时如果创建新的密钥对 xxx,需要将私钥文件下载到本地 xxx.pem。
私钥文件如果丢失,就不再能连接服务器,所以需要妥善保存。
EC2 管理控制台
在管理控制台里可选择查看
- EC2 仪表盘
显示各种统计数据。 - Instances(实例)
实例可以启动,停止,终止。
终止的实例不能再次启动,默认情况下会被删除。 - AMIs(映像)
快照可以用来制作映像,映像可以用来制作实例的备份。 - Volumes(卷)
实例在物理上存放于卷之上。 - Snapshots(快照)
实例可以制作快照,作备份之用。 - Key Pairs(密钥对)
在这里创建或删除连接实例所需要的密钥对。 - Security Groups(安全组)
在这里配置安全组(Inbound)
默认 Type: SSH Port Range:22
需要添加
Type: HTTP Port Range:80
Type: HTTPS Port Range:443
EC2 实例
在实例这里可以查看用户创建的所有实例的列表。
其中值得注意的是:
- Availabity Zone
可用区:比如美国东部,太平洋地区等。 - Public DNS(IPv4)
DNS 地址: my.public.dns.amazonaws.com
EC2实例 通常是ec2-<Public IP>-<Availabity Zone>-compute.amazonaws.com
DNS 地址包含了IP 地址和可用区的信息。 - IPv4 Public IP
IP 地址:xx.xxx.xxx.xx - Key Name
创建实例时的密钥对名 - Security Groups
点击配置安全组
选择某个运行中的实例,可以连接该实例进行配置。
对于 EC2 实例,命令是
ssh -i "xxx.pem" ec2-user@my.public.dns.amazonaws.com
xxx.pem 是私钥文件名(须使用相对或绝对路径),
my.public.dns.amazonaws.com 是 DNS 地址。
连接成功之后便可在本地使用命令行远程操纵服务器。
$ ssh -i "xxx.pem" ec2-user@my.public.dns.amazonaws.com
Last login: ***(date) from ***(ip)
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
[ec2-user ~]$
配置 LAMP 服务器
这一段参考教程: Install a LAMP Server (Amazon Linux AMI)
- 更新服务器
[ec2-user ~]$ sudo yum update -y
- 安装 Apache, PHP, MySQL
[ec2-user ~]$ sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
- 启动 Apache 并设置文件权限
[ec2-user ~]$ sudo service httpd start
[ec2-user ~]$ sudo chkconfig httpd on
[ec2-user ~]$ sudo usermod -a -G apache ec2-user
临时退出
[ec2-user ~]$ exit
再连接
[ec2-user ~]$ groups
ec2-user wheel apache
[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
http://my.public.dns.amazonaws.com/
可查看 Apache 的测试页面。
- 配置 MySQL
启动服务器
[ec2-user ~]$ sudo service mysqld start
输入 root 账号的密码,关闭远程登陆等等
[ec2-user ~]$ sudo mysql_secure_installation
[ec2-user ~]$ sudo chkconfig mysqld on
- 安装 phpMyAdmin
[ec2-user ~]$ sudo yum install php70-mbstring.x86_64 php70-zip.x86_64 -y
[ec2-user ~]$ sudo service httpd restart
[ec2-user ~]$ cd /var/www/html
[ec2-user html]$ wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
[ec2-user html]$ mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
[ec2-user html]$ rm phpMyAdmin-latest-all-languages.tar.gz
http://my.public.dns.amazonaws.com/phpMyAdmin
可打开 phpMyAdmin 配置服务器上的 MySQL 数据库。
FileZilla
可以使用 FileZilla 操作服务器,上传或下载文件。
连接时需要使用如下配置:
协议:SFTP(SSH File Transfer Protocol)
主机:my.public.dns.amazonaws.com(DNS 地址)
端口:空白(默认为22)
用户名:ec2-user
连接方式:选择 key file
xxx.pem(私钥文件)
Apache 的测试页面所在位置:
/var/www/html
免费数字证书
配置完毕的服务器可以用 http(80)访问。
要想使用 https(443)访问,光配置端口是不够的,还必须向数字证书颁发机构(CA)购买数字证书。
数字证书一般不适用于 IP 地址,必须先购买域名。
有了数字证书,网站的访问级别就可以由不安全(惊叹号)变为安全(锁)。
Let's Encrypt - Free SSL/TLS Certificates
该网站是一个(免费,自动,开放的)CA,可提供免费的SSL/TLS服务器证书。
AWS 所提供的 DNS 地址 *.amazonaws.com 在该网站的黑名单上,必须使用其他域名。
How to integrate free SSL certificate into AWS instance with Let’s Encrypt
使用 certbot-auto 可自动完成从 Let's Encrypt 网站下载安装数字证书等任务。
假设网站域名为 example.com, 别名是 www.example.com:
[ec2-user ~]$ sudo yum install -y mod24_ssl
[ec2-user ~]$ wget https://dl.eff.org/certbot-auto
[ec2-user ~]$ chmod a+x certbot-auto
[ec2-user ~]$ sudo ./certbot-auto --debug -v --server https://acme-v01.api.letsencrypt.org/directory certonly --webroot -w /var/www/html -d example.com -d www.example.com
任务成功显示信息:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2018-xx-xx. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
可使用以下网址检查所生成的数字证书:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.example.com
使用 root 权限查看所生成的 pem 文件。
[ec2-user ~]$ sudo ls /etc/letsencrypt/live/example.com/
README cert.pem chain.pem fullchain.pem privkey.pem
数字证书一共包含4个 pem 文件,需要配置 Apache 以利用这些数字证书文件。
http to https apache redirection
Redirect non www to www using httpd.conf
How To Redirect www to Non-www with Apache on Ubuntu 14.04
下面修改 Apache 的配置文件1
[ec2-user ~]$ sudo vim /etc/httpd/conf/httpd.conf
在Listen 80
这行下面
添加以下几行:(希望 example.com 转向 www.example.com 的话)
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerAlias example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
或者 (希望 www.example.com 转向 example.com 的话)
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
下面修改 Apache 的配置文件2
[ec2-user ~]$ sudo vim /etc/httpd/conf.d/ssl.conf
注意这个文件的内容实际上是对443端口的配置
Listen 443 https
# ...
<VirtualHost _default_:443>
# ...
SSLEngine on
# ...
</VirtualHost>
在相应的提示性的注释下
分别添加以下几行:(希望 example.com 转向 www.example.com 的话)
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
或者 (希望 www.example.com 转向 example.com 的话)
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
最后重启服务器
[ec2-user ~]$ sudo service httpd restart
大功告成 Congratulations!!!
https://example.com 和 https://www.example.com 以及其子文件夹
都可以安全访问了。
并且输入以下URL时
- example.com
- www.example.com
- http://example.com
- http://www.example.com
- https://example.com
- https://www.example.com
浏览器都会统一按照设置转向 https://www.example.com/(或者 https://example.com/)。
免费证书过期时需要更新证书,然后再重启服务器。
[ec2-user ~]$ sudo ./certbot-auto renew
[ec2-user ~]$ sudo service httpd restart
免费域名
配置完毕的服务器可以用 IP 地址或 DNS 地址访问,但每次重启地址会变。
要想地址稳定,需要购买域名,并映射到 IP 地址或 DNS 地址。
该网站提供 xxx.tk, xxx.ml, xxx.ga, xxx.cf, xxx.gq 一共5种后缀的免费域名,输入 xxx 可查询免费域名是否可用。
如果免费域名可用,可以花0美元免费购买,当然需要注册。
免费使用期间最多一年,到期可以重新激活,但是续订需要付费。
登录之后在主页选择 Services -> My domains 查看已购买的域名。
点击 Manage Domain 可以配置域名。
Management Tools -> Nameservers 选择 Use default nameservers (Freenom Nameservers)
Manage Freenom DNS
在这里配置域名,添加 DNS 记录。
需要添加两条 A 记录 或 CNAME 记录,分别对应域名以及 www 子域名。
其中
- A记录能把域名映射为 IP 地址。
Type 填 A,Target 填 IP 地址,Name 空白不填。
Type 填 A,Target 填 IP 地址,Name 填 www。 - CNAME 记录能把域名映射为 DNS 地址。
Type 填 CNAME,Target 填 DNS 地址,Name 空白不填。
Type 填 CNAME,Target 填 DNS 地址,Name 填 www。
AWS 实战的更多相关文章
- AWS Summit 2014 San Francisco站总结
我上个月去San Francisco参加了AWS Summit 2014 会议,总结一下参加这个会议的情况. 什么是AWS Summit? AWS Summit 是AWS在全球各地举办的,针对AWS用 ...
- 初识云计算 -《AWS云端企业实战圣经》读书笔记
原书中涉及实操的地方,在本文中被省略.一是篇幅太长,放入文中太过累赘,二是原书成书过早,现在 AWS 的界面早已变化很大,不具备参考性. 第一章 谁在使用云计算 1.什么是云计算 云计算(cloud ...
- Apache Hudi + AWS S3 + Athena实战
Apache Hudi在阿里巴巴集团.EMIS Health,LinkNovate,Tathastu.AI,腾讯,Uber内使用,并且由Amazon AWS EMR和Google云平台支持,最近Ama ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- Spark入门实战系列--1.Spark及其生态圈简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .简介 1.1 Spark简介 年6月进入Apache成为孵化项目,8个月后成为Apache ...
- 移动互联网实战--Web Restful API设计和基础架构
前言: 在移动互联网的大潮中, Web Restful API逐渐成为Web Server重要的一个分支. 移动端和服务端的交互, 主流的方式还是通过Http协议的形式来进行. 请求以Get/Post ...
- 《大数据Spark企业级实战 》
基本信息 作者: Spark亚太研究院 王家林 丛书名:决胜大数据时代Spark全系列书籍 出版社:电子工业出版社 ISBN:9787121247446 上架时间:2015-1-6 出版日期:20 ...
- 基于PaaS和SaaS研发的商业云平台实战 转 (今后所有的IT行业会持续集成,往虚拟化方向更快更深的发展,商业化才是这些技术的最终目的)
背景介绍 SaaS.PaaS.IaaS等云服务模式已经被大家普遍认可,在研发过程中借力一些PaaS和SaaS平台,能够提升产品的研发速度和功能稳定程度.本文将通过真实的商业平台案例-MaxWon研发实 ...
- AWS认证权威考经(助理级认证篇)
笔者作为AWS官方认证的早期通过者,已经拿到了AWS的助理级解决方案架构师.开发者认证,系统管理员认证.这几年也陆续指导公司多人通过AWS的认证.本篇文章将分享如何通过自学的方式轻松通过AWS的助理级 ...
随机推荐
- java8_api_stream
与集合联系紧密 Stream-1 stream概念 特点 使用示例
- Docker系列(二)镜像下载、操作容器、镜像导入导出等操作
一.镜像操作 列出镜像 $sudo docker images 从dockerhub检索image $docker search image_name 下载image $docker pull ima ...
- 开始转变方向,学习Linux——《Linux就该这么学》
三十而立,四十不惑. 我呢,未立将不惑. 苦恼之余,决定拓展就业范围,正式学习Linux,准备考取RHCE证书. 考证需要报名培训机构,这是一个明智的选择,毕竟中国人善于考试,善于钻研考试. 联系培训 ...
- Open Source 开发工具集
Open Source 开发工具集 转自:http://www.linuxforum.net原作者:gogoliu(Pooh-Bah) 编辑器: vi:老牌编辑器,在各个unix和unix-like平 ...
- java获取客户端ip地址工具类
public class IpUtils { private static final String[] HEADERS = { "X-Forwarded-For", " ...
- 【Algorithm】字符串编辑距离(Levenshtein距离)C++算法实现
算法实现比较简单,但算法原理不明白,有空了再研究一下. unsigned LevenshteinDistance(const string& s1, const string& s2) ...
- 使用R的注意事项
换源,将源切换到中国 具体方法是: options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/&qu ...
- ASP.NET core 2.1部署到 Centos 7
步骤要点: 一.关闭Centos selinux: 操作方式: 1.永久关闭:打开/etc/selinux/config文件,设置SELINUX=disabled,注意,不是SELINUXTYPE=d ...
- 深度学习(二)--深度信念网络(DBN)
深度学习(二)--深度信念网络(Deep Belief Network,DBN) 一.受限玻尔兹曼机(Restricted Boltzmann Machine,RBM) 在介绍深度信念网络之前需要先了 ...
- java 调用c# web api 代码
上次我们写的.net web api 给对方公司的java团队调用,他们觉得说java无法调用.net 写的api ,靠居然有这事,索性自己写一个java的demo给他们 使用apache的Http ...