在云中打造一个免费的Gemstone服务器-只需10分钟 (在云中打造一幅画)

教程大全 2025-07-15 19:07:52 浏览

只需10分钟 在云中打造一个免费的Gemstone 服务器

原创2011-01-21 10:30:46要在Gemstone中运行一个Seaside应用程序,一个微型的实例已经足够了吗?答案是:YES。实际上,我已经试着创建了一个已经配置好的Gemstone EC2 Linux AMI (Amazon Machine Image)。在本文中,我将会为您讲述如何使用这个已经配置好的映像把Seaside应用程序快速而免费地部署到EC2(Elastic compute CLOUD)上。

Amazon提供的一个免费一年的微型实例产品,引起了我的注意:

为了帮助AWS(Amazon Web Services)的新客户在云中入门,AWS引入了一个全新的,可以免费使用的等级。11月1日开始,新的AWS客户可以免费使用Amazon EC2 Micro Instance一年……

但是,要在Gemstone中运行一个Seaside应用程序,一个微型的实例已经足够了吗?答案是:YES。实际上,我已经试着创建了一个已经配置好的Gemstone EC2 Linux AMI (Amazon Machine Image)。在本文中,我将会为您讲述如何使用这个已经配置好的映像把Seaside应用程序快速而免费地部署到EC2(Elastic Compute Cloud)上。

(关于Gemstone EC2 Linux AMI的创建过程,可以参考这篇博文:)

注意: 这些说明都是基于从一个MacOS客户端连接到一个Amazon EC2实例的;对于其他Unix客户端来说,这些说明也同样适用。对于一个Windows客户端来说,你可能需要下载:

并相应地修改这些说明。

创建一个EC2实例

首先到注册。登陆以后你就可以导航到下面这个界面了:

*在“Region”组合框上下拉,选择离你最近的区域。

*点击“Launch Instance”按钮来打开Request Instance Wizard

选择“Community AMI”标签,然后在搜索框中输入“ami-7f9bae0b”,这是已经配置好的Gemstone/Seaside实例的AMI(Amazon Machine Image) ID。在以前的一篇博文中,我已经记录下这个映像的配置过程了,关于这篇博文,可以参考本文前面给出的链接。

注意: 在记录下这个截屏以后,我才认识到,“ami-7f9bae0b”只能用于“EU-WEST”区域,Amazon没有直接把它拷贝到其他区域。在接下来的几天里,我会试着让它可以在“US”区域中使用的,在此之前,只有把你的区域设置成“EU-WEST”,你才可以找到这个AMI。

如果你想使用Amazon提供的这个免费产品,可以选择“Micro”。Amazon对微型实例的描述如下:

这个系列的实例可以持续不断地给你提供少量的CPU资源,当其他周期可用的时候,你也可以增加CPU资源。它们比较适合那些低吞吐量的应用程序,以及那些周期性地消耗掉计算周期的Web站点。

接下来,我们给这个EC2实例输入一个RSA公钥,让它支持ssh访问。密钥是使用“ssh-keygen”命令生成的:

$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/Users/nickager/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /Users/nickager/.ssh/id_rsa.Your public key has been saved in /Users/nickager/.ssh/id_rsa.pub.

然后,使用“~/.ssh/id_rsa.pub”命令提取出你的公钥,用下面这种格式,把它输入到到这个实例的“User border="0" cellspacing="0" cellpadding="6"> #cloud-configssh_authorized_keys:– ssh-rsa AAAAB3NzaC1y……..disable_ec2_metadata: true

格式:CloudInit(syntax)

不需要输入任何键/值对

因为我们在上面那个步骤中,已经把一个SSH密钥输入到“User border="0" cellspacing="0" cellpadding="6"> ssh -L 8888:127.0.0.1:80[emailprotected]

你应该会看到一些类似于这样的东西:

$ ssh -L 8888:127.0.0.1:80[emailprotected]The authenticity of host ‘ec2-46-51-165-46.eu-west-1.compute.amazonaws.com (79.125.98.212)’ can’t be established.RSA key fingerprint is de:96:12:b7:d0:9e:63:69:37:5a:4b:08:20:68:45:b6.Are you sure you want to continue connecting (yes/no)?yesWarning: Permanently added ‘ec2-46-51-165-46.eu-west-1.compute.amazonaws.com,79.125.74.150’ (RSA) to the list of known hosts.Last login: Wed Dec 29 18:25:11 2010 from 93-96-148-251.zone4.bethere.co.uk

__| __|_ ) Amazon Linux AMI_| ( / Beta___|___|\___|

See /etc/image-release-notes for latest release notes. 🙂[seasideuser@ip-10-234-159-73 ~]$

现在,你应该可以浏览“”,访问相应的配置了。参数“-L 8888:127.0.0.1:80”表示服务端的localhost上的数据应该传送到客户端的localhost:8888上,同时,Web服务器会被配置成只能通过localhost来访问“/config”命令。

还有一个日志界面,也被配置成只能通过localhost来访问;浏览/tools/objectlog(用户名: admin, 密码: tool)可以访问这个界面。

把你自己的代码载入到你的Gemstone实例中

如果你已经登录到你的远程实例了,那么先“exit”这个实例,然后用下面的命令行ssh回来:

$ ssh -X -C[emailprotected]

这应该会产生一些类似于这样的东西:

在云中打造一幅画
$ ssh -X -C[emailprotected]Warning: untrusted X11 forwarding setup failed: xauth key>__| __|_ ) Amazon Linux AMI_| ( / Beta___|___|\___|

See /etc/image-release-notes for latest release notes. 🙂[seasideuser@ip-10-234-159-73 ~]$

“-x”参数支持X11传送,“-C”压缩。这可以让你在你的远程实例上打开GemTools,但是那个窗口会传送(X11)到你本地计算机的显示屏上。

GemTools是一个Pharo环境,它可以让你连接到Gemstone,载入和修改代码,以及通过一个GUI环境来执行一些管理操作(例如启动和关闭服务器,备份和恢复数据库等等)。

启动Gemtools:

然后,按“Login”按钮连接到运行在你的实例中的Gemstone服务器:

你现在应该已经登录到你的Gemstone服务器了:

现在,你可以使用Monticello把你的代码载入到你的远程实例中。点击“Tools”按钮,然后选择“Monticello”。添加包含你的代码的代码库,然后正常载入。你还可以使用Metacello 和 Gofer来载入代码。

使用GemTools

虽然当GemTools运程运行在你的实例中的时候,在GemTools中,你也可以高效率地完成一些工作,但是,你可能会发现,使用VMWare GLASS virtual appliance,或者把Gemstone安装到你的本地机器上,在一个Pharo映像中完成这些工作,效率会更高一些。

如果你是通过一个MacOS客户端来连接的,那么你可能会发现映射Ctrl和CMD键是很有帮助的,具体可以参考:

《MacOS And X11》

有待改进

1,我尚未配置任何监控软件

2,如果他们崩溃了,没有办法重新启动Gems

3,没有提供数据库备份机制。

4,我还没有配置邮件服务器。

《Glass Daemon Tools》这篇文档详细地讲述实现其中一些改进的方法。

为了改进你自己的配置,你可以使用这个配置作为基础,然后,在社区中分享你自己的配置。创建和分享一个经过修改的配置都是十分简单的。

让你的实例更加安全

有很多种方法可以让你的实例更加安全,这是其中的三种方法(注意:这并不是一个完整的列表):

1,让你的系统软件处于最新状态

2,要求提供一个sudo密码

3,改变SSH的端口

1,让你的系统软件处于最新状态

定期地运行:

2,要求提供一个sudo密码

首先,你必须为seasideuser设置一个密码:

$ passwdChanging password for user seasideuser.New password:

然后编辑/etc/sudoers:

把这一行:

改成:

现在,当你执行使用sudo的命令的时候,你必须要提供一个密码。

3,改变SSH的端口

默认的SSH端口是22端口,许多人都会攻击这个端口。这就是说,ssh到这个实例的唯一方法是使用RSA密钥。此外,root访问也应该禁用(这是一种常见的攻击方法)。但是,如果你想更谨慎一些,你可以改变SSH的端口(但是,我怀疑这种方法提供的保护对确定性的攻击是无效的)。

首先,你应该在你的防火墙上打开新的端口。从“Amazon AWS EC2”标签中选择“Security Groups”,然后选择和你的实例相关的安全组。添加新的端口。

接下来编辑/etc/ssh/sshd_config

然后把这一行:

改成你的新端口,比如说20001:

重新启动ssh daemon:

接下来“exit”你的实例,然后使用你的新端口来登录:

ssh -p 20001[emailprotected]

最后,你可以重新编辑你的防火墙,移除对22端口的访问。

补充资料

这个实例的配置已经记录到以前的一篇博文中了:

《Installing Gemstone on an Amazon EC2 Linux instance》:Installing Gemstone on an Amazon EC2 Linux instance

此外,还有很多和Gemstone有关的优秀资料:

* Glass wiki

* Gemstone manuals

* James Foster’s blog

* Dale Henrick’s blog

GLASS邮件列表也有很大的参考价值。

原文名:Create a free Gemstone server in the cloud in 10 minutes 作者:Nick Ager

【编辑推荐】


力软快速开发平台有什么优势?

跑商2次刷价的时间和具体刷高还是刷低

二次刷价:一个职业商人,必须明白二次刷价,二次刷价是跑好商的关键,掌握了二次刷价的规律就掌握了跑商的精髓。 不懂二刷一样可以跑,但是懂二刷可以让你更精确的判断买货,基本上可以做到只赚不亏。 二刷是指在每个10分钟的刷价周期中,还会有一次变价的时间,这个时间不刷买入价,光刷卖出价。 二次刷价前后的规律是低价货物二刷之后卖出价变高,高价货物二次刷后卖出价变低。 低价货物和高价货物的判断就在于和基准价的比较,比如佛珠7500,扇子3400,武器3500,那么佛珠属于高价,扇子和武器属于低价,其中最低价是武器,二刷之前,佛珠一般是赚钱的,二刷之后佛珠卖出价就会下跌,可能赚,也可能亏,但是扇子和武器卖出价会上升,尤其是武器,肯定能赚不少,这就是所谓低价货有时候赚多,有时候赚少的原因,如果你进了低价货,在二刷之前卖,那么赚不了多少,过了二刷,就可以赚很多,典型的如武器3500,二刷前可能只有4500的卖价,但是二刷后一般都会刷上5000甚至6000。 当几种货物有的高于基准价,有的低于基准价,那么是很好判断的,如果都高于或者都低于,那么就要比较相对价格的高低,如果高的离谱,甚至会出现任何货物都亏的情况(典型的跑CS-AL就有可能),这时候建议换路线跑。 二刷是一个变动的时间,每次维护都会更改,更改之后每天大概推迟10/7分,也就是一分多一点,实际上这个时间是每次刷价都在往后退,比如早上如果是相对时间(相对1次刷价)3分50秒,晚上可能就是4分多,第二天早上就是5分多了。 一般正常情况下一星期一次维护,只要有一天知道了,后面的都可以推,一直到下一次服务器重启维护。 二次刷价的查找:最简单的是买个货物,傻乎乎的隔10秒看一次,一直看到变化为止,最多浪费10分钟,简单不浪费的时间的方法是利用AL-CS的短途来锁定2刷的大致范围,然后在某个时候确定一下。 比如在CS刷完后,看到低价货,买进,去AL,大概2分之前能到,记住价格,如果赚的很多,可以尝试判断2刷已经过了,然后回CS,这中间为了确保不会亏,暂时买低价货,下一次回AL,大概是5-6分了,如果这时候价格变了,就可以确定2刷在5分前,2分后,如果还没变,再跑一次,基本上可以断定2刷在哪个时间段里,基本上这个时间足够判断BJ-DF和CA-CS路线了,在某个时候适当停几分钟确定一下准确时间就够了,同时也可以跑完一票了

自学Linux云计算能学好吗?

作为云计算市场的后来者,腾讯云近期攻势猛烈,从面向企业的云服务,到面向用户的个人云市场全面发力,更将战火蔓延至海外市场。 吸引了越来越多的人开始加入到学习linux云计算的行列,那对于没有基础的同学来讲,linux云计算好学吗?我们首先需要了解一下云计算是干什么的,都学习哪些内容。 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。 学习云计算你需要知道虚拟化,虚拟化目前分为服务器虚拟化(以VMware为代表)、桌面虚拟化、应用虚拟化等。 可以分为以下几个阶段来学习:1. Linux云计算网络管理实战2. Linux系统管理及服务配置实战3. Linux Shell自动化运维编程实战4. 开源数据库SQL/NOSQL运维实战5. 大型网站高并发架构及自动化运维项目6. 网站安全渗透测试及性能调优项目实战7. 公有云运维技术项目实战8. 企业私有云架构及运维实战9. Python自动化运维开发基础10. Python自动化运维开发项目实战11. Python自动化运维开发项目实战12. 搜狐畅游项目实训具体学习目标:1、掌握大型网站架构、网站服务器运维、数据库运维、自动化运维技术;2、能够利用Shell及Python编写自动化运维工具,例如CMDB、自动化运维平台等、公有云管理系统;3、能够解决运维过程中出现的各种问题,例如网站架构问题等;4、具备中小型公司公有云运维的能力。 例如公司使用的是阿里云、亚马逊云;5、掌握中大型公司私有云平台的构建及运维,例如构建及运维京东私有云平台;6、能够利用Python开发运维中的各种工具,以及对现有软件如Zabbix、Ansible进行二次开发;7、具备快速学习及适应新技术迭代的综合能力。 对于初学者学习云计算,给出的建议是:基础是关键,在涉猎技术范围广泛的同时,所学所了解的知识领域一定要成体系,抓住一个方向,作为一技之长。 学以致用是,在学习过程中,重在理解,贵在实践,积极将所学所了解的技术运用于项目实践,成就你的云计算自学梦想。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐