AC 04/02 AWS

Bae Seong Jun·2024년 4월 2일

Acorn academy

목록 보기
65/70

비어있는 부분 pt 공부자료 참고해서 복습

나중에 탄력적 ip 별도로 삭제해야함

WINSCP 실행 - 고급 -SSH-인증- 개인키파일 설정하기

리눅스 터미널 기본 명령어

...

...

su : 권한없으면 입력해서 권한 부여
chmod 파일이나 디렉토리의 권한을 변경
읽기 쓰기 실행
7 7 7


sudo passwd
su 루트계정으로 변경

  vi \[경로]
  vi 파일명 
      vi test.sh
  vi /절대경로/파일명
      vi /tistroy/hagsig/test.sh
  vi 상대경로/파일명
      vi ./hagsig/test.sh\

vi /etc/ssh/sshd_config
:set number
:/Permit

34번째 줄 # 제거 후 yes로 변경
PermitRootLogin yes
esc -> :wq로 저장후 나가기
vi /etc/ssh/sshd_config로 수정되었는지 확인


sudo cp /home/ubuntu/.ssh/authorized_keys /root/.ssh

winscp를 ubuntu 계정으로 접속했었지만 ubuntu는 접속할 수 있는 것이 많이 없다.
그래서 winscp 재실행후 root로 접속 비번은 위에서 설정한 것으로

  1. 타임존 설정
    sudo timedatectl set-timezone Asia/Seoul
    timedatectl
    Asia/Seoul이 뜨면 된다.

  2. 언어팩 설치
    apt-get install language-pack-ko
    update-locale LANG=ko_KR.UTF-8
    su
    locale

  1. docker설치
    sudo docker --version
    sudo apt update
    sudo apt upgrade
    sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io
    sudo docker --version
    sudo systemctl status docker
    :q
    // docker가 업데이트되면 프로젝트와 버전이 맞지 않아서 실행되지 않을 수 있으므로 업그레이드 못하게하는 명령어
    sudo apt-mark hold docker-ce
    // 모든 사용자가 쓸 수 있게끔 허용
    sudo usermod -aG docker $USER
    // 권한 확인 ?
    sudo grep docker /etc/group

  1. Docker compose의설치
    sudo apt-get update
    아래 한문장
    sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
    sudo chmod +x /usr/bin/docker-compose
    sudo docker-compose --version
  1. Oracle 11g xe설치
    // 이거 이제 지원 안된다고함 (deprecation)
    // sudo docker pull jaspeen/oracle-xe-11g
    sudo docker pull oracleinanutshell/oracle-xe-11g
    sudo docker images
    // ora11폴더에서 앞으로 oracle 실행할 것임. 기억해두기
    sudo mkdir ora11
    cd ora11
    sudo vi docker-compose.yml
    i입력 저장 (중요한거 11521로 요청하면 1152로 요청함)
    ################## docker-compose.yml #####################
    version: '3' # 버전
    services:
    ora11g:
    container_name: ora11g # 컨테이너 이름
    image: oracleinanutshell/oracle-xe-11g # 사용할 이미지 : 버전
    environment:
    TdZ: Asia/Seoul # 타임존
    ports:
    - "11521:1521" # 포트 설정
    volumes:
    - /home/ubuntu/ora11g:/u01/app/oracle # 볼륨 설정 호스트 디렉토리 : 컨테이너 디렉토리
    ##########################################################################
    esc
    :wq!
    ls
    // 직접치기 cd ora11에서 해야함
    sudo docker-compose up -d
    (ora11폴더에서 )
    sudo docker ps

aws 에서 인스턴스 id 클릭 - 보안 클릭 - 보안그룹 클릭 - 인바운드 규칙 편집
1. 규칙추가- 11521- 사용자지정방식->ipv4로 변경 - 0.0.0.0/0
2. 규칙추가- 1521- 사용자지정방식->ipv4로 변경 - 0.0.0.0/0

인스턴스 재부팅


  1. 재부팅후 ora11g의 실행 (중요) (ubuntu 실행될 때마다 입력해줘야함) (oracledb 실행)
    cd ora11
    sudo docker-compose up -d
    sudo docker ps

sudo docker run --name oracle12 -d -p 11521:1521 oracleinanutshell/oracle-xe-11g
//오류나서 위의 설정 파일 작업을 이걸로 대체
// 문제점: 인스턴스 재시작마다 아래 테이블 설정을 다시 해줘야한다.

oracle developer 실행
계정 추가 aws_sys, system, oracle
호스트이름 : (퍼블릭 IPv4 주소 복사해서 입력)
포트 : 11521

sys에서 scott 계정 생성
create user scott identified by tiger;
grant connect, resource to scott;

계정 추가 aws_scott, scott, tiger
호스트이름 : (퍼블릭 IPv4 주소 복사해서 입력)
포트 : 11521

aws폴더-프로그램-scott.sql로 테이블 생성


########################## sql deveploer명령
create user scott IDENTIFIED by tiger;
grant resource, connect to scott;

  1. jdk11의 설치
    sudo apt-get purge openjdk*
    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get install openjdk-11-j아
    java -version
    # vim ~/.bashrc 에 다음 추가
    ###
    export JAVA_HOME=(dirname $(dirname $(readlink -f $(which java)))) export PATH=PATH:JAVAHOME/binvim /.bashrc파일의맨마지막으로이동exportJAVAHOME=JAVA_HOME/bin vim ~/.bashrc 파일의 맨 마지막으로 이동 export JAVA_HOME=(dirname (dirname $(readlink -f $(which java)))) export PATH=PATH:$JAVA_HOME/bin
    esc
    :wq
    source ~/.bashrc
    echo $JAVA_HOME
    echo $PATH | grep java

sudo update-alternatives --config java

환경변수 뭔가 잘 안된 것 같음


탄력적 IP 주소 설정
• 인스턴스 중지 후 재 실행 시 ip주소 변경 됨
=> 고정 IP를 설정 필요
• AWS에서 탄력적 IP 설정
• 생성된 탄력적 IP에 인스턴스 연결 필요
• 탄력적 IP로 DB 연결
단 탄력적 ip와 ec의 ssd용량은 과금의 원인이됨 인스턴스 삭제
후 별도 탄력적 ip삭제가 필요함

putty ubuntu@탄력적 아이피
로 이제 사용.
winscp도

oracle developer에서 aws_sys, aws_scott도 탄력적ip로 변경

프로젝트 application.properties -> 탄력적ip:11521 로 변경

#spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.url=jdbc:oracle:thin:@52.78.140.51:11521:xe

aws 8090포트도 열어줘야 배포한 jar 파일이 정상작동
나중에는 80포트로 서비스할 것이기 때문에, 80도 같이 열어주자.
인스턴스가 재실행되어야하므로 테이블도 다시...

winscp를 통해 jar파일 전송
인스턴스 -보안-보안그룹-편집-규칙추가-8090,80포트 하나씩 ipv4로 추가
그리고 인스턴스 중지 - 시작
테이블 다시 구성

sudo docker run --name oracle13 -d -p 11521:1521 oracleinanutshell/oracle-xe-11g
이름 중복 안되게 수정해서 입력

aws_sys에서 scott계정 다시 생성, 권한 부여
aws_scott에서 테이블 생성 sql 실행

실행

aws에서 java -jar [jar파일이름.jar]
http://\[탄력적ip]:8090/app/list 로 접근

마무리

중지 필수

profile
코딩 프로?

0개의 댓글