阿里云经典网络下如何节约公网 IP 费用
想法
历史原因,我们一直使用的是阿里云经典网络的 ECS,疲于业务的开发及人力不足,一直没有特别大的动力迁移到 VPC 下。
而经典网络下的 ECS 的公网 IP 是收费的,而且没有公网 IP 有时会不方便。
购买公网 IP 时的费用
未购买公网 IP 时的费用
如果是按月购买,每个月将节约:296 - 273 = 23 元。
而我们的大多服务是内网使用的,所以,公网 IP 的申请完全是浪费。
可是,我们有时,还是需要公网下载一些东西的。这时怎么办呢?
我的方案是:没有公网 IP 的机器,使用 HTTP 代理就可以上网了。
当然,哪些机器需要上网,基于安全上的考虑,需要读者自己决定了。
怎么做?
我的具体实现方便使用 Squid 搭建 http proxy 服务。其他机器通过配置环境变量配置,笔者是通过 Ansible 初始化机器时配置的:
- name: use httpproxy
lineinfile:
path: "/etc/profile"
line: "<<item>>"
with_items:
- "export http_proxy=http://<< httpproxy.host >>:<< httpproxy.port >>/"
- "export https_proxy=http://<< httpproxy.host >>:<< httpproxy.port >>/"
when: is_use_httpproxy is defined and is_use_httpproxy == 'True'
tag: httpproxy
关于 Squid Http Proxy 服务,笔者同样是使用 Ansible 搭建,具体不细表,看官可以自行看代码:Squid-ansible。
这样就可以节约下公网 IP 的钱了。
关于 java 应用并没有使用 http Proxy
上文中,我们的机器使用了 http proxy,但是 Java 应用中依然无法请求外网,这时需要在 java 启动时加入相应的变量,如下:
{{JAVA_HOME}}/bin/java -Dhttp.proxyHost={{ httpproxy.host }} -Dhttp.proxyPort={{ httpproxy.port }}
小结
为什么要节约这点钱,大公司不差你这点钱。再说了,老板也没有让你做啊。你做了老板也不知道。那你为什么还要做?
笔者认为,不做,就会给自己一次机会养成“浪费”的习惯或者思维模式。这是自己的损失。最终,对企业,对个人都是损失。
Last modified on 2018-05-14