便捷学习!面向初学者的Java应用程序AWS部署方法。通过Eclipse、Tomcat和Apache开始云端运营

1. 简介 jiè)

这篇文章很详细地解释了在Java应用的AWS部署过程中的步骤。对于初学者来说可能有一定难度,但请不用担心。我们将逐步进行,并通过具体的命令详细说明AWS部署的步骤。

本文分为两个主要部分。首先,我们将解释使用AWS创建VPC(虚拟专用网络)的方法。然后,我们将解释如何使用Apache和Tomcat来构建Web服务器环境。通过阅读本文,您将理解AWS部署的步骤,并能够在AWS上实际部署Java应用程序。

使用AWS创建VPC(虚拟私有云)。

スクリーンショット 2023-06-18 22.10.51.png

创建VPC、路由表和互联网网关。

1. 在AWS管理控制台的搜索框中搜索“VPC”。
2. 点击“创建VPC”。
3. 在左侧的“VPC设置”部分的“创建资源”部分中选择“VPC等”。
4. 在“自动生成”选项下的文本框中输入所需VPC的名称。在这里设为“test”。
5. 在“IPv4 CIDR块”部分输入“10.0.0.0/16”。
6. 在“可用区(AZ)的数量”部分输入“1”。
7. 在“公共子网的数量”部分输入“1”。
8. 在“私有子网的数量”部分输入“0”。
9. 在“VPC终点”部分选择“无”。
10. 确认“预览”部分与下图相同。

スクリーンショット 2023-06-18 20.39.30.png

选择”显示VPC”。
以上是VPC设置的结束!

在路由表中添加公共路由2.2.

通过这个操作,我们可以使之前创建的公共子网从外部的互联网上进行访问!
1. 在“详细”部分选择主路由表的URL。
2. 选择显示的路由表的复选框。
3. 在底部显示的页面中,点击“路由”选项卡。
4. 点击“编辑路由”。
5. 点击“添加路由”。
6. 在“目标”列中输入“0.0.0.0/0”。
7. 选择“目标列”旁边的文本框。从选项中选择“互联网网关”。选择一个名为“test-igw”的互联网网关ID。(请根据您所创建的VPC的名称进行相应操作。)
8. 点击“保存更改”。
通过上述步骤,我们已经成功设置了适当的路由表以供已创建的VPC使用!

创建 2.3 VPC 安全组

スクリーンショット 2023-07-07 17.34.49.png

7. 在Windows底部移动并选择” 创建安全组 “。
以上是安全组的设置完成!如果没有此规则,EC2实例将无法接收任何请求。

创建2.4 EC2实例

AWS的环境设置只限于EC2。就快完成了?

    1. 在AWS管理控制台的搜索框中搜索”EC2″。

 

    1. 在左侧的导航面板的”实例”部分,点击”实例”。

 

    1. 选择”启动实例”。

 

    1. 设置名称。在这里我们将其命名为”Web Application”。

 

    1. 从”Amazon机器映像(AMI)”下拉菜单中选择”Amazon Linux 2 AMI(HVM)”。

 

    1. 在”密钥对(登录)”部分选择”继续而不使用密钥对(不推荐)”。

 

    1. 在”网络设置”部分,选择”编辑”。

 

    1. 从VPC下拉菜单中选择”test-vpc”。

 

    1. 找到公共IP自动分配下拉菜单,选择”启用”。

 

    1. 在”防火墙(安全组)”部分选择”现有安全组”。

 

    1. 从共享安全组中选择”testGroup”。

 

    1. 点击”启动实例”。

 

    非常感谢!通过以上步骤,我们已经设置好了AWS环境!

3. 搭建Web服务器环境(Apache/Tomcat)

只要走到这里,就已经过了一半了!加油吧!

连接到EC2。

    1. 在AWS管理控制台的搜索框中输入”EC2″并搜索。

 

    1. 在左侧导航栏的”实例”部分点击”实例”。

 

    1. 在”Web应用程序”复选框中勾选,并点击”连接”。

 

    1. 在跳转后的页面再次点击”连接”。

 

    成功连接到EC2!

安装3.2JDK(Java开发工具包)。

JDK是用于创建Java程序所必需或有用的各种工具的集合。在安装时,需要指定与用于开发的Java版本相同的JDK版本。在我的情况下,是指定17版本。

$ sudo yum install java-17-amazon-corretto
//-develの方は必要ないかもしれません? 
//入れても特に問題はないと思うので、入れておくことを推奨します。
$ sudo yum yum install java-17-amazon-corretto-devel

如果你对-devel和无印之间的区别等有疑问,请务必参考学习章节的文章!

检查是否安装了Java。

$ sudo java -version
openjdk version "17.0.7" 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)

现在JDK的准备工作已经完成!

3.3Apache 是一个中国语言的自然释义,唯一选项如下:

3.3Apache 是搭载于中国语言的开源服务器软件。

安装负责处理HTTP通信的Apache作为Web服务器。

$ sudo yum install -y httpd

我需要确认是否已安装了Apache。

$ sudo httpd -v
Server version: Apache/2.4.57 ()
Server built:   May  3 2023 16:00:14

如果有人安装了Apache但仍然使用httpd进行版本确认,那么他们可能需要参考学习编者的内容。

我们将启动并进行操作确认。

$ sudo systemctl start httpd.service
$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-06-17 08:44:48 UTC; 5h 30min ago
~(略)~

通过从本地PC的浏览器访问公共IPv4 DNS来确认能够显示Apache的测试页面的功能。(备注:遇到不能访问公共IPv4 DNS的情况时,可以尝试访问公共IP地址来解决问题。)
例如:http://ec2-54-178-72-250.ap-northeast-1.compute.amazonaws.com

$ sudo systemctl stop httpd.service
$ sudo systemctl status httpd.service 
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-06-17 14:21:19 UTC; 16s ago
~(略)~

当EC2实例启动时,将自动设置Apache服务也启动。

$ sudo systemctl enable httpd.service

将会检查自动启动设置是否已经生效。
如果在Loaded之后的(/usr/lib/systemd/system/httpd.service)部分为enabled,则表示自动启动已经启用。

# sudo systemctl status httpd.service 
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-06-17 14:21:19 UTC; 1min 20s ago
~(略)~

用中文进行本地化:Apache的配置已经完成了!

3.4Tomcat = 3.4Tomcat

请安装处理Java Servlet的Tomcat。请确保使用的版本与我在本地开发应用程序所使用的版本相同。我使用的是版本9。

到目前为止,amzn2-core的yum仓库中提供了Tomcat版本9。但是,这次我们打算学习一下如果不使用软件包管理软件的安装方法。
我们将从Apache Tomcat 9的下载页面上下载Apache Tomcat 9,并使用它。

# sudo yum info tomcat
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Available Packages
Name        : tomcat
Arch        : noarch
Version     : 7.0.76

# sudo amazon-linux-extras list | grep tomcat
 23  tomcat8.5                available    \
 52  tomcat9                  available    [ =stable ]

创建一个专门用于运行Tomcat的用户。
(如果你对为什么需要准备这样一个用户感到疑惑,那么请务必阅读学习版!)

$ sudo useradd -s /sbin/nologin tomcat

通过使用/sbin/nologin,正在创建无法登录的用户。

请下载Tomcat核心组件。只需下载核心组件即可!
※请确认最新版本的URL后,根据需要进行相应更改并执行。

# sudo cd ~
# sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz

将下载的tar文件解压并放置。

$ sudo tar -xzvf ~/apache-tomcat-9.0.76.tar.gz
$ sudo mv ~/apache-tomcat-9.0.76 /opt
$ sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.76

由于没有使用yum进行安装,所以在将来手动更改Tomcat版本时,我们将创建符号链接以尽量减少对配置的影响。

$ sudo ln -s /opt/apache-tomcat-9.0.76 /opt/apache-tomcat
$ sudo chown -h tomcat:tomcat /opt/apache-tomcat

创建一次符号链接后,如果将来需要更改Tomcat版本等,请使用以下命令来更改符号链接的目标路径。

$ sudo ln -nfs [変更後のディレクトリのパス] /opt/apache-tomcat

生成符号链接,使位于/var/log子目录下的其他中间件与展开的Tomcat核心中生成的日志文件可供引用。

$ sudo ln -s /opt/apache-tomcat/logs /var/log/tomcat
$ sudo chown -h tomcat:tomcat /var/log/tomcat

为了将Tomcat作为操作系统的服务进行注册,需要使用root权限创建Unit。请使用vi命令等工具!

$ sudo vi /usr/lib/systemd/system/tomcat.service
# Systemd unit file for default tomcat
#
# To create clones of this service:
# DO NOTHING, use tomcat@.service instead.

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=oneshot
PIDFile=/opt/apache-tomcat/tomcat.pid
RemainAfterExit=yes
#EnvironmentFile=/etc/tomcat/tomcat.conf
#Environment="NAME="
#EnvironmentFile=-/etc/sysconfig/tomcat
ExecStart=/opt/apache-tomcat/bin/startup.sh
ExecStop=/opt/apache-tomcat/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat/bin/shutdown.sh;/opt/apache-tomcat/bin/startup.sh
SuccessExitStatus=143
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

当EC2实例启动时,将自动配置Tomcat服务的启动。

$ sudo systemctl enable tomcat.service
Created symlink from /Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.

验证自动启动设置是否已生效。如果”/usr/lib/systemd/system/tomcat.service”后面为”enabled”,则表示自动启动已启用。

$ sudo systemctl status tomcat.service 
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2023-06-17 14:38:06 UTC; 7s ago
~(略)~

确认下载的Tomcat版本。

$ sudo /opt/apache-tomcat/bin/version.sh
Using CATALINA_BASE:   /opt/apache-tomcat
Using CATALINA_HOME:   /opt/apache-tomcat
Using CATALINA_TMPDIR: /opt/apache-tomcat/temp
Using JRE_HOME:        /
Using CLASSPATH:       /opt/apache-tomcat/bin/bootstrap.jar:/opt/apache-tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Server version: Apache Tomcat/9.0.76
Server built:   Jun 5 2023 07:17:04 UTC
Server number:  9.0.76.0
OS Name:        Linux
OS Version:     5.10.179-171.711.amzn2.x86_64
Architecture:   amd64
JVM Version:    17.0.7+7-LTS
JVM Vendor:     Amazon.com Inc.

将进行启动和操作确认。

$ sudo systemctl start httpd.service
$ sudo systemctl start tomcat.service
$ sudo systemctl status tomcat.service
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2023-06-17 14:38:06 UTC; 4min 52s ago
~(略)~

我将从浏览器访问EC2实例,以确认Tomcat页面是否能够显示出来。

Tomcat.JPG

最后

這次的工作完成的網站在這裡,如果你有興趣的話,請隨意查看!

请阅读以上提供的内容,并提出中国语言中的一个选项。

 

广告
将在 10 秒后关闭
bannerAds