【问题标题】:Can I set a specific storage for one of my web app on my EC2?我可以在我的 EC2 上为我的一个 Web 应用程序设置一个特定的存储吗?
【发布时间】:2018-03-27 13:32:53
【问题描述】:

希望你一切都好

现在我有一个正在运行的 EC2 实例,并且我已经托管了一些 Web 应用程序,我的实例的存储空间是 20 GB,所以我想问是否可以为其中一个正在运行的应用程序分配一个固定存储空间?

提前致谢。

【问题讨论】:

  • 您希望每个正在运行的应用程序都有自己的 EBS 卷吗?您想通过每个新的 Web 应用程序增加实例的存储空间吗?您到底想完成什么,有关此内容的更多详细信息会有所帮助。
  • @strongjz ,是的,我想将特定的 EBS 附加到单个 Web 应用程序
  • 您可以添加一个 EBS 卷,然后在操作系统中,您可以将它挂载到您想要用于该 Web 应用程序的任何文件系统和路径。
  • @strongjz 但网络应用程序应该在/var/www/html 路径内?所以我可以为他们建立一个软链接ln -s

标签: amazon-web-services amazon-s3 amazon-ec2 web-hosting


【解决方案1】:

在为实例选择 EBS 存储时,您有多种选择。

  1. EBS 优化
  2. IOPS
  3. 实例类型
  4. 突袭卷

但要更改实例类型,您需要创建快照并从 snapshot 恢复卷。您还需要考虑更改支持 EBS 优化的实例类型,这将为 EBS 通信创建专用网络通道,并且不受实例网络流量的影响。

你也可以在控制台修改EBS卷,

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/console-modify.html

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSPerformance.html

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html

【讨论】:

  • 所以EBS一开始是为整个实例分配的,如果我想为实例上运行的单个Web应用程序分配一个特定的大小怎么办?
  • 您可以为该特定 Web 应用程序附加另一个卷。
  • 真的,怎么会?
  • 我对你的问题感到困惑。我认为这就是您想要的,每个 Web 应用程序的特定卷。
  • 什么让你困惑?
【解决方案2】:

当您创建实例时,您可能分配了空间,这会自动创建一个弹性块存储卷并将其附加到您的 EC2 实例。

您可以创建额外的卷并将它们附加(然后映射)到您的 EC2 实例。或者,您可以拍摄快照,然后创建一个不同大小的新卷并切换附加的卷。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html

编辑: 由于您在同一实例上有多个虚拟主机,因此您可以创建额外的卷并将它们映射到您的实例中。然后您可以将虚拟主机目录设置为那些新映射的文件夹。但是,这两者的细节超出了这个问题的范围。

所以 TL;DR;是的,有可能。

【讨论】:

  • 但这被分配给单个实例。我想为我正在运行的实例上的单个网络应用程序分配一个特定的存储空间。
  • 那么你在同一个实例上有多个虚拟主机?您可以将多个卷映射到同一个 EC2 实例 (docs.aws.amazon.com/AWSEC2/latest/UserGuide/…)
  • 我在实例上运行了多个 Web 应用程序,是的
【解决方案3】:

假设您使用的是基于 centos 的系统,以下是要执行的确切步骤。

参考
Making an Amazon EBS Volume Available for Use
What happens when you 'mount over' an existing folder with contents?

# EBS device name
ebs_location=/dev/xvdb
# Lets say you application is in /etc/apps/
mount_folder=/etc/apps
temp_mount_folder="/mnt/temp-mount"

#Configure EBS volume and Create a temp mount point
mkfs -t ext4 $ebs_location
mkdir ${temp_mount_folder}
mount ${ebs_location} ${temp_mount_folder}
#Copy all the files from /etc/apps to the temp location
cp -ax ${mount_folder}/* ${temp_mount_folder}

#Umount the temp location
umount "${ebs_location}"
#rename the /etc/apps/ to /etc/apps.old
mv "${mount_folder}" "${mount_folder}.old"
mkdir "${mount_folder}"

#update fstab file to mount EBS on system startup
echo "UUID=${disk_uuid} ${mount_folder} ext4 defaults,relatime,nofail 0 0" >> /etc/fstab

#mount the EBS volume on /etc/apps
mount ${ebs_location} ${mount_folder}
rm -r ${temp_mount_folder}

【讨论】:

  • 所以这使我正在运行的网络应用程序之一拥有自己的 EBS 卷?
  • 感谢您的回复
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
相关资源
最近更新 更多