이전 내용
[aws] 도커(Docker) 란?
이전 내용 [aws] AMI(Amazon Machine Image) 복제이전 내용 [aws] Elastic IP 할당받아 인스턴스에 연결하기이전 내용 [aws] VPC 피어링(peering)이전 내용 [aws] CloudFront이전 내용 [aws] IAM 계정 생성하기이전 내
puppy-foot-it.tistory.com
Tomcat 서버와 DB 연동하기
◆ 대략적인 순서
VPC 설정 편집 > AWS RDS DB 생성 > 프라이빗 서브넷 생성 > 서브넷그룹 생성 > 보안 그룹 생성 > Workbench >
[aws] 데이터베이스: RDS 생성하기
이전 내용 [aws] default.conf 란?이전 내용 [aws] 3-Tier의 첫걸음: 도메인 톰캣 화면으로 바꾸기이전 내용 [aws] 프라이빗 서브넷 생성하기(feat. NAT 게이트웨이)이전 내용 [aws] Bastion Hub 만들기이전 내
puppy-foot-it.tistory.com
가장 먼저 VPC 설정 편집에서 'DNS 호스트 이름 활성화' 체크 필수
서브넷 생성
[RDS] - 서브넷 그룹 생성
서브넷 그룹 생성 시에는 이중화를 위해 가용 영역에 두 개 추가
이제 [RDS] 에서 데이터베이스 생성
보안그룹도 생성하는 데, 인바운드 규칙은 워크 벤치 연결을 위해 모든 트래픽,
DB를 위해 MYSQL/Aurora 3306 포트 추가
인스턴스 생성
RDS에서 데이터베이스와 EC2에서 인스턴스 생성을 완료했으면, MySQL Workbench로 넘어가서 새로운 연결을 생성
이제 DB 생성을 할 수 있다.
Work Bench 연결 안 될 경우
만약에, Work Bench 연결이 안 되는 경우에는, 우분투를 사용하여 DB를 생성하는 방법도 사용할 수 있다.
◆ 대략적인 순서
우분투 인스턴스 생성 > Xshell 8 우분투 연결 > 마리아 DB 설치 > 마리아 DB 연동 > DB 생성 > 테이블 생성 > Xshell Bastion 서버 접속 > JDBC 드라이버 설치 > context.xml 수정 (엔드포인트) > web.xml 수정 > login.jsp 생성 > css 폴더 생성 > style.css 파일 생성
[aws] ubuntu(우분투) Xshell 8 연결하기
이전 내용 [aws] 데이터베이스: RDS 생성하기이전 내용 [aws] default.conf 란?이전 내용 [aws] 3-Tier의 첫걸음: 도메인 톰캣 화면으로 바꾸기이전 내용 [aws] 프라이빗 서브넷 생성하기(feat. NAT 게이트웨
puppy-foot-it.tistory.com
Ubuntu 인스턴스 생성
Ubuntu 인스턴스 생성 후, XShell 을 통해 우분투로 연결한 뒤 MariaDB를 설치한다.
# 우분투 MariaDb 설치
설치 전 패키지 업데이트
sudo apt update
sudo apt upgrade
#서버, 클라이언트 설치
# MariaDB 서버 설치
sudo apt install mariadb-server
# MariaDB 클라이언트 설치
sudo apt install mariadb-client
mysql -u admin -p -h 데이터베이스 엔드포인트
MariaDB가 설치된 이후에는 DB > 테이블을 생성하고, 테이블에 데이터를 넣고 조회해 본다.
# (DB 접속 후) DB 생성
CREATE DATABASE mydb;
USE mydb;
# 테이블 생성 (테이블명 users)
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);
# 테이블에 데이터 넣기
INSERT INTO users (username, password, email)
VALUES
('user1', 'password123', 'user1@example.com'),
('user2', 'securepass456', 'user2@example.com');
# 테이블 데이터 조회
SELECT * FROM users;
톰캣 서버에 Maria DB 연동하기
+ 내 홈페이지 출력되게 바꾸기
Xshell 8에서 베스쳔 서버(Bastion) 켜고 하단의 명령어를 한 줄씩 입력해 주면 된다.
cd 는 경로를 이동하는 명령어 인데, 해당 경로 내의 어떤 폴더 및 파일이 있는지 확인하기 위해 ls 단축키를 활용하면 좋다.
ssh -i 키파일 유저명@프라이빗 서브넷 프라이빗 ip 주소
# 루트 이동
sudo -i
cd /
cd home/
cd tomcat/
cd apache-tomcat-9.0.100/
cd lib
# jdbc 드라이버 설치 명령어
curl -O https://downloads.mariadb.com/Connectors/java/connector-java-3.2.0/mariadb-java-client-3.2.0.jar
# 설치 확인
ls
위 과정을 거치고 나면 톰캣 폴더의 라이브러리(lib) 폴더 내에 'mariadb-java-client-3.2.0.jar' 라는 파일이 생성(정확히는 다운로드)된다.
◆ context.xml 내용 바꾸기
그리고나서 경로를 이동해
apache-tomcat-9.0.100 폴더 내의 conf 라는 폴더에 접근한 다음,
context.xml 이라는 폴더를 열어 원래 있던 내용을 지우고 하단의 내용으로 바꿔 준다.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/mydb"
auth="Container"
type="javax.sql.DataSource"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="DB 계정명"
password="DB 비밀번호**"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://AWS 데이터베이스 엔드포인트:3306/mydb"/>
</Context>
◆ web.xml 내용 바꾸기
이번에는 apache-tomcat-9.0.100/webapps/ROOT/WEB-INF 폴더 내의 web.xml 파일을 열어 코드 내용을 바꿔준다.
(해당 코드는 문제 있으므로 하단에 나오는 전체 코드 복사 붙여넣기)
<!-- MariaDB DataSource 설정 -->
<resource-ref>
<description>MariaDB DataSource</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- login.jsp 파일을 루트 URL에 매핑 -->
<servlet>
<servlet-name>LoginPage</servlet-name>
<jsp-file>/login.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>LoginPage</servlet-name>
<url-pattern>/</url-pattern> <!-- 루트 URL로 매핑 -->
</servlet-mapping>
</web-app>
◆ 내가 만든 홈페이지 적용하기 (+ css 적용하기)
webapps/ROOT 내에 login.jsp 파일 생성하기 (내가 만든 페이지의 jsp 파일 내용 붙여넣기)
+ 해당 폴더에 css 라는 하위 폴더 만들기
+ css 폴더 내에 style.css 파일 만들기 (내가 만든 페이지의 css 파일 내용 붙여넣기)
[JSP] 기본 문법: 로그인 페이지 만들기 (+HTML, CSS)
이전 내용 [JSP] 이클립스에서 JSP 파일 만들어 실행하기이전 내용 [JSP] JSP 개념, IDEJSP란? ◆ JSP 정의 JSP는 Java 기반의 서버측 웹 개발 기술로, 동적인 웹 페이지를 생성하는 데 사용된다. HTML에 Jav
puppy-foot-it.tistory.com
그런데, 이렇게 실행을 하게되면 JSP 파일과 CSS가 연동이 안 되는 문제가 나타난다.
그래서 아까 web.xml의 마지막 줄의 </web-app> 부분을 삭제 후 아래 코드를 마지막 줄에 붙여넣는다.
[JSP CSS 연동되게 하는 코드]
web.xml 가장 마지막 줄에 붙여넣기
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/css/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/js/*</url-pattern>
</servlet-mapping>
</web-app>
▶ 이 태그는 특정 URL 패턴에 대해 어떤 서블릿이 요청을 처리할지를 정의하는 부분이다.
여기에서는 default라는 이름의 서블릿이 정의되어 있음을 나타내며, 이 서블릿은 대개 기본 서블릿으로 사용된다.
/css/* 및 /js/* 패턴은 해당 서블릿이 이 경로로 들어오는 요청을 처리하도록 연결된 것으로,
/*는 모든 하위 경로를 포함할 수 있음을 의미한다. 예를 들어, /css/style.css나 /js/app.js와 같은 요청이 있을 때 default 서블릿이 이 요청을 처리하게 된다.
[web.xml 전체 코드]
<!-- MariaDB DataSource 설정 -->
<resource-ref>
<description>MariaDB DataSource</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- login.jsp 파일을 루트 URL에 매핑 -->
<servlet>
<servlet-name>LoginPage</servlet-name>
<jsp-file>/login.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>LoginPage</servlet-name>
<url-pattern>/</url-pattern> <!-- 루트 URL로 매핑 -->
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/css/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/js/*</url-pattern>
</servlet-mapping>
</web-app>
그리고나서 내 도메인으로 들어간 다음, 앞서 만든 user 테이블 중 하나의 계정(emal 주소, 비밀번호)를 입력하고 login 버튼을 누르면!
(해당 JSP, CSS 는 교수님께서 실습용으로 만들어 놓으신 거 받아다 썼다. 이번 수업 시간엔 HTML, CSS 문법보다는 DB 적용이 더 급했으므로.)
다음 내용
[Cloud] Oracle Virtual Box 설치 및 실행
이전 내용 [aws] Tomcat 서버와 DB 연동하기이전 내용 [aws] 도커(Docker) 란?이전 내용 [aws] AMI(Amazon Machine Image) 복제이전 내용 [aws] Elastic IP 할당받아 인스턴스에 연결하기이전 내용 [aws] VPC 피어링(pe
puppy-foot-it.tistory.com
'프로그래밍 및 기타 > Cloud : AWS' 카테고리의 다른 글
[Cloud] 컨테이너 이미지, 컨테이너 생성 및 실행 (feat. 도커) (0) | 2025.02.26 |
---|---|
[Cloud] Oracle Virtual Box 설치 및 실행 (0) | 2025.02.26 |
[Cloud] 도커(Docker) 란? (0) | 2025.02.23 |
[Cloud] aws: AMI(Amazon Machine Image) 복제 (0) | 2025.02.21 |
[Cloud] aws - Elastic IP 할당받아 인스턴스에 연결하기 (0) | 2025.02.21 |