授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道
亚马逊EC2云服务器(Elastic Compute Cloud)是亚马逊AWS(Amazon Web Services)提供的一种云计算服务。EC2代表弹性计算云,它允许用户租用虚拟计算资源,包括CPU、内存、存储和网络带宽,以满足计算需求。
由于亚马逊云科技服务种类较多,且计费详细,很多用户有些看不懂,所以对使用亚马逊云科技云服务器望而却步。其实亚马逊云科技很多服务都有免费套餐,以让用户体验,这些服务的免费套餐,搭建一个web服务绰绰有余。
在日常工作中,大家使用比较多的云盘有百度网盘,阿里的夸克网盘,移动云盘,坚果网盘等等,但是将一些内部数据或者机密文件保存在公开网盘中会存在较大的风险,很容易造成泄露,今天带领大家部署一款基于亚马逊云EC2云服务器的私有化开源云盘NextCloud
1. 亚马逊EC2优势
亚马逊EC2云服务器的主要特点和优势包括:
- 灵活性:用户可以根据需要随时启动、停止、调整和删除EC2实例,以便满足不断变化的计算需求。
- 可靠性:亚马逊EC2服务器提供高可用性和容错性,确保用户的应用程序能始终保持运行状态。此外,亚马逊EC2的服务等级协议承诺为每个EC2地区提供99.99%的可用性。
- 安全性:亚马逊EC2服务器提供了多层安全措施,包括网络隔离、数据加密和身份验证,以保护用户的数据和应用程序免受攻击。
- 成本效益:亚马逊EC2服务器采用按需计费模式,用户只需支付实际使用的计算资源费用,无需预先投资硬件或承担维护和管理物理服务器的费用。
- 可扩展性和功能性:亚马逊EC2提供了根据需要扩大或缩小规模的设施,能轻松处理各种动态场景。它还为用户提供了一个真正的虚拟计算平台,可以在其中执行各种操作,甚至可以从这个虚拟环境中启动另一个亚马逊EC2实例。
关于如何购买亚马逊云服务器,我这里不再重复赘述,详细可以查看这篇文章:https://blog.csdn.net/qq_43475285/article/details/134256935
2. 登录云服务器
2.1 EC2云服务器准备
在购买好云服务器后,进入控制台https://us-east-1.console.aws.amazon.com/console
tips: 在右上角区域选择,要和购买服务器时所选区域一致,否则无法找到已经购买的EC2服务器资源
进入EC2控制台,可以看到正在运行的实例信息
关于登录到云服务实例终端,有很多种方法,最方便的是在实例详细信息右上角点击连接
可以选择使用Instance Connect 进行连接或者Instance Connect 端点进行连接,可以直接在web端进行终端控制
但是为了方便后续的开发部署,并不是很推荐这种方式
可以在本地安装一个shell登录软件。
2.2 EC2云服务器远程访问
常见的终端shell访问软件有Finalshell,putty,xshell等等。我这里使用的是finalshell
输入基本信息后,进行访问
tips:这里需要注意的是,初次访问现需要登录ec-user,才能继续访问root用户
登录成功后再ec-user账号下使用sudo权限设置密码
登录成功后设置root密码
sudo passwd root
3. Nextcloud部署
下面将使用Docker容器服务来快速部署Nextcloud
3.1 NextCloud简介
Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。
Nextcloud也提供了许多应用安装,包括但不限于Markdown在线编辑、OnlyOffice(需另外部署服务端)、思维导图、日历等,你可以自行选择以丰富个人网盘的功能。
NextCloud:https://nextcloud.com/
3.2 Docker
Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
3.2.1 Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
3.2.2 Docker 优势
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
- 1、快速,一致地交付您的应用程序
Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:
-
当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
-
测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。
-
2、响应式部署和扩展
Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。
Docker 的可移植性和轻量级的特性,还可以轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。
3.2 服务部署
3.2.1 docker安装
安装必要软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加Docker的yum仓库
需要添加docker的官方yum仓库,这样你才能下载并安装docker。可以使用下面的命令添加仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker-ce
sudo yum install -y docker-ce docker-ce-cli containerd
启动docker
sudo systemctl start docker
3.2.2 nextcloud部署
拉取nextcloud镜像
docker run -d -p 8080:80 nextcloud
查看部署效果
3.3 nextcloud初始化配置
设置管理员账号和密码,点击安装,等待安装完成
设置完成后进入首页
我们可以在设置中自定义展现信息,还可以实现拖拽上传,在线预览功能
整体来说,nextcloud开源网盘功能足够多,和常见网盘基本功能相差不大,很适合部署在公司内网使用。保证数据安全性