近来有需要在aws ec2上运行一个Java开发的应用,所以这里记录一下如何开通ec2云服务器、远程ssh运维、安装java虚拟机等。
一、开通云服务器
亚马逊aws的ec2服务器有优惠计划,指定的配置1年内是免费使用的。在官网注册需要一张visa或万事达信用卡即可。
二、远程ssh连接运维
去aws控制台上配置密钥对,然后按照连接向导设置一个访问策略就可以了。
1、mac自带的ssh或者windows上的xshell
这两种工具支持rsa密钥对,以mac ssh为例:
ssh -i "/User/hahahah/密钥1名称.pem" ec2-user@ec2-ip-address.ap-northeast-1.compute.amazonaws.com
这里的密钥1.pem里的密钥对是用的rsa算法。
2、Tabby
笔者的mac上用的Tabby这个ssh工具,因为界面比较好看。但是一开始用pem文件导入密钥对,然后发现连不上。
网上搜索一番,发现看来是个bug,https://github.com/Eugeny/tabby/discussions/8399 ,tabby对rsa算法支持与aws linux2023的不一样。
需要换一种算法ed25519, 需要在aws上新添加一个密钥对。https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/replacing-key-pair.html
在aws控制台上创建好了之后,需要获得公钥2:
aws ec2 describe-key-pairs --key-pair-ids 密钥对2的ID --include-public-key
用aws控制台的cloudshell执行上面的命令,得到:
{
"KeyPairs": [
{
"KeyPairId": "密钥对2的ID",
"KeyFingerprint": "xxxxxxxxxxxxxx",
"KeyName": "密钥对2的名称",
"KeyType": "ed25519",
"Tags": [],
"PublicKey": "ssh-ed25519 xxxxxxxxxxxxx 密钥对2的名称",
"CreateTime": "2023-09-23T05:47:59.943000+00:00"
}
]
}
现在私钥在本地pem文件里,公钥在aws cloudshell上也查到了,但是公钥还只是aws给生成了,还没有配置到主机上,我们现在现在需要把公钥追加到ec2主机上:
vim /home/ec2-user/.ssh/authorized_keys
, 然后把刚才查到的公钥2追加到已有公钥1的下边:
ssh-rsa xxxxxxxxxxxxxxxxxxxxx 密钥对1名称
ssh-ed25519 xxxxxxxxxxxxxxxxxxx 密钥对2名称
三、安装Java
aws linux 2023安装Java,首先安装最新的可用更新(如果有),并重建 DFN 包索引缓存:
$ sudo dnf update
Last metadata expiration check: 1 day, 1:11:18 ago on Fri Sep 22 02:55:47 2023.
Dependencies resolved.
Nothing to do.
Complete!
安装JDK:
笔者ec2用的os上Amazon Linux 2023,与 Amazon Linux 2 不同,AWS 的 Corretto 是 OpenJDK 的生产就绪发行版,可通过 Amazon Linux 2023 的默认系统存储库获取。(参考:https://linux.how2shout.com/how-to-install-java-on-amazon-linux-2023/
)
$ sudo dnf install java-1.8.0-amazon-corretto-devel
$ java -version
openjdk version "1.8.0_382"
OpenJDK Runtime Environment Corretto-8.382.05.1 (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM Corretto-8.382.05.1 (build 25.382-b05, mixed mode)
安装完毕。