标签: aws

弹性 IP 地址与静态 IP 地址有何不同?

更多 Amazon Web Services EC2 问题,希望不会太离题。我有一个普通的 Ubuntu 实例,并关闭了它。重新启动时无法通过 ssh 连接到 FQDN,因为外部 IP 地址已更改。

“静态”甚至静态 IP 地址是否需要额外付费?我会选择半永久。Elastic 听起来是对的,用市场营销的话说。

或者,这是一种安全措施吗?我确实选择了一个外部 IP 地址,但它一个免费帐户。该文件说:

弹性 IP 地址是专为动态云计算设计的静态 IPv4 地址。弹性 IP 地址与您的 AWS 账户相关联。使用弹性 IP 地址,您可以通过快速将地址重新映射到您账户中的另一个实例来掩盖实例或软件的故障。

弹性 IP 地址是公共 IPv4 地址,可从 Internet 访问。

外部IP地址,我使用SSH的一个,从我所看到的运行时,不同ifconfig所以他们正在使用某种形式的NAT..as解释在这里

重要的

启动后,您无法手动取消公有 IP 地址与实例的关联。相反,它在某些情况下会自动释放,之后您将无法重复使用它。

即使我选择了一个外部 IP 地址,重启似乎 (?) 是将 IP 地址释放回池的情况。请澄清这种理解。

ip hostname hosts amazon-ec2 aws

11
推荐指数
1
解决办法
2821
查看次数

检查文件是否存在于 S3 存储桶中

该目录/data/files/有数千个文件,例如:

1test
2test
3test

[...]

60000test
60001test
Run Code Online (Sandbox Code Playgroud)

我还将它们发送到 S3 存储桶 (AWS),使用AWS CLI. 但是,有时 S3 存储桶可能处于脱机状态,因此会跳过该文件。

如何检查存在的文件/data/files/是否也在 S3 存储桶中?如果没有将丢失的文件复制到 S3?

我更愿意使用 BASH 来做到这一点。此外,如果我需要为另一个更改 AWS CLI,也可以。

bash files amazon-s3 amazon aws

9
推荐指数
2
解决办法
4万
查看次数

我们如何在aws中生成会话令牌

我有 aws 访问密钥和秘密密钥。我希望在 aws 凭证文件 (~/.aws/credentials) 中更新会话令牌,我将如何获取它?

我希望它们在命令行中生成。

command-line amazon-ec2 amazon-s3 aws amazon-linux

9
推荐指数
1
解决办法
3万
查看次数

Xvfb -screen --> 无法建立任何侦听套接字 - 确保 X 服务器尚未运行

我想知道,为什么这不起作用?

$ screen
$ Xvfb -screen :1 1024x768x16 &
[1] 17540
$ _XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE) 
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 
Run Code Online (Sandbox Code Playgroud)

然后在Ctrl+C或者+D我运行这个之后:

$ ps -C Xorg
  PID TTY          TIME CMD
Run Code Online (Sandbox Code Playgroud)

而且,确实,X 服务器没有运行。那为什么会出错呢?

$ uname -a
Linux ip-123456-generic #102-Ubuntu SMP Tue Aug 11 14:29:36 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

更新:

在此处输入图片说明

ubuntu x-server aws

8
推荐指数
2
解决办法
4万
查看次数

rsync 与不同的用户

我正在 AWS 上使用两个 ubuntu 实例(我使用 pem 密钥访问它们)。

我为这两个实例设置了 rsync,如果我使用默认用户 ubuntu@ipaddress,它就可以工作。但是,如果我尝试与其他用户一起使用 rsync(sudo su - jenkins例如,我正在输入,甚至sudo在 rsync 命令之前输入),则会出现以下错误。

Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.0]
Run Code Online (Sandbox Code Playgroud)

我采取的步骤:

我尝试在登录时创建一个 ssh 密钥(使用 ssh-keygen),jenkins并将其添加到authorized_keys文件中/home/ubuntu/.ssh/authorized_keys(我从中运行 rsync)甚至$JENKINS_HOME/.ssh/authorized_keys(我也尝试从那里运行 rsync)。

我什至尝试使用 pem 键来做同样的事情,但也没有用。

这就是我想要运行的

rsync -avuh --delete -e ssh jenkins@ipaddress:/var/lib/jenkins/* /var/lib/jenkins

这是密钥文件

rsync -avuh --delete -e 'ssh -i path/to/key.pem' jenkins@10.96.2.210:/var/lib/jenkins/* /var/lib/jenkins

PS:我不想与 ubuntu …

ssh ubuntu rsync aws

8
推荐指数
3
解决办法
2万
查看次数

是否可以在命令行(CLI)中仅使用 aws 访问密钥和密钥获取 aws 帐户 ID

是否可以在命令行(CLI)中仅使用 aws 访问密钥和密钥获取 aws 帐户 ID

我有访问密钥和秘密密钥。是否可以使用命令行中的帐户 ID 获取帐户 ID。

command-line amazon-s3 aws

8
推荐指数
1
解决办法
3146
查看次数

使用 AWS-cli 从外部获取 EC2 实例的公共 IP 地址

我正在尝试利用 Amazon 的弹性并使用AWS cli. 但如您所知,每次您使系统脱机并使其恢复生机时,它都会附带一个新的 IP 地址。我AWS-cli在位于其他地方的 Centos 6 服务器上安装了软件包。我已经研究这个好几天了,但找不到可以从我的 Centos 机器发出并在 Amazon EC2 上获取实例的 IP 地址的工作命令。EC2 实例已启动并正在运行。

我找到的最相关的信息是

aws ec2 describe-instances
Run Code Online (Sandbox Code Playgroud)

但是我从这个命令中得到的只是一个用法语法输出。我还发现(并很快丢失了)一个开关,--query后跟一组关键字来提取此信息。但是那个命令给了我一个回应,说--query不是一个公认的论点。我检查了亚马逊对此命令的 cli 参考,只有它似乎接受的参数是,--filter并且示例远没有帮助。

有谁知道如何做到这一点?

编辑更多关于我在周末发现的问题。在我尝试从实例获取公共 DNS 信息之前,我需要一种连接到该实例的方法。无论我做什么,我都无法获得有关我拥有的实例的信息:

$ ec2-describe-instances i-b78a096f
sanity-check: Your system clock is 50 seconds behind.
+----------------------------+---------------------------------------------+
|            Code            |                   Message                   |
+----------------------------+---------------------------------------------+
| InvalidInstanceID.NotFound | The instance ID 'i-b78a096f' does not exist |
+----------------------------+---------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我知道 myAWS_ACCESS_KEYAWS_SECRET_KEYvariables 已正确分配给它们正确的变量名称。实例 ID 已从 AWS …

command-line aws

7
推荐指数
1
解决办法
2万
查看次数

如何在 Amazon Linux 2 中永久设置环境变量

我已经尝试了许多方法来设置运行 Amazon Linux 2 的永久环境变量 EC2 实例,但没有一种方法在用户和登录会话之间是持久的。

什么特定的语法和过程将成功设置环境变量,以便所有用户和每个会话期间都可以使用变量的值?

到目前为止,我尝试过的方法包括在实例的 USERDATA 启动脚本期间分别在以下三个文件中分别设置值:

/etc/csh.cshrc
/etc/environment
/etc/profile
Run Code Online (Sandbox Code Playgroud)

我一次尝试一个文件,而不是同时尝试所有三个文件。

我也尝试过使用 Python 的,os.environ但也没有用。


用户建议

根据@NasirRiley 的建议,当我创建一个setVars.sh文件并将其放入/etc/profile.d实例的USERDATA启动序列时,它现在可以工作:

#!/bin/bash    
export SOME_VAR_NAME=some-var-value  
Run Code Online (Sandbox Code Playgroud)

rhel environment-variables amazon-ec2 aws amazon-linux

7
推荐指数
1
解决办法
1万
查看次数

这个命令行(/usr/bin/awk '{$1=$1};1')代替纯cat有什么好处

我正在阅读 AWSeic_harvest_hostkeys脚本,但不明白这一行:

key=$(/usr/bin/awk '{$1=$1};1' < "${file}")
Run Code Online (Sandbox Code Playgroud)

awk 有什么好处?不是key=$(/bin/cat "${file}")更好吗?

scripting bash awk cat aws

7
推荐指数
2
解决办法
2121
查看次数

为什么 NFS 客户端使用低编号端口?

我正在运行 CoreOS EC2 实例。我在此实例上运行一个侦听本地端口 950 的进程。通常,一切正常,但在最近重新启动 CoreOS 服务器后,该进程无法侦听端口 950,因为它已被另一个进程占用。

另一个进程似乎是用于挂载 AWS EFS 卷的 NFSv4 客户端。这是 netstat 告诉我的:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 10.30.102.250:950       10.30.102.170:2049      ESTABLISHED
Run Code Online (Sandbox Code Playgroud)

这是的相关部分/etc/mtab

fs-faa33256.efs.us-west-2.amazonaws.com:/ /efs nfs4 rw,relatime,vers=4.1,\
rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,\
clientaddr=10.30.102.250,local_lock=none,addr=10.30.102.170 0 0
Run Code Online (Sandbox Code Playgroud)

几个问题: 1. 为什么 CoreOS 服务器上的 NFS 客户端使用低编号端口与远程 NFSv4 服务器通信?2. 我可以告诉 NFS 客户端避免使用端口 950(或仅使用非特权端口)吗?

nfs aws coreos

6
推荐指数
1
解决办法
3694
查看次数