AWS 230327 기초4
향상된 패키지 관리도구 apt
-외부 파일을 리눅스에 설치하는 방법으론 크게 3가지가 있습니다.
- wget명령어로 다운하기 (window의 브라우저와 비슷합니다.)
- FTP통신으로 tar파일을 옮기고 압축해제하고 실행하기
- apt명령문으로 파일 다운받기
apt는 인터넷을 통해 원격에 저장된 패키지를 다운로드 받아서 설치해주는 향상된 패키지 관리 도구 입니다.
향상된 패키지 관리 도구 apt는 필요한 파일을 다운로드 하고 환경 설정까지 처리 해줍니다.
--apt 명령문은 다 관리자 권한이 필요함. 앞에 sudo를 붙여서 사용
패키지 관리 도구 업데이트
apt-get update
패키지 찾기
apt search <패키지명>
패키지 다운로드하기
apt-get install <패키지명>
echo $PATH
--경로를 입력하지 않아도 파일이 환경변수에 등록되어 있다면 관련 명령문을 실행가능하게 만듦
java파일이 있는 경로에 가서 java 파일명 을 하면 실행된다. sysout처럼.
실행(자바설치)
apt설치 시 환경변수 설정은 자동으로 이루어 집니다.
sudo apt-get update
sudo apt search openjdk-11
sudo apt-get install openjdk-11-jdk
자바버전 or 컴파일 버전 확인하기
java -version javac -version
자바실행파일 찾기
which java
- 모놀리식 아키텍쳐 웹서버
- 대표적인 웹서버 구현 아키텍쳐는 하나의 운영체제 위에 필요한 서비스를 모두 묶어서 구축하는 형식입니다.
- 전통적인 서버 구축 방식입니다.
- 하나의 서비스 또는 어플리케이션이 하나의 거대한 아키텍처를 가질 때, Monolithic 하다고 합니다.
- 데이터베이스는 같은 운영체제에 묶을 수도 있고, 다른 서버에 분리해서 구축할 수도 있습니다.
- RDS and EC2데이터베이스 and 웹서버에 데이터베이스
- 예제에서는 DB도 묶어서 실습합니다.
시나리오
-
- 자바설치
- mysql서버설치
- aws인 경우 서버 보안그룹 설정
- window환경에서 원격 mysql서버에 접속해보기
- 개발 서버에서 프로젝트 빌드
- FTP통신을 이용해서 빌드 된 파일을 전송
- 또는 깃으로 다운로드하고 리눅스에서 직접빌드 (서버스펙이 요구됨 , AWS 프리티어인 경우 어림도 없음)
- 스프링부트인 경우 백그라운드로 war파일 실행
- AWS인 경우 서버 스펙이 낮기 때문에 swap으로 메모리설정
- https://jins-dev.tistory.com/entry/전통의-소프트웨어-아키텍처-모델-모놀리식Monolithic-아키텍처
전통의 소프트웨어 아키텍처 모델 - 모놀리식(Monolithic) 아키텍처
모놀리식 아키텍처란, 마이크로서비스의 각광에 따라 마이크로서비스가 아닌 전통의 아키텍처를 지칭하는 의미로 생겨난 단어이다. 위의 그림에서 처럼 모든 모듈은 서비스 내부의 Product 형태
jins-dev.tistory.com
1. 자바설치 (위에서 함)
2. mysql설치
https://dev.mysql.com/doc/refman/8.0/en/alter-user.html
- apt방식으로 mysql을 받고 설치한다.
sudo apt search mysql
sudo apt-get install mysql-server
'mysqld is running as pid 숫자'
- mysql설치 후 초기 비밀번호 설정
mysql접속
sudo mysql
초기비번설정
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '비밀번호';
탈출
exit
루트로접속
mysql -u root -p
비밀번호 입력후 접속이 되면 정상 설치 완료
여기까지 과정은 최초 한번만.
3. AWS라면 보안그룹 설정으로 포트를 설정합니다. (4번이랑 연결해서 보세요)
- mysql의 포트개방 입니다.
- 설정하지 않더라도 ssh를 통해서 접속이 가능함. (보안을 강화하려면 설정하지 않음)
- 접속가능한 아이피주소 입니다.
- 0.0.0.0/0 인 경우 어디서든 접속 가능입니다. (보안에 매우 위험. 데이터베이스 해킹에 취약해짐)
- 본인의 공용 아이피를 적어서 본인 컴퓨터에서만 접속 가능하게 할 수 있습니다.
- ssh접속 포트개방 입니다.
- 반드시 열어야 함
- 접속가능한 아이피주소 입니다.
- 0.0.0.0/0 인 경우 어디서든 접속 가능입니다. (보안에 매우 위험)
- 본인의 공용 아이피를 적어서 본인 컴퓨터에서만 접속 가능하게 할 수 있습니다.
4. window환경에서 원격 mysql서버에 접속해보기
워크벤치에서 연결을 확인합니다. 2가지 방식이 있습니다.
방식1
mysql의 3306포트를 운영체제에서 개방한 경우 어디서든 들어갈 수 있습니다. (보안에 취약)
AWS CIRD를 0.0.0.0/0으로 하면 어디서든지 접근가능하다.
22번 포트로 들어가지 않고 EC2서버의 DB에 바로 들어갈 수 있다.
ip번호만 알고 있으면 root비밀번호 없이 바로 들어가는게 가능해진다.
방식2
3306포트는 개방하지 않고 리눅스에 ssh로 접속하여 mysql로 접근할 수 있습니다. (보다 안전)
--파일 변경 필요. ppk파일을 pem파일로 변경해야 한다.
--PuTTygen파일 실행하고 load에 ppk파일을 올림.
--하고, 위의 Conversions에서 Export OpenSSH key 선택
--저장할 때 이름은 똑같이 하고 확장자를 .pem으로.
--sql의 SSH Key File을 이 pem파일로 올리면 된다.
- 접속했으면 개발 환경의 데이터베이스를 운영을 백업하고, 동일한 환경을 구성합니다.
- MySQL 환경과 설정에 따라 대소문자를 구분하기도 하고 그렇지 않기도 한다.
- 컬럼이름은 모든 환경에서 대소문자를 구분하지 않는다.
create database spring default character set 'utf8';
create user 'spring' identified by 'spring';
grant all privileges on spring.* to 'spring';