超极致撸一年免费的AWS云服务器

背景

拥有一台自己的服务器对于我这种程序员来说,是一件十分有安全感的事件。aws正好提供了1台1C1G,可以长达12个月的免费的服务器,而且到期后可以继续换个账号还能继续白嫖,对于勤(kou)俭(men)的我来说,简直是太开心了。我将分享我从注册到极致压榨服务器的过程!

前期准备

1、一个邮箱
注册用的,推荐用国内邮箱。
2、一个手机号
收验证码用的。
3、一张信用卡
aws这里支持Visa,Mastercard,美国运通,JCB等。信用卡的办理涉及到钱和勤(kou)俭(men)的问题,所以我思考查阅了很久,总结了下面几个问题:

  • 1、是否使用虚拟信用卡?
    有看过网上推荐的虚拟信用卡,我查了下虚拟信用卡大都是单币的,而且要自己去换美元还款,所以我放弃了。
  • 2、Visa or Mastercard or 美国运通 or JCB or 银联?
    美国运通对国人太小众,JCB主要是日元结算,银联信用卡容易被拒绝使用。Visa和Mastercard在欧美地区都很流行,其中Mastercard比visa卡的实时汇率友好一点,所以我选了Mastercard。
  • 3、怎么办理?
    很多人一直以为有Visa和Mastercard银行,他们来发卡。实际上Visa 和 Mastercard 不直接发行信用卡或借记卡,它们提供的是全球支付网络,帮助银行和其他金融机构发行带有 Visa 或 Mastercard 标志的卡片。你要做的就是找一家比如招商银行,中国银行等申请一张带有Visa 和 Mastercard的卡。
  • 4、单币卡还是双币卡?
    单币就是只能以单一货币结算,没法用人民币,而且申请周期比较长,可能7天。双币卡能人民币结算,而且在中国能用,还有一些优惠,我果断双币卡。
  • 5、是否设置限额?
  • 一定要设置每日限额,防止未知原因扣费
  • 6、哪家银行办理?
    我建议找常用卡行办理,这样转钱也方便。有一说一,中行的信用卡是YYDS。作者我由于一直使用招商银行app,体验不错,所以图方便,选了招商银行信用卡。大家办卡时可自行咨询银行看看哪张优惠高。

有需要可以通过这里点击办理~

作用卡注册

注册AWS

1、注册

登录 aws注册官网
在这里插入图片描述
填邮箱和AWS账号,点击验证,过完验证之后输入密码

2、填写个人信息

计划这里要选个人。

然后填写你的联系人信息,出于隐私考虑,地址城市并未完全写真实内容,是否完全写真实的看个人。

在这里插入图片描述

3、确认身份

在这里需要验证你的电话号码
在这里插入图片描述

4、完成注册

电话验证完之后,离注册完成只剩最后一步了,选择支持计划-选择默认的免费就可以了。
在这里插入图片描述
然后转到AWS管理控制台来申请免费云服务器
在这里插入图片描述

买主机啦!!

右上角选择你想要使用的云服务器的地区,然后左上角服务或都搜索栏中,找到EC2,点击。EC2 是 Amazon Elastic Compute Cloud 的缩写,它是 Amazon Web Services (AWS) 提供的云计算服务。
在这里插入图片描述

0、研读免费套餐

免费套餐: 第一年包括每月 Free Tier AMI 上的 750 小时 t2.micro(或者,在未推出 t2.micro 的区域中是 t3.micro)实例用量、每月 750 小时的公有 IPv4 地址用量、30GiB EBS 存储、200 万个输入和输出、1GB 快照,以及 100GB 互联网带宽。

首先每月750小时的实例用量,实际上每个月最多有744小时,所以只开一台实例的话,完全不用担心超过时限,
其次30GiB EBS 存储,30G的上限其实可以买多个卷,一般没有这种需求,只买单盘30G即可,
然后200 万个输入和输出,太够了,
然后1GB 快照,鸡肋,
最后是100GB 互联网带宽,普通网页大约消耗 1-2MB 的流量,100GB 大约可以浏览 50,000 - 100,000 个网页,日常都够用了。

1、系统选择

注意只有下方显示支持免费套餐的才会免费。所以很明显macOS是不免费的。这里我对除了macOS可用免费系统都选择试了一次并给出了我的建议

Amazon Linux

可用,但内存无法完全压榨,不够极致

WIN

建议别搞,免费的30GEBS,windows装完系统就要20多G了,离超额容量很危险。

Redhat/SUSE Linux/Debian

为什么将这三个列为一起呢?因为这三个系统,买完之后都进不了系统!!无论是用官方账号,还是网上找的账号,填入都是连接不了,原因未知,其实我是想要用Debian的,可惜了。

Ubuntu

最香系统,不仅能用,优化完后1G的内存能有720-740M左右能用,压榨内存比较极致了,我会在后面给出优化的脚本方案。

所以我选择Ubuntu。

2、购买实例

1、选择应用程序和操作系统映像

选择Ubuntu比较新的系统,然后选择X86架构,ARM架构没有免费的套餐。我这里选择的是Ubuntu 24.04
在这里插入图片描述

2、选择实例类型

选t2.micro,免费套餐
在这里插入图片描述

3、创建密钥对

然后选择密钥对,如果是第一次启动实例,是没有密钥对的,需要自己点击Create new key pair来创建。
密钥对名称自己随便填。

密钥对类型选择RSA加密,不选ED25519。我试过ED25519的key,对于旧版本的xshell,根本就不支持这种类型,兼容性还是RSA好点。

密钥文件格式,选择 pem 格式。

另外ubuntu22以上新版,在默认情况下,是不支持ssh-rsa算法的key的,需要在/etc/ssh/sshd_config加入PubkeyAcceptedKeyTypes +ssh-rsa,这一行。
在这里插入图片描述

4、网络设置

网络,子网都按默认的即可
主要是创建安全组,点击创建安全组,只勾选SSH流量。其它端口流量我们后期按需再配置。
在这里插入图片描述

5、配置存储

有资格使用免费套餐的客户最多可获得 30GB 的通用型 (SSD) 或磁存储空间

一般我们只买一台,直接选30G
在这里插入图片描述

6、 启动实例

所有的配置都选择好了,我们检查一下没问题,就点击启动实例

7、登录云服务器

点击连接,通过aws的控制台登录进服务器,点击连接。
在这里插入图片描述

接下来就是见证奇迹的时刻了,我们登录进了系统,终于拥有了自己的一台小云服务器了,太激动了!!!
在这里插入图片描述

8、优化系统

系统会自带很多东西,我经过一段时间的折腾后,总结出以下三个策略

1、关闭卸载非必要的程序

卸载掉一些没用的程序,大约能省下80M的内存

#  Snap是包管理器,一般直接apt安装,所以卸载
apt remove --purge snapd

# multipathd 是 Multipath I/O 的守护进程,用于管理多路径存储设备的连接, 通常用于 SAN(存储区域网络)环境
apt remove --purge multipath-tools

# unattended-upgrades 是一个用于自动安装安全更新的服务,通常在 Debian 和 Ubuntu 系统中使用。它的主要目的是自动化系统的安全更新过程,以减少手动维护的负担,并确保系统始终保持最新的安全补丁。一般手动更新
apt remove --purge unattended-upgrades

# packagekitd 是 PackageKit 的守护进程,PackageKit 是一个抽象的包管理接口,用于提供与软件包管理相关的功能,主要用于与图形用户界面(GUI)集成。不用GUI一般不用
apt remove --purge packagekit

# networkd-dispatcher 是一个网络状态变化事件的服务。比如断网了要触发一些什么事件,一般不用
apt remove --purge networkd-dispatcher

# snap.amazon-ssm-agent.amazon-ssm-agent.service 是 Amazon SSM Agent 的服务,允许用户通过 AWS Management Console、CLI 或 API 远程管理 EC2 实例,无需 SSH 访问。用ssh的直接关闭
systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service
systemctl disable snap.amazon-ssm-agent.amazon-ssm-agent.service

# agetty 是一个用于管理终端登录的服务,提供控制台登录提示。只用命令行的就关掉
mv /lib/systemd/system/serial-getty@.service /lib/systemd/system/serial-getty@.service.bak
mv /lib/systemd/system/getty@.service /lib/systemd/system/getty@.service.bak

# acpid 处理 ACPI 事件,如电源按钮、休眠等。卸载掉
apt remove --purge acpid


# polkitd 主要用于桌面系统和一些服务器环境中,提供权限管理和访问控制。卸载掉
apt remove --purge policykit-1
mv /lib/systemd/system/polkit.service /lib/systemd/system/polkit.service.bak

# udisks2是GUI 环境下管理存储设备(如 USB 驱动器、硬盘分区),不依赖 GUI 来管理存储设备没用
systemctl stop udisks2.service
systemctl disable udisks2.service
2、用root远程登录

如果不介意远程root,就用远程root。因为用远程ubuntu切root,系统会有一个sudo的进程,而这个进程是会占用内存的。亲测大约省下15到20M的内存

# 开启root登录,并且只能密钥登录
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config

# 有用旧ssh-rsa时需要加上
if [ -z "`egrep '^PubkeyAcceptedKeyTypes \+ssh-rsa' /etc/ssh/sshd_config`" ];then echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/sshd_config;fi

# 重启ssh
systemctl restart ssh

# 设置root的互信
cat /home/ubuntu/.ssh/authorized_keys > /root/.ssh/authorized_keys
3、用podman替换docker

Docker:采用的是守护进程架构。Docker 包含了一个中央守护进程(dockerd),这个守护进程负责管理容器生命周期、网络、存储等。

Podman:没有守护进程,它是一种无守护进程(daemonless)的容器管理工具。Podman 直接由用户进程启动和管理容器,不需要像 Docker 那样的中央守护进程。这意味着它只在需要运行容器时占用系统资源,没有额外的守护进程常驻后台。

因此,Podman 的内存比Docker占用更小,更轻量化。亲测使用过程中大约省下50M的内存
安装podman

apt update
apt install podman

特别注意:
podman在ubuntu里使用时,run的时候需要使用–security-opt=apparmor=podman,才能被podman stop。这是ubuntu的一个bug,ubuntu不重视,气人!

例如:podman run -p 8080:80 --security-opt=apparmor=podman docker.io/nginx

4、汇总脚本
#!/bin/bash
apt remove -y --purge snapd --purge multipath-tools unattended-upgrades packagekit networkd-dispatcher acpid policykit-1

systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service
systemctl disable snap.amazon-ssm-agent.amazon-ssm-agent.service

mv /lib/systemd/system/udisks2.service /lib/systemd/system/udisks2.service.bak
mv /lib/systemd/system/serial-getty@.service /lib/systemd/system/serial-getty@.service.bak
mv /lib/systemd/system/getty@.service /lib/systemd/system/getty@.service.bak
mv /lib/systemd/system/polkit.service /lib/systemd/system/polkit.service.bak


sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
if [ -z "`egrep '^PubkeyAcceptedKeyTypes \+ssh-rsa' /etc/ssh/sshd_config`" ];then echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/sshd_config;fi
systemctl restart ssh
cat /home/ubuntu/.ssh/authorized_keys > /root/.ssh/authorized_keys
reboot
5、优化效果

优化前
在这里插入图片描述

优化后
在这里插入图片描述

3、省钱计划

1、免费等级

aws提供了免费资源使用量的面板,偈尔可以上去看一下有没有超过,妈妈再也不用担心我的超额了。
在这里插入图片描述

2、零支出预算告警

为保证零支出预算告警,aws提供了超额告警。在账单与成本管理 --> 预算 --> 创建预算,预算模板选零支出预算,电子邮件收件人写上对应邮箱。这样当支出超过0.01美元时,触发告警通知。

在这里插入图片描述

写到最后

如果你能看到这里,那也许你也和我一样,希望能拥有一台自己的云服务器,那就赶紧行动注册吧。时间不等人,加油吧朋友!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值