web instance, was instance를 구성하고, rds를 이용하여 서비스를 구성한다.
web은 외부 접속에 대해 80,443 포트의 연결만을 허용하고, 내 아이피에 대한 22번 포트 접속을 허용한다.
was는 톰캣을 구성하고, 22, 8080포트의 접속에 대해 web서버에서의 접근만을 허용한다.
rds는 mariadb를 구성하고 3306포트에 was에서의 접근만을 허용한다.
서비스를 구동하여 login.jsp를 동작하도록 완성
인스턴스, 보안그룹 생성 후 putty에서 ec2-user로 접속
adduser 계정이름
passwd 계정이름
vi /etc/ssh/sshd_config

vi /etc/sudoers

systemctl restart sshd
참고) 아래부터 JAVA 찾아서 설치하는데, 선생님은 yum install java로 그냥 바로 설치함. 이렇게 설치하는게 더 빠르긴 한데 아래는 list java로 java 찾아 설치하기
yum list java*
yum install java-1.8.0-amazon-corretto-devel.x86_64
java -version
아래처럼 나와서 버전 확인하고 설치함
openjdk version "1.8.0_382"
OpenJDK Runtime Environment Corretto-8.382.05.1 (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM Corretto-8.382.05.1 (build 25.382-b05, mixed mode)
javac -version
javac 1.8.0_382
yum install wget
wget http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.4/bin/apache-tomcat-9.0.4.tar.gz
tar xvzf ./apache-tomcat-9.0.4.tar.gz
mv ./apache-tomcat-9.0.4 /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh
→ AWS 퍼블릭IP주소:8800 // 톰캣 나오는지 확인하고 나오면 완료!
yum update
yum install nginx
systemctl enable nginx
location / {
index index.html index.htm index.jsp;
proxy_pass 13.125.217.248:8080;
}
nginx 재구동
systemctl start nginx (또는 service nginx start)
→ AWS 퍼블릭IP주소로 확인 // web, was 서버 모두 톰캣 구동되야 함


mysql -u admin -p -h 앤드포인트
use mysql;
create user 'mydb'@'%' identified by 'abcd';
grant all privileges on DATABASE이름.* to 'mydb'@'%';
flush privileges;
create database cloud_op_manager;
use cloud_op_manager;
create table userInfo (uid int, uname varchar(20), pass varchar(128), profile varchar(200), priority int );
insert into userInfo (uid, uname, pass, profile, priority)values(0, "admin", password("1234"), "a", 0);
insert into userInfo (uid, uname, pass, profile, priority)values(1, “abcd”, password("1234"), "b", 0);
insert into userInfo (uid, uname, pass, profile, priority)values(2, "abcd", password("1234"), "c", 0);
login.jsp 만들기
위치: /usr/local/tomcat/webapps/ROOT
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String uid = request.getParameter("username");
String pwd = request.getParameter("password");
String DB_URL = "jdbc:mysql://**database-was.cetwspri2qrn.ap-northeast-2.rds.amazonaws.com:3306/cloud_op_manager**";
String DB_USER = "mydb";
String DB_PASSWORD= "abcd";
String sel = "";
ResultSet rs = null;
Connection conn;
Statement stmt;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
stmt = conn.createStatement();
//사용자 정보 조회
sel = "select * from userInfo where **uname='" + uid + "' and pass=password('" + pwd + "')"**;
rs = stmt.executeQuery(sel);
if (rs.next()) {
out.println("Success");
}
else
out.println("Fail");
conn.close();
} catch(Exception e) {
out.println(e.getMessage());
}
%>
cf) jar 파일 라이브러리를 찾는 경로를 집어넣어 주는 것
```
1. wget https://dlm.mariadb.com/1965742/Connectors/java/connector-java-2.7.5/mariadb-java-client-2.7.5.jar
cp ./mariadb-java-client-2.7.5.jar /usr/lib/jvm/java-17-amazon-corretto/lib/
cp mariadb-java-client-2.7.5.jar /usr/local/tomcat/lib/
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.40.tar.gz
tar xvf mysql-connector-java-5.1.40.tar.gz
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/tomcat/lib/
2. 환경설정
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/**java-17-amazon-corretto/**
export CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/mariadb-java-client-2.7.5.jar:$CATALINA_HOME/lib/mariadb-java-client-2.7.5.jar
3. 설정변경 적용
source /etc/profile
4. 톰캣 재시작
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
5. 웹브라우저로 login.jsp 호출 확인
ex) http://13.125.245.185/login.jsp?username=abcd&password=1234
```
<html>
<body>
<form method="GET" action="./login.jsp">
login : <input type="text" name="username" value = ""/> </br>
passwd :<input type="text" name="password" value = ""/> <p>
<input type="submit" value="login">
</form>
</body>
</html>
AWS 3tier 구성은 여기서 끝 // 아래는 다음 진도

버킷 이름 : S3 버킷 이름명은 고유값으로 설정해야 함
객체 소유권 : ACL(외부에 접근하는 리스트를 만드는 것) 비활성화를 권장함, 비활성화 하면 룰을 직접 만들어줘야 함.
⭐S3 버킷정책 설정하기 : 객체 소유권 ACL을 비활성화 해서 내가 설정해야 함
삭제 : 파일 삭제하고 버킷 삭제가 가능함
ACL 비활성화시 정책 생성기를 통해 정책 만들고 정책에 넣기

actions는 get object, put object 추가, 이외에 actions은 검색해서 진행하기