[AWS] Https ์ ์ฉํ๊ธฐ2
๐ ๋ค์ด๊ฐ๋ฉฐ
์ง๋ ๊ธ์์๋ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ HTTPS๋ฅผ ์ ์ฉํ๋ค. ์ด๋ฒ์๋ ํ๋์ ALB๋ก ์ฌ๋ฌ ์๋น์ค์ HTTPS๋ฅผ ์ ์ฉํ๋ค. ์๋ก ๋ค๋ฅธ ํฌํธ๋ฅผ ์ฐ๋ ๋์ ๊ทธ๋ฃน(Jenkins 8080)์ ์ถ๊ฐํ๊ณ , ํธ์คํธ ํค๋ ๊ธฐ๋ฐ ๋ฆฌ์ค๋ ๊ท์น์ผ๋ก ์๋ธ๋๋ฉ์ธ์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋๋ ๋ณด๋ธ๋ค.
ํต์ฌ ์์ด๋์ด โ ํธ์คํธ ๊ธฐ๋ฐ ๋ผ์ฐํ ALB๋ L7์ด๋ผ HTTP ํค๋(Host)๋ฅผ ์ฝ์ ์ ์๋ค.
api.๋๋ฉ์ธ์ ์๋ฐ ์ฑ(9090)์ผ๋ก,jenkins.๋๋ฉ์ธ์ Jenkins(8080)๋ก โ ๊ฐ์ ALBยท๊ฐ์ 443 ํฌํธ๋ก ๋ค์ด์๋ ๋๋ฉ์ธ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ณด๋ผ ์ ์๋ค.
1. ๊ตฌ์ฑ ๊ทธ๋ฆผ
ALB ํ๋๊ฐ ๋ ์๋ธ๋๋ฉ์ธ์ ๋ฐ์, ํธ์คํธ ํค๋๋ก ๊ตฌ๋ถํด ๊ฐ๊ฐ์ ์๋น์ค๋ก ๋ถ๊ธฐํ๋ค.
flowchart TD
User(("๐ ์ฌ์ฉ์"))
ALB["โ๏ธ ALB (HTTPS 443)"]
R1{"Host ํค๋?"}
TG1["๐ฏ ๋์๊ทธ๋ฃน<br/>์๋ฐ์ฑ 9090"]
TG2["๐ฏ ๋์๊ทธ๋ฃน<br/>Jenkins 8080"]
User -- "api.๋๋ฉ์ธ" --> ALB
User -- "jenkins.๋๋ฉ์ธ" --> ALB
ALB --> R1
R1 -- "api.*" --> TG1
R1 -- "jenkins.*" --> TG2
2. Jenkins์ฉ ๋์ ๊ทธ๋ฃน ์ถ๊ฐ
EC2 โ ๋ก๋๋ฐธ๋ฐ์ฑ โ ๋์ ๊ทธ๋ฃน์์ ๋์ ๊ทธ๋ฃน์ ํ๋ ๋ ๋ง๋ ๋ค. ์ ํ์ ์ธ์คํด์ค, ์ด๋ฆ์ *-jenkins, ํ๋กํ ์ฝ/ํฌํธ๋ Jenkins๊ฐ ์ฐ๋ HTTP:8080์ผ๋ก ํ๋ค.
๊ธฐ์กด ์ธ์คํด์ค๋ฅผ 8080 ํฌํธ๋ก ๋ผ์ฐํ ํ๋๋ก ๋ฑ๋กํ๋ค.
๐ก Jenkins์ฒ๋ผ ์๋ต์ ์ปค์คํ ํ ์ ์๋ ์ฑ์ ํฌ์ค ์ฒดํฌ ๊ฒฝ๋ก๋ฅผ ์ ๊ฒฝ ์ฐ๊ธฐ ์ด๋ ต๋ค. ์๋ฐ ์ฑ์ ํฌ์ค ์ฒดํฌ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ค ์ ์์์ง๋ง, Jenkins๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก ์๋ต์ผ๋ก ์ํ ๊ฒ์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ค.
3. Jenkins ์๋ธ๋๋ฉ์ธ ๋ ์ฝ๋ ์ถ๊ฐ
Route53 โ ํธ์คํ
์์ญ์์ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค. ์๋ธ๋๋ฉ์ธ์ jenkins, ์ ํ์ A + ๋ณ์นญ(Alias) On์ผ๋ก ํ๊ณ , ํธ๋ํฝ ๋ผ์ฐํ
๋์์ Application/Classic Load Balancer ๋ณ์นญ โ ์์ธ ๋ฆฌ์ โ ๊ธฐ์กด ALB๋ก ์ง์ ํ๋ค.
โ ๏ธ ๋ ์๋ธ๋๋ฉ์ธ(
api,jenkins)์ด ๊ฐ์ ALB๋ฅผ ๋ณ์นญ์ผ๋ก ๊ฐ๋ฆฌํจ๋ค. IP๊ฐ ์๋๋ผ ALB DNS๋ฅผ ๋ณ์นญ์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ฒ์ด ํต์ฌ์ด๋ฉฐ, ์ค์ ๋ถ๊ธฐ๋ ๋ค์ ๋จ๊ณ์ ๋ฆฌ์ค๋ ๊ท์น์ด ๋ด๋นํ๋ค.
4. ๋ฆฌ์ค๋ ๊ท์น ํธ์ง (ํธ์คํธ ํค๋)
EC2 โ ๋ก๋ ๋ฐธ๋ฐ์์์ ๊ธฐ์กด ALB์ HTTPS:443 ๋ฆฌ์ค๋๋ฅผ ํธ์งํ๋ค. ๊ธฐ๋ณธ์ ์๋ฐ ์ฑ ๋์ ๊ทธ๋ฃน์ผ๋ก ๊ฐ์ง๋ง, jenkins.๋๋ฉ์ธ์ผ๋ก ์ค๋ฉด 8080 ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ณด๋ด๋ ๊ท์น์ ์ถ๊ฐํ๋ค.
๊ท์น ์ถ๊ฐ โ ์กฐ๊ฑด ์ถ๊ฐ์์ ์กฐ๊ฑด ์ ํ์ ํธ์คํธ ํค๋๋ก, ๊ฐ์ jenkins.๋๋ฉ์ธ์ผ๋ก ์ง์ ํ๋ค.
์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด ์์ ์ ๋์ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌ โ Jenkins(8080) ๋์ ๊ทธ๋ฃน์ ์ ํํ๋ค. ์ฐ์ ์์๋ 1๋ก ๋๊ณ ์์ฑํ๋ค.
์ด์ jenkins.๋๋ฉ์ธ์ผ๋ก ์ ์ํ๋ฉด HTTPS๋ก Jenkins์ ์ฐ๊ฒฐ๋๋ค!
| ์กฐ๊ฑด(ํธ์คํธ ํค๋) | ์ ๋ฌ ๋์ ๊ทธ๋ฃน | ์ฐ์ ์์ |
|---|---|---|
jenkins.๋๋ฉ์ธ | Jenkins (8080) | 1 |
| (๊ธฐ๋ณธ) | ์๋ฐ ์ฑ (9090) | ๋ง์ง๋ง |
๐ก ๋ฆฌ์ค๋ ๊ท์น์ ์ฐ์ ์์ ๋ฎ์ ๋ฒํธ๋ถํฐ ํ๊ฐ๋๊ณ , ์ด๋ ๊ท์น์๋ ์ ๊ฑธ๋ฆฌ๋ฉด ๊ธฐ๋ณธ ๊ท์น์ผ๋ก ๊ฐ๋ค. ๊ทธ๋์ ํน์ ์กฐ๊ฑด(
jenkins.*)์ ์ฐ์ ์์ 1์ ์ฃผ๊ณ , ๋๋จธ์ง๋ ๊ธฐ๋ณธ(์๋ฐ ์ฑ)์ผ๋ก ํ๋ ค๋ณด๋ธ๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
ALB ํธ์คํธ ๊ธฐ๋ฐ HTTPS ๋ถ๊ธฐ
โโ ๋์๊ทธ๋ฃน ์๋น์ค๋ณ๋ก(์๋ฐ 9090 / Jenkins 8080)
โโ ๋ ์ฝ๋ apiยทjenkins ์๋ธ๋๋ฉ์ธ โ ๊ฐ์ ALB(๋ณ์นญ)
โโ ๋ฆฌ์ค๋๊ท์น ํธ์คํธ ํค๋ ์กฐ๊ฑด โ ๋์ ๊ทธ๋ฃน ๋ถ๊ธฐ
โโ ์ฐ์ ์์ ํน์ ์กฐ๊ฑด ๋จผ์ , ๋๋จธ์ง๋ ๊ธฐ๋ณธ
| ๊ฐ๋ | ํ ์ค ์ ์ |
|---|---|
| ํธ์คํธ ๊ธฐ๋ฐ ๋ผ์ฐํ | Host ํค๋๋ก ๋์ ๋ถ๊ธฐ(L7) |
| ๋ฆฌ์ค๋ ๊ท์น | ์กฐ๊ฑด โ ๋์ ๊ทธ๋ฃน ์ ๋ฌ |
| ๋ณ์นญ ๋ ์ฝ๋ | ์ฌ๋ฌ ์๋ธ๋๋ฉ์ธ โ ํ ALB |
ํ๋์ ALB๋ก ์ฌ๋ฌ ์๋น์ค์ HTTPS๋ฅผ ์ ์ฉํ๋ ํต์ฌ์ ํธ์คํธ ํค๋ ๊ธฐ๋ฐ ๋ฆฌ์ค๋ ๊ท์น์ด๋ค. ์๋ธ๋๋ฉ์ธ๋ง๋ค ๋ณ์นญ ๋ ์ฝ๋๋ก ๊ฐ์ ALB๋ฅผ ๊ฐ๋ฆฌํค๊ณ , ALB๊ฐ Host ํค๋๋ฅผ ๋ณด๊ณ ์๋ง์ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ถ๊ธฐ์ํจ๋ค.















Comments powered by Disqus.