利用亚马逊AWS搭建我的服务器

注册帐号

注册地址: https://portal.aws.amazon.com/billing/signup#/start

   注册过程比较麻烦,须要用信用卡,中间的信息填写的内容也比较多,而且目前必须注册国际帐号才能我的使用EC2,亚马逊的还专门打电话告知了我以后又发送了邮件告诉了我具体的注册方式。注册的密码必须是大小写字母加数字!
defaulthtml

登录

登录地址: https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3Fstate%3DhashArgs%2523%26isauthcode%3Dtrue&client_id=arn%3Aaws%3Aiam%3A%3A015428540659%3Auser%2Fhomepage&forceMobileApp=0

   登录时可以使用帐户别名或者帐户ID,因此注册的信息记好,登录时使用邮箱登录或者用户名登录便可。
defaultpython

建立实例

   一、登录以后,在控制面板页面左上角选择“服务”,能够查看亚马逊有哪些服务可使用,由于我使用的是EC2,因此选择第一个EC2就能够了。
default
defaultnginx

   二、选择EC2后,会跳转到EC2 Dashboard,左侧会显示和EC2相关的配置菜单,点击实例,能够查看当前建立好的实例,若是没有则是空。
ec2 dashboard
defaultweb

   三、点击“启动实例”按钮,会跳转到实例配置页面:shell

  • 步骤 1: 选择一个 Amazon 系统映像(AMI)

   在这里能够选择实例的系统,若是是免费用户能够勾选“仅免费套餐”,而后选择实例系统,主要有Linux系统和Windows系统,包括Amazon Linux 2 AMI、SUSE Linux Enterprise Server 1五、Red Hat Enterprise Linux 7.六、Ubuntu Server 18.04 LTS、Microsoft Windows Server 2016 Base等等,根据本身的喜爱选择系统,系统也支持X86和ARM可供选择,点击选择可进入下一步。编程

  • 步骤 2: 选择一个实例类型json

       在这里选择实例的配置,由于是免费帐户,因此只能选择免费的实例,免费的套餐会有提示,配置是1个CPU,1G内存,点击下一步“配置实例详细信息”。
    defaultubuntu

  • 步骤 3: 配置实例详细信息centos

       在这里能够配置建立时实例的一些信息,能够本身进行配置,也能够直接默认,点击下一步“添加新存储”。
    default浏览器

  • 步骤 4: 添加存储

       该项中能够设置硬盘存储分区,默认只配置好了根目录,卷类型能够选择,也支持添加新卷,也能够选择默认。配置好以后点击下一步“添加标签”。
    default

  • 步骤 5: 添加标签

       该项中能够默认或者自定义标签,标签由区分大小写的键值对组成。例如,您能够定义一个键为“Name”且值为“Webserver”的标签。可将标签副本应用于卷和/或实例。也能够不进行配置,直接进行下一步“配置安全组”。

  • 步骤 6: 配置安全组

       该项中,用于配置实例中安全组的信息,针对实例能够将实例加入已有的安全组或者是选择新建安全组, 安全组名称与描述可自定义,此处默认开启的是SSH类型,端口号是22,用于使用ssh方式登录服务器。由于后面将要说到须要配置nginx,因此此处能够添加两个规则用于nginx访问:

    • 点击添加http规则:类型选择HTTP,端口范围是80,能够是TCP,来源能够改成“任意位置”,描述能够自定义填写。
    • 点击添加https规则:类型选择HTTPS,端口范围是443,能够是TCP,来源能够改成“任意位置”,描述能够自定义填写。

    点击下一步“审核和启动”。
    default

  • 步骤 7: 核查实例启动

       该项中会显示以前几个步骤中配置的相关信息,确认无误后点击启动,会填出须要选择现有密钥对或着新密钥对,由于是新建的实例在这里是没有密钥对的,因此选择建立新密钥对,填写密钥对名称, 填写以后必定要下载密钥对,由于这个后面须要用到,而且这是没有下载的话后面就没法再获取到这个密钥对文件了,弹出框也会提示“建立文件后,您将没法再次下载该文件”。具体建立密钥对的其余方式后面再说。填写密钥对之后,点击“启动实例”按钮,会跳转到启动状态页面,点击右下角“查看实例”到EC2 dashboard查看建立的实例。
    default

    defaultdefault

    至此,实例已经建立完毕,后面就是作相关的配置。

配置实例

一、在实例一栏中能够看见已经建立的实例,列表会显示实例ID、IPV四、实例状态、密钥名称等,也能够点击右上角小齿轮按钮,配置须要显示的列。
default

二、配置安全组

在建立实例的时候可能会忘记配置HTTP会其余相关的规则,则能够在这里从新进行配置
复制代码
  • 勾选要配置的安全组,在上面点击“操做”按钮,或者在要配置的安全组那一行右键都行,而后能够进行删除安全组、添加入站或者出站规则等,这里咱们添加入站规则,即与上面的操做同样,若是不开启80或443端口的话,后面配置好nginx外部是没法访问的:
    • 点击添加http规则:类型选择HTTP,端口范围是80,能够是TCP,来源能够改成“任意位置”,描述能够自定义填写。
    • 点击添加https规则:类型选择HTTPS,端口范围是443,能够是TCP,来源能够改成“任意位置”,描述能够自定义填写。

三、配置弹性IP

在实例中会有公有IP和私有IP,弹性公网IP是一种NAT IP。它实际位于云服务提供商的公网网关上,经过NAT方式映射到了被绑定的云主机实例的私网网卡上。所以,绑定了弹性公网IP的云主机能够直接使用这个IP进行公网通讯,可是在它的私网网卡上并不能看到这个IP地址。
复制代码
  • 点击“分配新地址”按钮,会跳到分配新地址页面,而后选择IPV4地址池,能够是本身配置,也能够选择亚马逊的自动分配的,这里选择亚马逊池,点击“分配”按钮,点击后就会显示分配好的弹性IP。

    • 返回到弹性IP列表,选择刚配置好的弹性IP,此时是没有绑定实例和私有IP的,选中该列,点击上面的“操做”按钮,选择“关联地址”,跳转到关联地址页面,选择实例以及私有IP,实例就是刚才建立的实例,私有IP的查看也是在实例列表中,亚马逊也有提示:若是你将一个弹性 IP 地址与您的实例相关联,您目前的公有 IP 地址将被释放,选择好后点击关联,这样后面使用ssh链接实例时,就可使用配置好的弹性IP地址。
    ip

四、密钥对配置

刚才说到配置实例时须要选择密钥对,这里能够配置新密钥对,用于后续建立实例时使用,也能够导入密钥对。
复制代码
  • 点击左侧“密钥对”选项,跳转到密钥对列表,点击左上角“建立密钥对”按钮,输入密钥对名称,点击”建立“,以后密钥对会自动下载到本地,用于以后登录时使用。
  • 须要删除密钥对的话直接右键删除或者勾选以后点击删除便可。

   至此,实例的一些经常使用基本配置就已经完成了,接下来在本地对已经启动的实例进行链接。

链接

   本地链接实例时比较麻烦,在实例里表中,勾选想要链接的实例,会弹出链接实例的方式:一种是使用SSH客户端本地链接,一种是直接从浏览器链接可是须要安装Java,这里使用SSH客户端本地进行链接。

   官方给的建议是使用PuTTY进行链接,可是Mac安装PuTTY特别麻烦,而且须要安装一些其余的东西,过于繁琐,这里我使用了SecureCRT进行链接,下载地址:www.vandyke.com/products/se…

   同时官方文档也给出其余链接方式,可是比较恶心的是,文档内容特别多,在这里咱们只看使用SSH方式链接AWS EC2 Linux版本实例,这是官方给的方式,下面我写出来的是已经填过的坑,链接实例是有先决条件的,就是如下七条:

  • 一、安装SSH客户端
  • 二、安装 AWS CLI 工具
  • 三、得到实例的 ID
  • 四、得到实例的公有 DNS 名称
  • 五、查找私有密钥并验证权限
  • 六、获取用于启动实例的 AMI 的默认用户名称
  • 七、容许从您的 IP 地址到您的实例的入站 SSH 流量

一、安装SSH客户端

   通常Mac有自带的终端就可使用,可是由于首次链接的使用是使用密钥文件进行链接的,因此终端工具不是很方便了,刚才推荐的secureCRT,可使用密钥对文件转换后的密进行服务器登录,须要将下载下来的密钥对文件即后缀名为pem的文件转为密钥便可。

  • 安装secureCRT,Mac傻瓜式安装;
  • 转换密钥对文件为密钥串:
    • 使用命令:ssh-keygen -y -f XXX.pem > XXX.pem.pub转换为密钥串文件;
    • 使用命令:cat XXX.pem.pub查看密钥串;
  • 配置secureCRT
    • 点击 + 新建,会弹出对话框,直接continue; 1
    • port和firewall默认,填写hostname,即上面说到的弹性IP,填写username,即用于启动实例的 AMI 的默认用户名称,若是是ubuntu的系统,则username就是ubuntu,其余的后面会说到;
    • 点击continue,sessionname和description随便填,就是到时候显示的名称而已;点击done
    • 列表会显示建立好的项,显示的名字就是刚才sessionname,右键,点击Properties;
    • 在弹出框中选择SSH2,在右面的Authentication区域,若是Properties不可点击,则先点击一下左边的列表区域中的Public Key,再点击Properties; 2
    • 在弹出框中,上方勾选“use session public key setting”,而后在下面的Use identity or certificate file中填写刚才使用命令生成的密钥串的那堆字符 3
    • 点击ok关闭对话框便可。
        至此,secureCRT配置完毕,即SSH客户端配置完毕;使用Windows的朋友可使用Xshell链接。如今还没法链接AWS,还须要接下来的几步。

二、安装 AWS CLI 工具

  首先是官方文档:docs.aws.amazon.com/zh_cn/cli/l…,而后填坑。官方推荐Mac使用pip安装,而且又有一堆先决条件,可是问题又有一堆,须要的东西比较复杂,下面的是比较简单快捷的方式:

  • 安装Python,Mac有自带的Python不须要再次进行安装,版本须要在2.6.5以上,Windows用户请自行安装;
  • 安装 AWS CLI

    • 下载 AWS CLI 捆绑安装程序,在终端执行命令:curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
    • 解压缩程序包(必须安装了unzip):unzip awscli-bundle.zip
    • 运行安装程序: sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
    • 查看是否安装成功:aws --version出现版本号则表示安装成功

      这种方式是Mac下最简单的了,若是使用pip安装,则aws --version命令会提示无效,则须要配置环境变量,主要是配置python的环境变量,比较麻烦,因此上面的方式是比较简单的。

  • 配置 AWS CLI

    配置AWS CLI使用 aws configure命令比较快捷
    复制代码
    • 获取 IAM 用户的访问密钥 ID 和秘密访问密钥。

      访问密钥包含访问密钥 ID 和秘密访问密钥,用于签署对 AWS 发出的编程请求。若是没有访问密钥,您可使用AWS 管理控制台进行建立。建议您使用 AWS 帐户根用户 访问秘钥而不是使用 IAM 帐户根用户访问秘钥。IAM 让您能够安全地控制对您的 AWS 帐户中 AWS 服务和资源的访问。

      仅当建立访问密钥时,您才能查看或下载秘密访问密钥。之后您没法恢复它们。不过,您随时能够建立新的访问密钥。您还必须拥有执行所需 IAM 操做的权限。有关更多信息,请参阅 IAM 用户指南 中的访问 IAM 资源所需的权限。

    一、打开 [IAM 控制台](https://console.aws.amazon.com/iam/home?#home)。
    二、在控制台的导航窗格中,选择 Users。
    三、选择您的 IAM 用户名称(而不是复选框)。
    四、选择安全证书选项卡,而后选择建立访问秘钥。
    五、要查看新访问秘钥,请选择显示。
    复制代码
    • 在终端执行:aws configure会出现下面的内容,根据提示进行填写:

      一、AWS Access Key ID [None]: 访问密钥 ID,在实例列表查看
      例: AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
      二、AWS Secret Access Key [None]:私有访问密钥
      例:AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      三、Default region name [None]:默认登录名称,ubuntu系统为ubuntu
      例:Default region name [None]: us-west-2
      四、Default output format [None]:默认输出文件类型,json或text
      例:Default output format [None]: json
      复制代码

  至此,AWS CLI基本配置完成,若是要进行更多配置,可查看官方文档

三、得到实例的 ID

   在EC2 dashboard,实例列表中查看实例ID;

四、得到实例的公有 DNS 名称

   在EC2 dashboard,实例列表中查看实例的公有 DNS 名称,列名为“公有DNS(IPv4)”;

五、查找私有密钥并验证权限

   这步就是使用后缀名为pem的文件进行登录系统,前面已经配置了secureCRT就不须要这步了;
若是还须要的话,则使用下面的方式进行:

您的密钥必须不公开可见,SSH 才能工做。若是须要,请使用此命令:
chmod 400 xxxx.pem
经过其 公有 DNS 链接到您的实例,如实例为:ec2-13-59-115-229.us-east-2.compute.amazonaws.com
则使用命令:ssh -i xxxx.pem 服务器用户名@ec2-13-59-115-229.us-east-2.compute.amazonaws.com
复制代码

六、获取用于启动实例的 AMI 的默认用户名称

  • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user。
  • 对于 Centos AMI,用户名称是 centos。
  • 对于 Debian AMI,用户名称是 admin 或 root。
  • 对于 Fedora AMI,用户名为 ec2-user 或 fedora。
  • 对于 RHEL AMI,用户名称是 ec2-user 或 root。
  • 对于 SUSE AMI,用户名称是 ec2-user 或 root。
  • 对于 Ubuntu AMI,用户名称是 ubuntu。
  • 另外,若是 ec2-user 和 root 没法使用,请与 AMI 供应商核实。

七、容许从您的 IP 地址到您的实例的入站 SSH 流量

   该步骤即配置安全组,开放22端口用于SSH链接,80或443用于访问Web程序;

八、使用secureCRT链接实例服务器

   在secureCRT中直接点击要登录的服务器,以下则表示登录成功:
default
   至此,实例已经所有配置完成,并成功链接。

安装Nginx

由于使用的是ubuntu,则能够直接使用命令进行安装:sudo apt-get install nginx
安装完成后,启动nginx,执行命令:sudo service nginx start
检测nginx在服务器是否安装成功,执行命令:curl http://localhost
若是出现:以下图则表示安装成功。
nginx

参考:www.jianshu.com/p/a43c3e0f0…

访问

   直接在PC浏览器地址栏输入弹性IP地址,若是出现下图则表示nginx安装成,而且服务器实例已经可用,后续就能够在服务器部署相关程序。
nginx

其余

  • 删除实例:在实例列表要删除的实例上右键-实例状态-终止便可,终止即表明删除实例,可是不会立刻删除,通常十分钟左右会自动销毁。
    default

  • 设置服务器root密码:

    • 使用命令:sudo passwd root
    • 会提示须要输入两次密码,输入便可
  • 设置服务器用户密码:

    设置完密码后,后续登录能够直接使用终端或者其余SSH客户等登陆,使用弹性IP地址、用户名、密码便可
    复制代码
    • 切换到root用户,使用命令passwd 你的用户名
    • 输入两次密码便可

总结

总的来讲,配置的流程相对比较繁琐,尤为是配置AWS CLI里面内容比较多,官方文档给的也比较多,若是疑问,请联系bo.wang1016@outlook.com

参考

AWS Command Line Interface介绍:docs.aws.amazon.com/zh_cn/cli/l…
Amazon EC2 实例介绍:docs.aws.amazon.com/zh_cn/AWSEC…
AWS EC2搭建web服务器:www.jianshu.com/p/a43c3e0f0…

相关文章
相关标签/搜索