AWS EC2的创建方法(2023年)
以下是创建EC2实例的方法说明。
如果您想了解在Windows、Red Hat、Ubuntu等其他虚拟机中执行相同操作的方法,请在评论中留言。在提案示例中,我们将使用Amazon Linux 2进行启动。
◆ 在提案的例子中,我们将讨论以下情况:
Apacheのみ: index.htmlページが表示されます
Apache + PHP: index.phpページが表示されます
NodeJSのみ: index.jsページが表示されます
ExpressJS: index.jsページが表示されます
如果你想看一下在Python、C#或其他语言中实现同样功能的方法,请在评论中留言。
如果您希望了解安装Laravel、CakePHP、ECCube、WordPress、Django等软件的方法,请留下评论。
创建EC2实例
这个步骤在所有情况下都是通用的。
请登录AWS控制台。
请点击页面顶部的”北维吉尼亚”。
请选择“亚太地区(东京)”。
请确认一下。请确认所选地区是“东京”。
请将页面滚动到顶部并访问标有“搜索”的搜索框。
请在此搜索框中输入“EC2”。
将显示下拉列表:
请点击「EC2」。
将会显示EC2仪表板。
在这个界面上,您可以创建EC2实例,引入自动扩展和负载均衡器,但是在本教程中,我们只会进行EC2实例的创建。
要创建EC2实例,请点击“启动实例”。
前往创建EC2实例的页面。
请再次确认您是否在“东京”地区。
现在开始创建4个EC2实例。第一个EC2实例将启动一个简单的Apache服务器。第二个EC2实例将启动Apache和PHP。第三个EC2实例将启动NodeJS服务器。最后一个EC2实例将启动ExpressJS服务器。
好的,让我们开始吧!
请前往“名称和标签”部分。
请在“姓名”一栏中写上“服务器”。
请在「实例数量」的字段中输入4。
请转到「应用程序和操作系统镜像(亚马逊机器镜像)」部分。
请确认所指定的操作系统是“Amazon Linux”。
这是默认值。
请在「实例类型」部分中选择您想要使用的EC2实例类型。
建议在测试和开发阶段使用默认类型的t2.micro。因为它几乎没有费用。
请前往「密钥对(登录)」部分。
要创建密钥对,请点击“创建新密钥对”。
模态应该打开。
请在「密钥对名称」字段中输入密钥对的名称。
在本教程中,我们给密钥对命名为“我的演示密钥”。
-
- LinuxまたはMacを使用している場合、「キーペアのタイプ」を変更せずに「.pem」を使用してください。
- Windowsを使用している場合は、「キーペアのタイプ」を変更し、「.ppk」を使用してください。
根据我个人的情况,我使用Mac,因此保留了“.pem”文件。
请点击“创建密钥对”。
请确保将密钥对准确地保存在硬盘上,以免丢失密钥对。
请确认密钥对是否正确选择。
请进入「网络设置」部分。
AWS写道,可以创建安全组。
在我的情况下,安全组的名称是launch-wizard-4。但是,请注意,你的情况下可能会有不同的名称。
接下来,勾选“允许来自互联网的HTTP流量”,确保实例可以访问互联网。
请点击”启动实例”按钮。
您将被重定向到此页面:
请等待,直到加载画面完成后,请点击“显示所有实例”按钮。
您将被重定向到EC2仪表板的页面。
在这里,应该会显示出4个EC2实例。
请稍等。请等到实例的状态变为绿色。也就是说,显示为”运行中”。
如果花费了很长时间,请点击列表顶部的按钮来更新列表。
在接下来的时候,我们会修改实例的名称。
当将鼠标光标移动到第一个实例的名称上时,应该会显示一个小笔的图标。
请点击笔图标。
请在文本框中输入“仅限Apache”。
请按下Enter键以确认。
恭喜你!你成功地將第一個實例重新命名了。
请在其他三个实例中执行相同的事情。
请将它们分别更名为以下内容:
-
- Apache+PHP
-
- NodeJSのみ
- ExpressJS
以下是中文的表达方式:
因为我刚刚创建了四个EC2实例,所以我可以开始进行服务器配置了。
仅限于Apache
我們會開設第一個實例。這是一個只搭載Apache服務器而不包含PHP的實例。
请只选择名为「Apache」的实例。
然后,请点击“连接”菜单。
然后,应该会跳转到这个页面。 , huì .)
请点击“连接”按钮。
应该会打开一个新窗口
请输入以下命令:
sudo su
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "Apache Server only" > /var/www/html/index.html
请返回EC2实例列表页面,在那里选择名为”Apache的实例”的选项。
之后,请选择“网络连接”选项卡。
接下来,请搜索“公共IPv4地址”。
在我的情况下,我的公共IPv4地址是52.195.214.151。
接下来,请将此IP地址复制并粘贴到浏览器中。如果一切正常,应该会显示出这个页面:
Apache加PHP
请只选择名为「Apache+PHP」的实例。
请点击“连接”菜单。
接下来,应该会转到这个屏幕上:
请点击“连接”按钮。
应该会打开一个新的窗口。
请键入以下命令:
sudo su
yum update -y
yum install -y httpd
yum install -y php
systemctl start httpd
systemctl enable httpd
echo "<?php phpinfo(); " > /var/www/html/index.php
请返回EC2实例列表页面,仅选择名为“Apache+PHP”的实例。
后来,请选择“网络”标签。
请搜索“公共IPv4地址”。
在我的情况下,我的公网IPv4地址是54.178.103.42。
然后,请复制此IP地址并粘贴到浏览器中。如果一切顺利,应该会显示出这个页面:
仅限于NodeJS
请仅选择名为「NodeJS的实例」的选项。
请点击“连接”菜单。
接下来,您应该会被转到该屏幕。
请点击“连接”按钮。
应该会打开一个新窗口。
请输入以下命令:
sudo su
yum update -y
yum install -y gcc-c++ make
yum install -y nodejs
npm install pm2@latest -g
cd /home/ec2-user/
touch index.js
vim index.js
请在index.js文件中添加以下代码:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
res.write('<h1>Hello World</h1>');
res.end();
});
const port = 80;
server.listen(port);
请保存 index.js 文件,并执行以下命令。
pm2 startup
pm2 start /home/ec2-user/index.js --name=MY_NODE_SERVER
请返回EC2实例列表页面,仅选择名为”NodeJS的实例”。
然后,请选择“网络”选项卡。
然后,请搜索“公共IPv4地址”。
在我这个情况下,我的公共IPv4地址是18.177.140.171。
请将此IP地址复制并粘贴到浏览器中。如果一切顺利,应该能够显示出该网页:
ExpressJS (用中文表达)
请仅选择名为「ExpressJS的实例」的选项。
请点击”连接”菜单。
然后,应该会跳转到这个画面。
请点击”连接”按钮。
应该会打开一个新窗口。
请键入以下命令:
yum update -y
yum install -y gcc-c++ make
yum install -y nodejs
npm install pm2@latest -g
cd /home/ec2-user/
npm init -y
npm install express
touch index.js
vim index.js
请将以下代码添加到index.js文件中:
const express = require('express');
const http = require('http');
const app = express();
const router = express.Router();
router.get('/', (req, res) => {
res.status(200).send('Hello World 2!');
});
app.use('/', router);
const server = http.createServer(app);
server.listen(80);
请保存 index.js 文件,并执行以下命令。
pm2 startup
pm2 start /home/ec2-user/index.js --name=MY_EXPRESS_SERVER
请返回到EC2实例列表页面,并选择名为”ExpressJS的实例”的实例。
请之后选择“网络”选项卡。
请搜索”公共IPv4地址”。
在我的情况下,我的公共IPv4地址是54.64.126.246。
请将该IP地址复制并粘贴到浏览器中。如果一切顺利,该页面应该会显示出来:
为什么这种方法适合初学者?
我部署了四个Web服务器。其中一个只包含了Apache,另一个包含了Apache和PHP,再一个只包含了NodeJS,最后一个则包含了ExpressJS。
你可能已经注意到了,我几乎总是在做同样的事情。
我不是日本人,所以不清楚日本的工程学院教授什么,但在法国,优秀的工程师是尽可能多自动化的工程师。
为什么要自动化工作?
1つ目の理由は、怠惰で同じことを何度も繰り返したくないからです。
タスクを自動化すれば、手動で行うよりもはるかに速く処理できます。
自動化されたタスクを実行することで、エラーを防ぐことができます。実際、うっかり特定のオプションを選択し忘れる可能性があります。
自動化されたタスクは通常YAMLファイルなどのファイルに書かれることがあります。これらのファイルはGitHubに保存してチームと共有できます。これにより、デプロイメントをバージョン管理したり、デプロイメントを更新したりすることができます。
自動化されたタスクは、行動を追跡可能にすることができます。つまり、問題が発生した場合、自動化されたスクリプトをチェックして更新するだけで済みます。
有很多原因但在这里不打算列举所有的。
什么事情可以自动化?
你可能会认为几乎所有事情都可以自动化。以下是几个例子:
WordPress、Laravel、CakePHP、ECCubeなどのウェブサイトの自動デプロイメント。
ホワイトラベル製品の自動デプロイメント。
コンセプトの検証のためのテストサーバーの自動デプロイメント。