Shrikant Lavhate 发布的文章

利用这 8 个命令可以学习 Docker 容器的基本管理方式。这是一个为 Docker 初学者准备的,带有示范命令输出的指南。

Docker 容器管理命令

在这篇文章中,我们将带你学习 8 个基本的 Docker 容器命令,它们操控着 Docker 容器的基本活动,例如 运行 run 列举 list 停止 stop 、 查看 历史纪录 logs 删除 delete 等等。如果你对 Docker 的概念很陌生,推荐你看看我们的 介绍指南,来了解 Docker 的基本内容以及 如何 在 Linux 上安装 Docker。 现在让我们赶快进入要了解的命令:

如何运行 Docker 容器?

众所周知,Docker 容器只是一个运行于 宿主操作系统 host OS 上的应用进程,所以你需要一个镜像来运行它。Docker 镜像以进程的方式运行时就叫做 Docker 容器。你可以加载本地 Docker 镜像,也可以从 Docker Hub 上下载。Docker Hub 是一个提供公有和私有镜像来进行 拉取 pull 操作的集中仓库。官方的 Docker Hub 位于 hub.docker.com。 当你指示 Docker 引擎运行容器时,它会首先搜索本地镜像,如果没有找到,它会从 Docker Hub 上拉取相应的镜像。

让我们运行一个 Apache web 服务器的 Docker 镜像,比如 httpd 进程。你需要运行 docker container run 命令。旧的命令为 docker run, 但后来 Docker 添加了子命令部分,所以新版本支持下列命令:

root@kerneltalks # docker container run -d -p 80:80 httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
3d77ce4481b1: Pull complete
73674f4d9403: Pull complete
d266646f40bd: Pull complete
ce7b0dda0c9f: Pull complete
01729050d692: Pull complete
014246127c67: Pull complete
7cd2e04cf570: Pull complete
Digest: sha256:f4610c3a1a7da35072870625733fd0384515f7e912c6223d4a48c6eb749a8617
Status: Downloaded newer image for httpd:latest
c46f2e9e4690f5c28ee7ad508559ceee0160ac3e2b1688a61561ce9f7d99d682

Docker 的 run 命令将镜像名作为强制参数,另外还有很多可选参数。常用的参数有:

  • -d:从当前 shell 脱离容器
  • -p X:Y:绑定容器的端口 Y 到宿主机的端口 X
  • --name:命名你的容器。如果未指定,它将被赋予随机生成的名字
  • -e:当启动容器时传递环境编辑及其值

通过以上输出你可以看到,我们将 httpd 作为镜像名来运行容器。接着,本地镜像没有找到,Docker 引擎从 Docker Hub 拉取了它。注意,它下载了镜像 httpd:latest, 其中 : 后面跟着版本号。如果你需要运行特定版本的容器,你可以在镜像名后面注明版本名。如果不提供版本名,Docker 引擎会自动拉取最新的版本。

输出的最后一行显示了你新运行的 httpd 容器的唯一 ID。

如何列出所有运行中的 Docker 容器?

现在,你的容器已经运行起来了,你可能想要确认这一点,或者你想要列出你的机器上运行的所有容器。你可以使用 docker container ls 命令。在旧的 Docker 版本中,对应的命令为 docker ps

root@kerneltalks # docker container ls
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                NAMES
c46f2e9e4690        httpd               "httpd-foreground"   11 minutes ago      Up 11 minutes       0.0.0.0:80->80/tcp   cranky_cori

列出的结果是按列显示的。每一列的值分别为:

  1. Container ID :一开始的几个字符对应你的容器的唯一 ID
  2. Image :你运行容器的镜像名
  3. Command :容器启动后运行的命令
  4. Created :创建时间
  5. Status :容器当前状态
  6. Ports :与宿主端口相连接的端口信息
  7. Names :容器名(如果你没有命名你的容器,那么会随机创建)

如何查看 Docker 容器的历史纪录?

在第一步我们使用了 -d 参数来将容器,在它一开始运行的时候,就从当前的 shell 中脱离出来。在这种情况下,我们不知道容器里面发生了什么。所以为了查看容器的历史纪录,Docker 提供了 logs 命令。它采用容器名称或 ID 作为参数。

root@kerneltalks # docker container logs cranky_cori
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Thu May 31 18:35:07.301158 2018] [mpm_event:notice] [pid 1:tid 139734285989760] AH00489: Apache/2.4.33 (Unix) configured -- resuming normal operations
[Thu May 31 18:35:07.305153 2018] [core:notice] [pid 1:tid 139734285989760] AH00094: Command line: 'httpd -D FOREGROUND'

这里我使用了容器名称作为参数。你可以看到在我们的 httpd 容器中与 Apache 相关的历史纪录。

如何确定 Docker 容器的进程?

容器是一个使用宿主资源来运行的进程。这样,你可以在宿主系统的进程表中定位容器的进程。让我们在宿主系统上确定容器进程。

Docker 使用著名的 top 命令作为子命令的名称,来查看容器产生的进程。它采用容器的名称或 ID 作为参数。在旧版本的 Docker 中,只可运行 docker top 命令。在新版本中,docker topdocker container top 命令都可以生效。

root@kerneltalks # docker container top  cranky_cori
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                15702               15690               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND
bin                 15729               15702               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND
bin                 15730               15702               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND
bin                 15731               15702               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND

root@kerneltalks # ps -ef |grep -i 15702
root     15702 15690  0 18:35 ?        00:00:00 httpd -DFOREGROUND
bin      15729 15702  0 18:35 ?        00:00:00 httpd -DFOREGROUND
bin      15730 15702  0 18:35 ?        00:00:00 httpd -DFOREGROUND
bin      15731 15702  0 18:35 ?        00:00:00 httpd -DFOREGROUND
root     15993 15957  0 18:59 pts/0    00:00:00 grep --color=auto -i 15702

在第一个输出中,列出了容器产生的进程的列表。它包含了所有细节,包括 用户号 uid 进程号 pid 父进程号 ppid 、开始时间、命令,等等。这里所有的进程号你都可以在宿主的进程表里搜索到。这就是我们在第二个命令里做得。这证明了容器确实是宿主系统中的进程。

如何停止 Docker 容器?

只需要 stop 命令!同样,它采用容器名称或 ID 作为参数。

root@kerneltalks # docker container stop cranky_cori
cranky_cori

如何列出停止的或不活动的 Docker 容器?

现在我们停止了我们的容器,这时如果我们使用 ls 命令,它将不会出现在列表中。

root@kerneltalks # docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

所以,在这种情况下,如果想要查看停止的或不活动的容器,你需要在 ls 命令里同时使用 -a 参数。

root@kerneltalks # docker container ls -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                     PORTS               NAMES
c46f2e9e4690        httpd               "httpd-foreground"   33 minutes ago      Exited (0) 2 minutes ago                       cranky_cori

有了 -a 参数,现在我们可以查看已停止的容器。注意这些容器的状态被标注为 已退出 exited 。既然容器只是一个进程,那么用“退出”比“停止”更合适!

如何(重新)启动 Docker 容器?

现在,我们来启动这个已停止的容器。这和运行一个容器有所区别。当你运行一个容器时,你将启动一个全新的容器。当你启动一个容器时,你将开始一个已经停止并保存了当时运行状态的容器。它将以停止时的状态重新开始运行。

root@kerneltalks #  docker container start c46f2e9e4690
c46f2e9e4690

root@kerneltalks # docker container ls -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                NAMES
c46f2e9e4690        httpd               "httpd-foreground"   35 minutes ago      Up 8 seconds        0.0.0.0:80->80/tcp   cranky_cori

如何移除 Docker 容器?

我们使用 rm 命令来移除容器。你不可以移除运行中的容器。移除之前需要先停止容器。你可以使用 -f 参数搭配 rm 命令来强制移除容器,但并不推荐这么做。

root@kerneltalks # docker container rm cranky_cori
cranky_cori
root@kerneltalks # docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

你看,一旦移除了容器,即使再使用 ls -a 命令也查看不到容器了。


via: https://kerneltalks.com/virtualization/8-basic-docker-container-management-commands/

作者:Shrikant Lavhate 选题:lujun9972 译者:lonaparte 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习如何在 Linux 终端使用命令行工具 speedtest 测试网速,或者仅用一条 python 命令立刻获得网速的测试结果。

在Linux终端测试网速

我们都会在连接到一个新的网络或者 WIFI 的时候去测试网络带宽。 为什么不用我们自己的服务器!下面将会教你如何在 Linux 终端测试网速。

我们多数都会使用 Ookla 的 Speedtest 来测试网速。 这在桌面上是很简单的操作,访问他们的网站点击“Go”浏览即可。它将使用最近的服务器来扫描你的本地主机来测试网速。 如果你使用的是移动设备,他们有对应的移动端 APP。但如果你使用的是只有命令行终端,界面的则会有些不同。下面让我们一起看看如何在Linux的终端来测试网速。

如果你只是想偶尔的做一次网速测试而不想去下载测试工具,那么请往下看如何使用命令完成测试。

第一步:下载网速测试命令行工具。

首先,你需要从 GitHub 上下载 speedtest 命令行工具。现在,它也被包含在许多其它的 Linux 仓库中,如果已经在你的库中,你可以直接在你的 Linux 发行版上进行安装

让我们继续下载和安装过程,安装的 git 包取决于你的 Linux 发行版。然后按照下面的方法来克隆 Github speedtest 存储库

[root@kerneltalks ~]# git clone https://github.com/sivel/speedtest-cli.git
Cloning into 'speedtest-cli'...
remote: Counting objects: 913, done.
remote: Total 913 (delta 0), reused 0 (delta 0), pack-reused 913
Receiving objects: 100% (913/913), 251.31 KiB | 143.00 KiB/s, done.
Resolving deltas: 100% (518/518), done.

它将会被克隆到你当前的工作目录,新的名为 speedtest-cli 的目录将会被创建,你将在新的目录下看到如下的文件。

[root@kerneltalks ~]# cd speedtest-cli
[root@kerneltalks speedtest-cli]# ll
total 96
-rw-r--r--. 1 root root  1671 Oct  7 16:55 CONTRIBUTING.md
-rw-r--r--. 1 root root 11358 Oct  7 16:55 LICENSE
-rw-r--r--. 1 root root    35 Oct  7 16:55 MANIFEST.in
-rw-r--r--. 1 root root  5215 Oct  7 16:55 README.rst
-rw-r--r--. 1 root root    20 Oct  7 16:55 setup.cfg
-rw-r--r--. 1 root root  3196 Oct  7 16:55 setup.py
-rw-r--r--. 1 root root  2385 Oct  7 16:55 speedtest-cli.1
-rw-r--r--. 1 root root  1200 Oct  7 16:55 speedtest_cli.py
-rwxr-xr-x. 1 root root 47228 Oct  7 16:55 speedtest.py
-rw-r--r--. 1 root root   333 Oct  7 16:55 tox.ini

名为 speedtest.py 的 Python 脚本文件就是用来测试网速的。

你可以将这个脚本链接到 /usr/bin 下,以便这台机器上的所有用户都能使用。或者你可以为这个脚本创建一个命令别名,这样就能让所有用户很容易使用它。

运行 Python 脚本

现在,直接运行这个脚本,不需要添加任何参数,它将会搜寻最近的服务器来测试你的网速。

[root@kerneltalks speedtest-cli]# python speedtest.py
Retrieving speedtest.net configuration...
Testing from Amazon (35.154.184.126)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Spectra (Mumbai) [1.15 km]: 8.174 ms
Testing download speed................................................................................
Download: 548.13 Mbit/s
Testing upload speed................................................................................................
Upload: 323.95 Mbit/s

Oh! 不要被这个网速惊讶道。我在 AWE EX2 的服务器上。那是亚马逊数据中心的网速!

这个脚本可以添加有不同的选项。

下面的几个选项对这个脚本可能会很有用处:

要搜寻你附近的网路测试服务器,使用 --listgrep 加上地名来列出所有附近的服务器。

[root@kerneltalks speedtest-cli]#  python speedtest.py --list | grep -i mumbai
 2827) Bharti Airtel Ltd (Mumbai, India) [1.15 km]
 8978) Spectra (Mumbai, India) [1.15 km]
 4310) Hathway Cable and Datacom Ltd (Mumbai, India) [1.15 km]
 3315) Joister Broadband (Mumbai, India) [1.15 km]
 1718) Vodafone India (Mumbai, India) [1.15 km]
 6454) YOU Broadband India Pvt Ltd. (Mumbai, India) [1.15 km]
 9764) Railtel Corporation of india Ltd (Mumbai, India) [1.15 km]
 9584) Sheng Li Telecom (Mumbai, India) [1.15 km]
 7605) Idea Cellular Ltd. (Mumbai, India) [1.15 km]
 8122) Sify Technologies Ltd (Mumbai, India) [1.15 km]
 9049) I-ON (Mumbai, India) [1.15 km]
 6403) YOU Broadband India Pvt Ltd., Mumbai (Mumbai, India) [1.15 km]

然后你就能从搜寻结果中看到,第一列是服务器识别号,紧接着是公司的名称和所在地,最后是离你的距离。

如果要使用指定的服务器来测试网速,后面跟上 --server 加上服务器的识别号。

[root@kerneltalks speedtest-cli]# python speedtest.py --server 2827
Retrieving speedtest.net configuration...
Testing from Amazon (35.154.184.126)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Bharti Airtel Ltd (Mumbai) [1.15 km]: 13.234 ms
Testing download speed................................................................................
Download: 93.47 Mbit/s
Testing upload speed................................................................................................
Upload: 69.25 Mbit/s

如果想得到你的测试结果的分享链接,使用 --share,你将会得到测试结果的链接。

[root@kerneltalks speedtest-cli]# python speedtest.py --share
Retrieving speedtest.net configuration...
Testing from Amazon (35.154.184.126)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Spectra (Mumbai) [1.15 km]: 7.471 ms
Testing download speed................................................................................
Download: 621.00 Mbit/s
Testing upload speed................................................................................................
Upload: 367.37 Mbit/s
Share results: http://www.speedtest.net/result/6687428141.png

输出中的最后一行就是你的测试结果的链接。下载下来的图片内容如下 :

这就是全部的过程!如果你不想了解这些技术细节,你也可以使用如下的一行命令迅速测出你的网速。

要想在终端使用一条命令测试网速。

我们将使用 curl 工具来在线抓取上面使用的 Python 脚本然后直接用 Python 执行脚本。

[root@kerneltalks ~]# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

上面的脚本将会运行脚本输出结果到屏幕上。

[root@kerneltalks speedtest-cli]# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from Amazon (35.154.184.126)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Spectra (Mumbai) [1.15 km]: 12.599 ms
Testing download speed................................................................................
Download: 670.88 Mbit/s
Testing upload speed................................................................................................
Upload: 355.84 Mbit/s

这是在 RHEL 7 上执行的结果,在 Ubuntu、Debian、Fedora 或者 CentOS 上一样可以执行。


via: https://kerneltalks.com/tips-tricks/how-to-test-internet-speed-in-linux-terminal/

作者:Shrikant Lavhate 译者:FelixYFZ 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习 Linux 中的 大内存页 hugepage 。理解什么是“大内存页”,如何进行配置,如何查看当前状态以及如何禁用它。

Huge Pages in Linux

本文中我们会详细介绍 大内存页 huge page ,让你能够回答:Linux 中的“大内存页”是什么?在 RHEL6、RHEL7、Ubuntu 等 Linux 中,如何启用/禁用“大内存页”?如何查看“大内存页”的当前值?

首先让我们从“大内存页”的基础知识开始讲起。

Linux 中的“大内存页”是个什么玩意?

“大内存页”有助于 Linux 系统进行虚拟内存管理。顾名思义,除了标准的 4KB 大小的页面外,它们还能帮助管理内存中的巨大的页面。使用“大内存页”,你最大可以定义 1GB 的页面大小。

在系统启动期间,你能用“大内存页”为应用程序预留一部分内存。这部分内存,即被“大内存页”占用的这些存储器永远不会被交换出内存。它会一直保留其中,除非你修改了配置。这会极大地提高像 Oracle 数据库这样的需要海量内存的应用程序的性能。

为什么使用“大内存页”?

在虚拟内存管理中,内核维护一个将虚拟内存地址映射到物理地址的表,对于每个页面操作,内核都需要加载相关的映射。如果你的内存页很小,那么你需要加载的页就会很多,导致内核会加载更多的映射表。而这会降低性能。

使用“大内存页”,意味着所需要的页变少了。从而大大减少由内核加载的映射表的数量。这提高了内核级别的性能最终有利于应用程序的性能。

简而言之,通过启用“大内存页”,系统具只需要处理较少的页面映射表,从而减少访问/维护它们的开销!

如何配置“大内存页”?

运行下面命令来查看当前“大内存页”的详细内容。

root@kerneltalks # grep Huge /proc/meminfo
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

从上面输出可以看到,每个页的大小为 2MB(Hugepagesize),并且系统中目前有 0 个“大内存页”(HugePages_Total)。这里“大内存页”的大小可以从 2MB 增加到 1GB

运行下面的脚本可以知道系统当前需要多少个巨大页。该脚本取之于 Oracle。

#!/bin/bash
#
# hugepages_settings.sh
#
# Linux bash script to compute values for the
# recommended HugePages/HugeTLB configuration
#
# Note: This script does calculation for all shared memory
# segments available when the script is run, no matter it
# is an Oracle RDBMS shared memory segment or not.
# Check for the kernel version
KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`
# Find out the HugePage size
HPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print $2'}`
# Start from 1 pages to be on the safe side and guarantee 1 free HugePage
NUM_PG=1
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | awk {'print $5'} | grep "[0-9][0-9]*"`
do
   MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`
   if [ $MIN_PG -gt 0 ]; then
      NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`
   fi
done
# Finish with results
case $KERN in
   '2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;
          echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;;
   '2.6' | '3.8' | '3.10' | '4.1' ) echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
    *) echo "Unrecognized kernel version $KERN. Exiting." ;;
esac
# End

将它以 hugepages_settings.sh 为名保存到 /tmp 中,然后运行之:

root@kerneltalks # sh /tmp/hugepages_settings.sh
Recommended setting: vm.nr_hugepages = 124

你的输出类似如上结果,只是数字会有一些出入。

这意味着,你系统需要 124 个每个 2MB 的“大内存页”!若你设置页面大小为 4MB,则结果就变成了 62。你明白了吧?

配置内核中的“大内存页”

本文最后一部分内容是配置上面提到的 内核参数 ,然后重新加载。将下面内容添加到 /etc/sysctl.conf 中,然后输入 sysctl -p 命令重新加载配置。

vm.nr_hugepages=126

注意我们这里多加了两个额外的页,因为我们希望在实际需要的页面数量之外多一些额外的空闲页。

现在,内核已经配置好了,但是要让应用能够使用这些“大内存页”还需要提高内存的使用阀值。新的内存阀值应该为 126 个页 x 每个页 2 MB = 252 MB,也就是 258048 KB。

你需要编辑 /etc/security/limits.conf 中的如下配置:

soft memlock 258048
hard memlock 258048

某些情况下,这些设置是在指定应用的文件中配置的,比如 Oracle DB 就是在 /etc/security/limits.d/99-grid-oracle-limits.conf 中配置的。

这就完成了!你可能还需要重启应用来让应用来使用这些新的巨大页。

(LCTT 译注:此外原文有误,“透明大内存页”和“大内存页”不同,而且,在 Redhat 系统中,“大内存页” 不是默认启用的,而“透明大内存页”是启用的。因此这个段落删除了。)


via: https://kerneltalks.com/services/what-is-huge-pages-in-linux/

作者:Shrikant Lavhate 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

认识 71 个 AWS 云服务的术语 ! 通过了解 AWS 世界中使用的术语开始你的 AWS 云服务使用生涯 !

AWS,即 亚马逊 Web 服务 Amazon Web Services ,是一个提供了一系列按使用计费的 web 服务的云平台。 它是迄今为止最为著名的云平台之一。由于其灵活性、有效性、弹性、可测量性和无须维护,所以有一些企业正逐步把他们的业务迁移到云端。 由于许多公司目前在使用这些服务,所以对于系统管理员和运维人员来说应该了解一下 AWS。

这篇文章旨在列出这些 AWS 提供的服务并且解释在 AWS 中出现的术语。

截止到目前为止(2017 年 3 月),AWS 提供了分为 17 组的共计 71 种服务:

计算型服务

这是一个提供了虚拟服务器配置功能的服务,即所谓的云计算。它提供了包括以下这一系列的服务。

  1. EC2:EC2 代表弹性计算云。这种服务提供了可根据个人需求扩展的 虚拟机。
  2. EC2 容器服务:其高性能,高可扩展性使其可在 EC2 集群环境中运行服务。
  3. Lightsail:该服务使用户非常容易地启动和管理虚拟服务器(EC2)。
  4. Elastic Beanstalk:该服务能够自动管理你的应用程序的容量配置、负载平衡、扩展以及健康监控从而减少你的管理压力。
  5. Lambda:它允许你只在你需要的时候运行代码而不用去管理服务器。
  6. Batch:它使用户能够以自定义的管理方式运行计算工作负载(批处理)。

存储型服务

它是一种云存储服务,即由 Amazon 提供的云存储设施。 该组服务包括:

  1. S3:S3 代表简单存储服务(3 个 S)。 它给你提供了在线存储服务,你可随时从任何地方存储/检索任何数据。
  2. EFS:EFS 代表弹性文件系统。 它是一个可以和 EC2 服务器一起使用的在线存储服务。
  3. Glacier:它是一种低成本/低性能数据存储解决方案,主要针对存档或长期备份。
  4. Storage Gateway:这种服务的接口会将你的内部应用程序(托管在 AWS 之外)与 AWS 存储连接。

数据库

AWS 还提供在其基础设施上托管数据库,以便客户可以利用亚马逊最先进的技术来获得更快/高效/安全的数据处理。 该组包括:

  1. RDS:RDS 代表关系数据库服务。 用于在云上设置,操作和管理关系数据库。
  2. DynamoDB:其 NoSQL 数据库提供了快速处理和高可扩展性。
  3. ElastiCache:这是一种为你的 Web 应用程序管理内存缓存以便更快运行它们的方案 !
  4. Redshift:它是一个巨大的(PB 级)的完全可升级的云端数据仓库服务。

网络 & 内容分发

由于 AWS 提供云端的 EC2 服务器,因此网络相关内容也将在出现在这里。 内容分发用于向位于最近位置的用户提供文件。 现如今有许多非常有名的加速网站。

  1. VPC:VPC 代表虚拟私有云。 它是你自己的虚拟网络,是你的专用 AWS 帐户。
  2. CloudFront:这是 AWS 的内容分发网络(CDN)服务。
  3. Direct Connect:它是将数据中心/场所与 AWS 连接起来的网络方式,以提高吞吐量,降低网络成本,并避免由于基于互联网的连接而导致的连接问题。
  4. Route 53:它是一个云端的域名系统的 DNS Web 服务。

迁移

它提供了一系列服务来帮助你实现本地服务到 AWS 的迁移工作。 这包括 :

  1. Application Discovery Service:专门用于分析您的服务器、网络、应用程序以帮助/加速迁移的服务。
  2. DMS:DMS 指的是数据库迁移服务。 它用于将数据从本地数据库迁移到 EC2 上托管的 RDS 或 DB。
  3. Server Migration:也称为 SMS(服务器迁移服务)是一种无代理服务,将您的工作负载从本地移动到 AWS。
  4. Snowball: 当你想要使用物理存储设备(而不是基于互联网/基于网络的传输)将大量数据传入/迁出 AWS 时,你应该使用它。

开发者工具

顾名思义, 这是一系列帮助开发者简化在云端编码的服务。

  1. CodeCommit:它是一个安全的、可扩展的、可管理的源代码管理服务,用于托管代码仓库。
  2. CodeBuild:这是一个云端的代码生成器。主要用于执行、测试代码和构建部署软件包。
  3. CodeDeploy:这是一个可在 AWS 服务器或本地进行自动化应用程序部署的部署服务。
  4. CodePipeline:这个部署服务可以使编码人员可以在发布之前将其应用程序可视化。
  5. X-Ray:它可以使用事件调用分析应用程序。

管理工具

这是一组可帮助你管理 AWS 上的 Web 服务的服务。

  1. CloudWatch:监控你的 AWS 资源或应用程序的监控服务。
  2. CloudFormation:基础设施即代码!以集体有序的方式管理 AWS 架构的方式。
  3. CloudTrail:AWS 帐户的审计和合规工具。
  4. Config : AWS 的资源清单、配置历史记录和配置更改通知,以实现安全性和治理。
  5. OpsWorks:它可以自动化地配置,部署 EC2 或内部部署计算。
  6. Service Catalog:创建和管理被批准在你/公司帐户中使用的 IT 服务目录。
  7. Trusted Advisor:它的 AWS AI 可以通过审查你的 AWS 基础设施使你的 AWS 基础设施更好,更省钱。
  8. Managed Service:提供持续的基础设施管理。

安全性、身份和合规

这是一组很重要的 AWS 服务以确保你的 AWS 空间的安全性。

  1. IAM:IAM 即身份和访问管理,控制用户访问你的 AWS 资源和服务。
  2. Inspector:自动安全评估可帮助你在 AWS 上的应用安全和合规。
  3. Certificate Manager:为 AWS 应用程序提供,管理和部署 SSL / TLS 证书。
  4. Directory Service:相当于 AWS 的 Microsoft Active Directory。
  5. WAF & Shield:WAF 即 Web 应用防火墙。 监控和控制对 CloudFront 或负载均衡器上的内容的访问。
  6. Compliance Reports:AWS 基础设施空间的合规报告,以确保您的应用程序符合您的策略。

数据分析

AWS 空间的数据分析服务,以帮助您查看、计划和对帐户中的事件采取行动。

  1. Athena:它是一个基于 SQL 查询的服务,用于分析 S3 存储的数据。
  2. EMR:EMR 的全写是 Elastic Map Reduce。 是一个主要用于大数据处理和分析的服务。
  3. CloudSearch:AWS 在应用和服务中的搜索功能。
  4. Elasticsearch Service:它可以创建一个域并在 AWS Cloud 中部署、操作和扩展 Elasticsearch 集群。
  5. Kinesis:这种服务可以实现实时的大量流数据处理。
  6. Data Pipeline:它可以帮助我们在不同的 AWS 服务之间实现数据迁移。
  7. QuickSight:收集、分析和呈现 AWS 的业务数据。

人工智能

AWS 的 AI!

  1. Lex:它可以帮助我们在一些使用语音和文本的应用中构建会话界面。
  2. Polly:这是一个提供文字到语音转换的服务。
  3. Rekognition:使您能够将图像分析添加到应用程序。
  4. Machine Learning:它具有学习数据中的模式的算法。

物联网

这个服务保证了 AWS 在不同设备上的高可用性。

  1. AWS IoT:它使联网硬件设备与 AWS 的应用程序能够交互。

游戏开发

顾名思义,这个服务旨在游戏开发。

  1. Amazon GameLift:该服务旨在部署、管理用于会话的多人游戏的专用游戏服务器。

移动服务

这是一组主要针对手持设备的服务。

  1. Mobile Hub:帮助您创建移动应用的后台功能并将其集成到移动应用。
  2. Cognito:在连接了互联网设备上控制移动用户的身份验证和 AWS 的访问。
  3. Device Farm:移动应用测试服务使你可以在 Android 上托管的真实手机上跨 Android、iOS 测试应用。
  4. Mobile Analytics:在 AWS 上测量、跟踪和分析移动应用数据。
  5. Pinpoint:针对性的推送通知和移动互动。

应用服务

这是一组可以和你在 AWS 上的应用一起使用的服务。

  1. Step Functions:定义和使用应用程序中的各种功能。
  2. SWF:SWF 代表简单的工作流服务。其云工作流程管理可帮助开发人员在应用程序生命周期的不同阶段进行协调和贡献。
  3. API Gateway:帮助开发人员创建、管理和托管 API。
  4. Elastic Transcoder:帮助开发人员将媒体文件转换为在各种设备上可以播放的格式。

消息

AWS 中的通知和消息服务。

  1. SQS:SQS 表示简单队列服务。完全管理的消息队列服务,用于在 AWS 中的服务和应用之间进行通信。
  2. SNS:SNS 代表简单通知服务。 为 AWS 用户推送通知服务,提醒他们有关其在 AWS 空间中的服务。
  3. SES:SES 代表简单电子邮件服务。 这是 AWS 为自己的客户提供高性价比的电子邮件服务。

企业生产率

一组帮你提高业务生产率的服务。

  1. WorkDocs:协同文件共享、存储和编辑服务。
  2. WorkMail:安全的商务邮件、日程服务。
  3. Amazon Chime:在线的企业会议!

桌面和应用程序流式传输

实现桌面应用程序通过云端进行流传输。

  1. WorkSpaces:完全管理且安全的云计算服务。
  2. AppStream 2.0:来自云端的流式桌面应用。

(题图:rackaid.com)


via: http://kerneltalks.com/virtualization/aws-cloud-terminology/

作者:Shrikant Lavhate 译者:chenxinlong 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这是一篇用屏幕截图解释如何在 AWS EC2 Linux 服务器上打开端口的教程。它能帮助你管理 EC2 服务器上特定端口的服务。

AWS(即 Amazon Web Services)不是 IT 世界中的新术语了。它是亚马逊提供的云服务平台。它的免费帐户能为你提供一年的有限免费服务。这是尝试新技术而不用花费金钱的最好的方式之一。

AWS 提供服务器计算作为他们的服务之一,他们称之为 EC(弹性计算)。使用它可以构建我们的 Linux 服务器。我们已经看到了如何在 AWS 上设置免费的 Linux 服务器了。

默认情况下,所有基于 EC2 的 Linux 服务器都只打开 22 端口,即 SSH 服务端口(允许所有 IP 的入站连接)。因此,如果你托管了任何特定端口的服务,则要为你的服务器在 AWS 防火墙上打开相应端口。

同样它的 1 到 65535 的端口是打开的(对于所有出站流量)。如果你想改变这个,你可以使用下面的方法编辑出站规则。

在 AWS 上为你的服务器设置防火墙规则很容易。你能够在几秒钟内为你的服务器打开端口。我将用截图指导你如何打开 EC2 服务器的端口。

步骤 1 :

登录 AWS 帐户并进入 EC2 管理控制台。进入 “网络及安全” Network & Security 菜单下的 安全组 Security Groups ,如下高亮显示:

AWS EC2 management console

AWS EC2 管理控制台

步骤 2 :

安全组 Security Groups 中选择你的 EC2 服务器,并在 行动 Actions 菜单下选择 编辑入站规则 Edit inbound rules

AWS inbound rules

AWS 入站规则菜单

步骤 3:

现在你会看到入站规则窗口。你可以在此处添加/编辑/删除入站规则。这有几个如 http、nfs 等列在下拉菜单中,它们可以为你自动填充端口。如果你有自定义服务和端口,你也可以定义它。

AWS add inbound rule

AWS 添加入站规则

比如,如果你想要打开 80 端口,你需要选择:

  • 类型:http
  • 协议:TCP
  • 端口范围:80
  • 源:任何来源:打开 80 端口接受来自“任何IP(0.0.0.0/0)”的请求;我的 IP:那么它会自动填充你当前的公共互联网 IP

步骤 4:

就是这样了。保存完毕后,你的服务器入站 80 端口将会打开!你可以通过 telnet 到 EC2 服务器公共域名的 80 端口来检验(可以在 EC2 服务器详细信息中找到)。

你也可以在 ping.eu 等网站上检验。


同样的方式可以编辑出站规则,这些更改都是即时生效的。


via: http://kerneltalks.com/virtualization/how-to-open-port-on-aws-ec2-linux-server/

作者:Shrikant Lavhate 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出