Post

[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์œผ๋กœ ํ•œ๋‹ค.

Untitled

Untitled

Untitled

๊ธฐ์กด ์ธ์Šคํ„ด์Šค๋ฅผ 8080 ํฌํŠธ๋กœ ๋ผ์šฐํŒ…ํ•˜๋„๋ก ๋“ฑ๋กํ•œ๋‹ค.

Untitled

๐Ÿ’ก Jenkins์ฒ˜๋Ÿผ ์‘๋‹ต์„ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์—†๋Š” ์•ฑ์€ ํ—ฌ์Šค ์ฒดํฌ ๊ฒฝ๋กœ๋ฅผ ์‹ ๊ฒฝ ์“ฐ๊ธฐ ์–ด๋ ต๋‹ค. ์ž๋ฐ” ์•ฑ์€ ํ—ฌ์Šค ์ฒดํฌ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, Jenkins๋Š” ๊ธฐ๋ณธ ๊ฒฝ๋กœ ์‘๋‹ต์œผ๋กœ ์ƒํƒœ ๊ฒ€์‚ฌ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.


3. Jenkins ์„œ๋ธŒ๋„๋ฉ”์ธ ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€

Route53 โ†’ ํ˜ธ์ŠคํŒ… ์˜์—ญ์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ์„œ๋ธŒ๋„๋ฉ”์ธ์€ jenkins, ์œ ํ˜•์€ A + ๋ณ„์นญ(Alias) On์œผ๋กœ ํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๋Œ€์ƒ์„ Application/Classic Load Balancer ๋ณ„์นญ โ†’ ์„œ์šธ ๋ฆฌ์ „ โ†’ ๊ธฐ์กด ALB๋กœ ์ง€์ •ํ•œ๋‹ค.

Untitled

Untitled

โš ๏ธ ๋‘ ์„œ๋ธŒ๋„๋ฉ”์ธ(api, jenkins)์ด ๊ฐ™์€ ALB๋ฅผ ๋ณ„์นญ์œผ๋กœ ๊ฐ€๋ฆฌํ‚จ๋‹ค. IP๊ฐ€ ์•„๋‹ˆ๋ผ ALB DNS๋ฅผ ๋ณ„์นญ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋ฉฐ, ์‹ค์ œ ๋ถ„๊ธฐ๋Š” ๋‹ค์Œ ๋‹จ๊ณ„์˜ ๋ฆฌ์Šค๋„ˆ ๊ทœ์น™์ด ๋‹ด๋‹นํ•œ๋‹ค.


4. ๋ฆฌ์Šค๋„ˆ ๊ทœ์น™ ํŽธ์ง‘ (ํ˜ธ์ŠคํŠธ ํ—ค๋”)

EC2 โ†’ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์—์„œ ๊ธฐ์กด ALB์˜ HTTPS:443 ๋ฆฌ์Šค๋„ˆ๋ฅผ ํŽธ์ง‘ํ•œ๋‹ค. ๊ธฐ๋ณธ์€ ์ž๋ฐ” ์•ฑ ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ€์ง€๋งŒ, jenkins.๋„๋ฉ”์ธ์œผ๋กœ ์˜ค๋ฉด 8080 ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

Untitled

Untitled

๊ทœ์น™ ์ถ”๊ฐ€ โ†’ ์กฐ๊ฑด ์ถ”๊ฐ€์—์„œ ์กฐ๊ฑด ์œ ํ˜•์„ ํ˜ธ์ŠคํŠธ ํ—ค๋”๋กœ, ๊ฐ’์„ jenkins.๋„๋ฉ”์ธ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.

Untitled

Untitled

Untitled

Untitled

์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋ฉด ์ž‘์—…์€ ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ์ „๋‹ฌ โ†’ Jenkins(8080) ๋Œ€์ƒ ๊ทธ๋ฃน์„ ์„ ํƒํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„๋Š” 1๋กœ ๋‘๊ณ  ์ƒ์„ฑํ•œ๋‹ค.

Untitled

Untitled

์ด์ œ jenkins.๋„๋ฉ”์ธ์œผ๋กœ ์ ‘์†ํ•˜๋ฉด HTTPS๋กœ Jenkins์— ์—ฐ๊ฒฐ๋œ๋‹ค!

Untitled

์กฐ๊ฑด(ํ˜ธ์ŠคํŠธ ํ—ค๋”)์ „๋‹ฌ ๋Œ€์ƒ ๊ทธ๋ฃน์šฐ์„ ์ˆœ์œ„
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 ํ—ค๋”๋ฅผ ๋ณด๊ณ  ์•Œ๋งž์€ ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๊ธฐ์‹œํ‚จ๋‹ค.

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

Comments powered by Disqus.