๐ฑ ์ด๋ฒ์ฃผ ์คํฐ๋ ๋ชฉํ, ์คํฐ๋ ๋ฒ์
- EC2 ์๋ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํด ๋ณด์
๐ฑ EC2 ์๋ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํด ๋ณด์
[Spring Boot] 08์ฅ. EC2 ์๋ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํด ๋ณด์
๐ฑ ์คํฐ๋ํ๋ฉด์ ์ด๋ ค์ ๋ ๋ถ๋ถ (ํธ๋ฌ๋ธ ์ํ )
๐ ๊ธ ๋ฑ๋ก ์ 403 ์ค๋ฅ ๋ฐ์
: EC2์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ํด์ ๊ถํ ๋ณ๊ฒฝ์ด ํ์ํ๋ฉฐ, ๋ณ๊ฒฝ ํ EC2์์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์คํํ์ฌ ์๋ฒ ๋ฐ์
use freelec_springboot2_webservice;
select * from user; // ์ ์ ์๋์ง ํ์ธ
update user set role = 'USER'; // ๊ธฐ์กด ์ ์ ๋ค์ ๊ถํ์ 'GUEST' -> 'USER' ๋ก ์์
๐ฑ ์๋กญ๊ฒ ๋ฐฐ์ด ๊ฒ
- EC2์ ๊น์ ์ค์นํ ํ ํ๋ก์ ํธ๋ฅผ clone, pull ๋ฐ๊ณ ์ฝ๋๊ฐ ์ ์ํ๋๋์ง ํ ์คํธ๋ก ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ
- yum ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด git ์ค์น
- mkdir ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ํ๋ก์ ํธ๋ฅผ ์ ์ฅํ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๊ณ cd ๋ช ๋ น์ด๋ก ๋๋ ํ ๋ฆฌ ์ด๋ ํ ๊น์์ https ์ฃผ์ ๋ณต์ฌ
- ๋ณต์ฌํ https ์ฃผ์๋ฅผ git clone ์งํ
- ll ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ํ์ผ๋ค ํ์ธ
- ./gradlew test๋ก ํ ์คํธ ๊ฒ์ฆ
- ๊นํ๋ธ ๋ด์ฉ์ด ์์ ๋์๋ค๋ฉด pull์ ์ด์ฉํด ์์ ๋ ๊นํ๋ธ ๋ด์ฉ์ ๊ฐ์ ธ์ด
- gradlew ์คํ ๊ถํ์ด ์๋ค๋ฉด chmod ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด +x๋ฅผ ์ฃผ์ด ์คํ ๊ถํ์ ์ค
- ์์ฑํ ์ฝ๋๋ฅผ ์๋ฒ์ ๋ฐฐํฌํ๊ธฐ ์ํด git์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ฐ๊ณ , ํ ์คํธ์ ๋น๋ํ ํ EC2 ์๋ฒ์์ ํ๋ก์ ํธ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ
- ์ด ๊ณผ์ ์ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด๋ค์ vim ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํด ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑํ์ฌ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ก ์ฌ์ฉ
- clientId์ clientSecret๋ฅผ ์ํด ์ธ๋ถ security ํ์ผ์ ๋ฑ๋กํด ClientRegistrationRepository๋ฅผ ์์ฑํ๋๋ก ํจ
- ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์์ฑ → clientId์ clientSecret์ ์ํ properties ์์ฑ → ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์์ฑ → ๊ถํ ์ถ๊ฐ → ์คํฌ๋ฆฝํธ ์คํ
- ๋ฐฐํฌ ์คํฌ๋ฆฝํธ deploy.sh ์์ฑ
- deploy.sh ์ฝ๋ ์ถ๊ฐ : git pull → ./gradlew build → build์ ๊ฒฐ๊ณผ๋ฌผ์ธ jar ํ์ผ์ ๋ณต์ฌ → ํ์ฌ ๊ตฌ๋์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ pid ํ์ธ → ๋ณต์ฌ๋์ด ์๋ก ์คํํ jar ํ์ผ์ ์ฐพ์ ๋ณ์์ ์ ์ฅ → ๊ณ์ ๊ตฌ๋๋๋๋ก nohup์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์คํ
- ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๋๋ก chmod ๋ช ๋ น์ด๋ก +x๋ฅผ ์ฃผ์ด ์คํ ๊ถํ์ ์ค
- ll ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ๊ถํ ํ์ธ
- ./deploy.sh ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์คํ
- nohup.out ํ์ผ์ ์ด์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ถ๋ ฅ๋๋ ๋ก๊ทธ๋ฅผ ํ์ธํ๋ฉด ClientRegistrationRepository๋ฅผ ์ฐพ์ ์ ์์
- ์ด๋ฅผ ์ํด ์๋ฒ์ clientId์ clientSecret ์ค์ ์ ์ง์ ๊ฐ์ง๊ณ ์๊ฒ ํ๊ธฐ ์ํด application-oauth.properties ์์ฑ
- application-oauth.properties ์ฝ๋ ์ถ๊ฐ : ๋ก์ปฌ์ application-oauth.properties ๋ด์ฉ ๋ถ์ฌ๋ฃ๊ธฐ
- deploy.sh ์ฝ๋ ์์ : nohup์ผ๋ก jar ํ์ผ ์คํ ์, application-oauth.properties๋ฅผ ์ฐ๋๋ก ์์
- ๋ค์ ./deploy.sh ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์คํ
- nohup.out ํ์ผ์ ์ด์ด ์ ์์ ์ผ๋ก ์คํ๋ ๊ฒ ํ์ธ
- ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์์ RDS ์ ๊ทผํ๋ ๋ฐฉ๋ฒ
- RDS ํ ์ด๋ธ ์์ฑ : JPA๊ฐ ์ฌ์ฉ๋ ์ํฐํฐ ํ ์ด๋ธ๊ณผ ์คํ๋ง ์ธ์ ์ด ์ฌ์ฉ๋ ํ ์ด๋ธ ์์ฑ
- ํ๋ก์ ํธ ์ค์ : MariaDB์ ์๋ฐ ํ๋ก์ ํธ๊ฐ ์ ๊ทผํ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ๋ฅผ build.gradle์ ๋ฑ๋ก ๋ฐ application-real.properties ํ์ผ์ RDS ํ๊ฒฝ profile ์ค์ ์ถ๊ฐ
- EC2 ์ค์ : RDS ์ ์ ์ ๋ณด๋ฅผ ๋ณดํธํ๋๋ก application-real-db.properties ์ค์ ํ์ผ์ ๋ง๋ ํ, ๋ณดํธํ rds ์ ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ํ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํด ์ค์ ํ์ผ๋ ํจ๊ป ํ์ฑํํ๋๋ก ์์
- ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์์ ํ ์คํํ์ฌ ๋ก๊ทธ ํ์ธ ํ ์น ์์ฒญ๋๊ตฌ์ธ curl ๋ช ๋ น์ด๋ก http ๋ฉ์์ง๋ฅผ ์์์ ์์ฒญํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ์ธ
- EC2์์ ์์ ๋ก๊ทธ์ธํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
- AWS ๋ณด์ ๊ทธ๋ฃน ๋ณ๊ฒฝ
- AWS EC2 ๋๋ฉ์ธ์ผ๋ก ์ ์
- ๋ก๊ทธ์ธ์ ์ํด ๊ตฌ๊ธ๊ณผ ๋ค์ด๋ฒ์ EC2 ์ฃผ์ ๋ฑ๋ก
๐ฑ PR
๐ฑ ์ฐธ์กฐํ๋ ๋งํฌ, ๋ฌธ์ ๋ฐ ์์คํ์ผ GIT ์ฃผ์
- '์คํ๋ง ๋ถํธ์ AWS๋ก ํผ์ ๊ตฌํํ๋ ์น ์๋น์ค' ๊ต์ฌ ํ์ฉ
'Community > GDSC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[211216-211220] WebApp Project 5์ฃผ์ฐจ (0) | 2021.12.18 |
---|---|
[211125-211202] WebApp Project 3์ฃผ์ฐจ (0) | 2021.11.27 |
[211108/211115] Dev Talk w. Core Team (0) | 2021.11.08 |
[211101-211107] 2021 GDSC Spring Study - 5์ฃผ์ฐจ (0) | 2021.11.06 |
[211025-211031] 2021 GDSC Spring Study - 4์ฃผ์ฐจ (0) | 2021.10.31 |