[2주차-3] 3티어 구축하기, AWS 초기설정, EC2 만들기

ka02·2023년 9월 19일

cloudcamp

목록 보기
7/15

3티어(3 tier) 구축하기

  1. DB-WAS 연동하기

    • mysql 서버 설치(DB)

      1) 설치
      #sudo apt-get install mariadb-server

      2) 서버 실행
      Mariadb 특정버전에서 서버 구동이 로컬서버 디폴트설정이다. 이 부분을 변경해 줘야 함.

      vi /etc/mysql/mariadb.conf.d/50-server.cnf

      bind-address = 0.0.0.0

      #systemctl start mariadb

      3) 계정 생성
      #mysql
      모든 호스트에서

      >> use mysql;
      >> create user 'mydb'@'%' identified by 'abcd';
      >> grant all privileges on . to mydb@'%';
      >> flush privileges;

      아래는 생략/제한된 호스트에서

      >> create user 'mydb'@'10.0.2.5' identified by 'abcd';
      >> grant all privileges on . to mydb@'10.0.2.5';
      >> flush privileges;

      WAS(tomcat server) 영역에서 4) 실행

      4) 접속 테스트
      mysql -u mydb -h 10.0.2.15 -p

    • 톰캣 서버 연동 작업 (톰캣was에서 작업)

      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-1.8.0-openjdk-amd64/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-1.8.0-openjdk-amd64/
      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

      source /etc/profile
      → 스크립트 파일을 수정한 후에 수정된 값을 바로 적용하기 위해 사용하는 명령어

      3) 홈페이지 소스 올리기
      /usr/local/tomcat/webapps/ROOT/conndb.jsp

  1. WEB_WAS_DB 연결 jsp

    • 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://20.0.2.6:3306/smart_mes";
      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 user_info where username='" + uid + "' and 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());
      }
      %>
      ```
  2. DB 서버_SQL 내 userInfo table 생성하기

    create database naver_com;
    use naver_com;
    
    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"), "관리자", 0);
    insert into userInfo (uid, uname, pass, profile, priority)values(1, password("user1"), "abcd", "행인1", 1);
    insert into userInfo (uid, uname, pass, profile, priority)values(2, password("user2"), "abcd", "행인2", 1);
    insert into userInfo (uid, uname, pass, profile, priority)values(3, password("user3"), "abcd", "행인3", 1);
  1. login.html 만들기
    위치: /usr/local/tomcat/webapps/ROOT
    ```
    <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 교재

  1. 초기설정
  • 루트사용자 : 루트가 IAM 사용자를 분배할 수 있음
  • IAM 사용자
  1. 서비스
  • IAM
  • EC2
  • S3
  • RDS
  • Lambda : 개발자들이 많이 사용하는 서비스
  • blockchain 데이터 위조 및 변조를 확인, 암호화 등

cf. OVF 파일 만들기
image 파일을 만들면 어느 환경, 운영체제에서나 install을 할 수 있다. vmware에서는 export to OVF로 만들면 img 파일을 만들 수 있음. 다른 컴퓨터에서 설치할 수 있음

키페어란?
이 키가 있는 암호화 파일을 인증키를 하나 주면 인증키를 가지고 콘솔에 접속 인증키!

0.0.0.0/0 → /0은 전체 IP, 어디서 접속해도 접속할 수 있도록
소스가 0.0.0.0/0인 규칙은 모든 IP 주소에서 인스턴스에 액세스하도록 허용합니다. 알려진 IP 주소의 액세스만 허용하도록 보안 그룹을 설정하는 것이 좋습니다.

/32 → 고정된 IP


  • AWS EC2 만들기

    aws에서 인스턴스 생성을 통해 인스턴스 만든 후 puTTy에서 저장한 키체인으로 로그인
    접속시 아이디 설정 전이라, ec2-user로 접속

adduser __ : 유저 추가
(cf. userdel 유저 삭제, id __ 조회)

passwd __ : 패스워드 추가

vi /etc/sudoers : password로 로그인 할 수 있도록 no를 yes로 변경

vi /etc/ssh/sshd_config : 유저명 추가하고 ALL 권한 주기
systemctl restart sshd

0개의 댓글