๐ 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
1๏ธโฃ check OS
- ๊ฒฐ๊ณผ๊ฐ Amazon Linux 2023์ด๋ผ๋ฉด,
compat-openssl10
is not available - ๐ฑ ๋์์!!!
2๏ธโฃ RPM ํ์ผ ๋ค์ด๋ก๋, GPG ํผ๋ธ๋ฆญ ํค ์ค์ ์ด ํ์ํ๋ค
3๏ธโฃ ๋ง์ mySQL ์ค์นํ๋ ค๋๊น ํผ๋ธ๋ฆญํค๋ฅผ import ํ๋ ๊ณผ์ ์์ ์ค๋ฅ
- ํผ๋ธ๋ฆญํค๊ฐ not validํ๋ค๊ณ ์ค๋ฅ๊ฐ ๋ฌ๋ค
4๏ธโฃ ์๋ชป๋ ํค๋ฅผ ์ง์ฐ๊ณ , ๋ง๋ ํผ๋ธ๋ฆญ ํค ๋ค์ด
- remove the incorrect key
- ์๋ฌ ๋ฉ์ธ์ง ๋ณด๋ฉด
key 3a79bd29
๊ฐ not 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
|
5๏ธโฃ ์ด์ mySQL client, server download ๊ฐ๋ฅ
- ์ด์ ์ด์ด์
medium.com/@mudasirhaji
๊ธ step 5
๋ถํฐ ์ด์ด์ ๋ฐ๋ผ๊ฐ์
โ
mySQL root ๋น๋ฐ๋ฒํธ ์ค์
- ๋น๋ฐ๋ฒํธ ์ ์ ๋
'๋น๋ฐ๋ฒํธ';
์ ๊ธฐ ์ฃผ์! - ์ด์ ์๋ก์ด ๋น๋ฐ๋ฒํธ๋ก
mysql -u root -p
๋ฅผ ํด์ mysql์ ์ ์ํ๊ฒ ๋๋ค
โ
SSH mySQL ์ ์ ์ฑ๊ณต
โ
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 ์์ ์ํด ํ์
|
โ
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;
โ
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์ ๋ ๋ฒ ๋๋ฅธ๋ค
|
1
2
3
| // ๋๋ 17์ค์นํ๊ณ ์ถ์ด์ 17 ์ค์น
sudo yum install java-17-amazon-corretto-headless.x86_64
sudo yum install -y java-17-amazon-corretto-devel
|
1
| sudo yum install java-17-amazon-corretto-devel -y
|
- ์ ์ค์น๋์๋์ง ํ์ธ
1
2
| java -version
javac -version
|
๐ด ๋ง์ฝ ์ค์นํ ์๋ฐ ๋ฒ์ ์ด ์ฌ๋ฌ๊ฐ๋ผ๋ฉด
- ๋ด๊ฐ ์ด๋ค ๋ฒ์ ์ ์ฌ์ฉํ ๊ฑด์ง ๋ช
ํํ๊ฒ ์ง์ ํด์ผ ํจ
๐ด Build fail, Cannot find a Java installation
- ๋ค์๊ณผ ๊ฐ์ ์๋ฌ ๋ฐ์
- ์์ฝํ์๋ฉด java์ค์น๊ฐ ์ ๋์ด ์๋ค๊ณ ํจ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':bootJar'.
> Could not resolve all dependencies for configuration ':runtimeClasspath'.
> Failed to calculate the value of task ':compileJava' property 'javaCompiler'.
> Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=17, vendor=any vendor, implementation=vendor-specific} for LINUX on x86_64.
> No locally installed toolchains match and toolchain download repositories have not been configured.
* Try:
> Learn more about toolchain auto-detection at https://docs.gradle.org/8.12.1/userguide/toolchains.html#sec:auto_detection.
> Learn more about toolchain repositories at https://docs.gradle.org/8.12.1/userguide/toolchains.html#sub:download_repositories.
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 13s
[ec2-user@ip-172-31-7-131 Moim-BE]$ ./gradlew -q javaToolchains
+ Options
| Auto-detection: Enabled
| Auto-download: Enabled
+ Amazon Corretto JRE 17.0.14+7-LTS
| Location: /usr/lib/jvm/java-17-amazon-corretto.x86_64
| Language Version: 17
| Vendor: Amazon Corretto
| Architecture: amd64
| Is JDK: false
| Detected by: Current JVM
|
๐ขย JAVA_HOME path
bashrc
์ JAVA_HOME path
๋ฅผ ์์
1
2
3
4
5
6
7
8
9
10
| export JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.x86_64
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.x86_64' >> ~/.bashrc
vi ~/.bashrc ## bashrc ์ด๊ณ
JAVA_HOME ## ๋ณ์ ์ค์ ํ์ธ
source ~/.bashrc ## bashrc์ ์ฅ ๋ช
๋ น์ด
echo $JAVA_HOME ํ์ ๋ ๊ฒฝ๋ก๊ฐ ์ ๋์์ผ
|
1
| ./gradlew -q javaToolchains
|
๐ GIT install
1
2
3
| sudo yum update -y
sudo yum install git -y
git โv
|
โ get SSH key
- ์ฌ๊ธฐ๊น์ง ํ๊ณ CICD๋ก ๋์ด๊ฐ๋ฉด SSH key๋ฅผ ์๋ํํ ์ ์์ด์ ๋ฐ๋ก ์ค์ ์ด ํ์ํ์ง ์๋ค.
https://medium.com/@qylong2021/clone-organization-owned-private-repository-on-aws-ec2-instances-fb712dbf03ad
โ add SSH key to Github
- ์ฌ๊ธฐ๊น์ง ํ๊ณ CICD๋ก ๋์ด๊ฐ๋ฉด SSH key๋ฅผ ์๋ํํ ์ ์์ด์ ๋ฐ๋ก ์ค์ ์ด ํ์ํ์ง ์๋ค.
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
|
1
2
3
| ssh-rsa
//key
= soheeparklee@gmail.com
|
โ EC2 ์์ฑํ ๋ ๋ง๋ .pemํค
๐ git action ํ๊ฒฝ๋ณ์ ์ค์
- git actions secrets variable์ค์
๐ EC2 ๋ด๋ถ ํ๊ฒฝ๋ณ์ ์ค์
https://cordcat.tistory.com/118
1
2
3
| vi ~/.bashrc ## bashrc ์ด๊ณ
## ํ๊ฒฝ๋ณ์ ์ค์
source ~/.bashrc ## bashrc์ ์ฅ ๋ช
๋ น์ด
|
๐ clone GIT project onto EC2
1๏ธโฃ HTTPS๋ก cloneํ๋ ๋ฐฉ๋ฒ
1
| git clone ##HTTPS์ฃผ์##
|
2๏ธโฃ SSH๋ก cloneํ๋ ๋ฐฉ๋ฒ
- ์ด ๋ฐฉ๋ฒ์ ์ฐ๊ธฐ ์ํด์๋ ์์
SSH key
๋ฅผ ์ธํ
์ ํด์ผ ํจ
1
| git@github.com:slid-todo/back.git
|
๐ Build
1
2
| # Build with clean, without test
./gradlew clean build -x test
|
- ๋ง์ฝ ์๋๋ค๋ฉด ๊ถํ ๋ฌธ์ ์ผ ์๋ ์์ผ๋ ๊ถํ ์ค์
1
2
3
4
5
6
7
8
9
10
11
| # ๊ถํ ์ฃผ๊ธฐ
chmod +x gradlew
# ์ด์ gradle ์ ๋จ
./gradlew -version
# ์ด์ ๋น๋ ๊ฐ๋ฅ
./gradlew build
./gradlew build -x test
./gradlew clean build -x test # Build with clean, without test
sudo ./gradlew build
|
๐ Run Java
1๏ธโฃ jar
ํ์ผ ์๋ ๊ณณ๊น์ง ๊ฐ์ ์คํ
1
| java -jar moim-0.0.1-SNAPSHOT.jar
|
2๏ธโฃ ๋๋ directory
๋ช
์ ํ ์คํ
1
2
| java -jar /home/ec2-user/back/build/libs/todo-0.0.1-SNAPSHOT.jar
# ํ๊ฒฝ๋ณ์ ์ค์ ์ํ๋ฉด ์คํจํจ
|
๐ด JDBC connection error
- ํ๊ฒฝ๋ณ์ ์ค์ ์ ์ ํด์ค์ ์ค๋ฅ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์
- ํ๊ฒฝ๋ณ์ ์ค์ ํด์ค์ผ ํจ
๐ Nohup์ผ๋ก ๋ฌด์ค๋จ๋ฐฐํฌ
1๏ธโฃ jar
ํ์ผ ์๋ ๊ณณ๊น์ง ๊ฐ์ ์คํ
- build โ libs ๊น์ง ๋ค์ด์์
1
2
| cd Moim-BE/build/libs
nohup java -jar moim-0.0.1-SNAPSHOT.jar &
|
2๏ธโฃ ๋๋ directory
๋ช
์ ํ ์คํ
1
| nohup java -jar /home/ec2-user/back/build/libs/todo-0.0.1-SNAPSHOT.jar &
|
โ๏ธ ์ฑ๊ณตํ์ธ ๋ฐฉ๋ฒ
1๏ธโฃ lsof
2๏ธโฃ netstat
3๏ธโฃ public IP, port 8080
- public IP port 8080์ผ๋ก ๋ค์ด๊ฐ์ ์ด๋ค ํ์ด์ง ๋จ๋์ง ํ์ธ
1
| http://3.34.218.217:8080/
|
๐ ๋๋ Run deploy.sh
- ๋ง์ฝ ์์ฑํด ๋
deploy.sh
๊ฐ ์๋ค๋ฉด run
1
2
| chmod +x deploy.sh
./deploy.sh
|
๐ 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
|
๐ 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/
๐ ์ด์ CICDํ๋ฌ ๊ฐ์๋ค