Post

EC2, mysql install, S3, deploy on server

✅ EC2 생성

✅ EC2에 mySQL install

  • update위해 쓰이는 명령어
1
2
3
4
sudo yum update -y # For CentOS/RHEL based systems

sudo systemctl restart mysqld
sudo systemctl status mysqld

🔴 libcrypto, openSSL problem

Image

  • medium.com/@mudasirhaji을 쭉 따라서 설치하다가 오류 발생
  • libcrypto, openSSL오류가 났다.
  • 블로그 글에서는 GPG Key Issues라고 하는데,
  • 결과부터 말하면 GPG Key Issues문제가 맞다.
  • 블로그에서는 set gpgcheck=0라고 하는데, 이는 temporarily disable하는 방식이고 not advisable이라고 해서 근본적인 해결방법을 찾아보기로 하였다.

  • 하지만 사진에는 libcrypto, openSSL오류라고 떠서 아니라고 생각했음
  • 결론적으로, libcrypto, openSSL오류가 위 사진처럼 뜨면 GPG Key Issues문제가 맞음
  • 그 이유는 mySQL을 받는데 public key가 잘못 되었기 때문이다

1️⃣ check OS

  • mySQL을 설치하기 위해서는 libcrypto, openSSL이 필요하다
  • 그런데 Amazon Linux 2023는 compat-openssl10 설치가 안 된다.

  • OS를 확인해보자
1
cat /etc/os-release
  • 결과가 Amazon Linux 2023이라면, compat-openssl10 is not available
  • 😱 나잖아!!!

Image

2️⃣ RPM 파일 다운로드, GPG 퍼블릭 키 설정이 필요하다

3️⃣ 막상 mySQL 설치하려니까 퍼블릭키를 import 하는 과정에서 오류

  • 퍼블릭키가 not valid하다고 오류가 뜬다

Image

4️⃣ 잘못된 키를 지우고, 맞는 퍼블릭 키 다운

  • remove the incorrect key
  • 에러 메세지 보면 key 3a79bd29not correct하다고 했음
1
sudo rpm --erase gpg-pubkey-3a79bd29
  • import correct MySQL GPG key
1
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

Image

5️⃣ 이제 mySQL client, server download 가능

Image

Image

  • 이제 이어서 medium.com/@mudasirhajistep 5 부터 이어서 따라가자

✅ mySQL root 비밀번호 설정

Image

  • 비밀번호 적을 때 '비밀번호';적기 주의!
  • 이제 새로운 비밀번호로 mysql -u root -p를 해서 mysql에 접속하게 된다

✅ SSH mySQL 접속 성공

Image

✅ Access MySQL from Outside Using MySQL Workbench

  • medium.com/@mudasirhaji step 10
1
2
sudo vi /etc/my.cnf #configure 파일 수정
bind-address = 0.0.0.0 수정 위해 필요

Image

✅ mySQL 연결

  • 먼저 user root에게 권한 주어야 한다.
  • medium.com/@mudasirhaji step 10 참고
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
CREATE USER 'root'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Image

✅ MYSQL 한국어 입력 불가

  • 이 명령어를 EC2에 들어와 mysql command창에서 입력해야 작동
  • workbench에서 입력해봤자 반영 안됨❌
ALTER TABLE User CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Goal CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Todo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Complete CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Comment CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Likes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Follow CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

SHOW CREATE TABLE comment;

✅ JAVA install

1
2
sudo yum install java
//하고 tab을 두 번 누른다

Image

1
2
// 나는 17설치하고 싶어서 17 설치
sudo yum install java-17-amazon-corretto-headless.x86_64

Image

✅ GIT install

1
2
3
sudo yum update -y
sudo yum install git -y
git —v

✅ S3

https://kenkyuanime.com/2024%EB%85%84-%EB%B2%84%EC%A0%84aws-s3-%EC%84%B8%ED%8C%85%ED%95%98%EA%B8%B0/

✅ get SSH key

https://medium.com/@qylong2021/clone-organization-owned-private-repository-on-aws-ec2-instances-fb712dbf03ad

Image

✅ add SSH key to Github

https://gom20.tistory.com/294

  • 내 github SSH key에 추가 후 ssh -T git@github.com하려고 했지만 실패
  • permission denied라고 나옴
1
2
3
Trouble shooting
eval "$(ssh-agent -s)"  # Start the SSH agent
ssh-add ~/.ssh/zzikzzik_key  # Add your private key to the agent
  • cd ~/.ssh
1
2
3
ssh-rsa
//key
= soheeparklee@gmail.com

✅ git action 환경변수 설정

✅ EC2 생성할 때 만든 .pem키

  • 특히 SSH_PRIVATE _KEY
  • pem키는 이렇게 생겼음 Image

✅ EC2 내부 환경변수 설정

https://cordcat.tistory.com/118

1
2
vi .bashrc
source .bashrc

✅ clone GIT project onto EC2

1
git@github.com:slid-todo/back.git
1
2
java -jar /home/ec2-user/back/build/libs/todo-0.0.1-SNAPSHOT.jar
# 하였으나 환경변수 설정이 안 되어 실패

✅ logs보는 방법

1
2
3
4
[ec2-user@ip-172-31-12-182 ~]$ sudo chown ec2-user:ec2-user /logs
[ec2-user@ip-172-31-12-182 ~]$ chmod 755 /logs
[ec2-user@ip-172-31-12-182 ~]$ ls -ld /logs
drwxr-xr-x. 2 ec2-user ec2-user 60 Jan 18 00:01 /logs

✅ Build

1
2
3
4
5
6
7
8
9
10
권한 주기
chmod +x gradlew

이제 gradle 잘 됨
./gradlew -version

이제 빌드 가능
./gradlew build
./gradlew build -x test
sudo ./gradlew build

✅ Run Java

✅ Run deploy.sh

1
2
chmod +x deploy.sh
./deploy.sh

This post is licensed under CC BY 4.0 by the author.