Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[김중현] 4주차 과제 - complete #33

Merged
merged 1 commit into from
Nov 18, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions 4주차 Server S-Day 과제/김중현_4주차_과제.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# 4주차 서버 세션
## ✏️ 기본 과제
```markdown
1. Bastion Host 없이 모든 서버에 퍼블릭 IP 부여하기
2. `http://www.도메인이름`으로 접근하면 사용자용 Nginx 웹 서버가 보이고, `http://dev.도메인이름`으로 접근하면 관리자용 웹 서버가 보인다.
```
<br>

## 기본 과제 인증
1. ALB 리스너 규칙
<img width="1792" alt="스크린샷 2023-11-10 오후 12 12 15" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/0ade04e1-da57-4b9b-8169-a5a2b2481140">

2. DNS 접근 <br>
→ [영상 인증](https://drive.google.com/file/d/18HRALxm2ToXLiYP-37LGisrY-CT0X97g/view?usp=sharing)
<br>

## 기본 과제 해결 과정
1. `ALB`에 dev용 리스너 규칙 추가
- 호스트 헤더값 `dev.joong.store`, 대상 그룹 `web-dev`로 전달되도록 설정한다.
- 규칙 우선수위 1순위는 user용으로 사용했기 때문에 2순위로 설정한다.
- cf) 규칙은 가장 낮은 값에서 가장 높은 값에 이르기까지 우선 순위에 따라 평가된다. 기본 규칙은 마지막에 평가된다.
<br>

2. `joongh.store` 도메인에 `dev.joongh.store`를 name으로 하는 A 레코드를 생성한다.
<img width="1426" alt="스크린샷 2023-11-10 오후 12 16 35" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/02f7bf5e-884d-4bf5-838f-a6d207c893f4">

<br>

3. 로컬에서 `web-dev`와 `web-user` 서버에 각 index.html 파일을 전송하고, `/usr/share/nginx/html` 경로에 있는 index.html를 대체한다.
<img width="899" alt="스크린샷 2023-11-10 오후 12 29 21" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/50b4b7f4-0178-4df8-9a75-58d248489f8c">

<img width="895" alt="스크린샷 2023-11-10 오후 12 36 35" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/b5c45db6-91dd-41f7-ae69-daad3764b4ee">

<br>

## 📚 심화 과제
```markdown
1. 기본 과제를 통해 구축한 서버를 활용해 ACM 발급 및 적용하기
2. ALB는 "https://도메인이름"으로 접근하면 Nginx 웹 서버가 보이고, "http://도메인이름"으로 접근하면 자동으로 HTTPS 트래픽으로 리다이렉트된다.
```
<br>

## 심화 과제 인증
- `https://도메인이름`으로 접근 시 Nginx 웹 서버가 보이고, `http://도메인이름`으로 접근 시 HTTPS로 리다이렉션이 일어나는 모습 <br>
→ [영상 인증](https://drive.google.com/file/d/1N_jYWKbYMFhBppjxn2_1AzpSe4fhRJsf/view?usp=sharing)
Comment on lines +43 to +45
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

심화 과제도 해주셨네요!👍 좀 시간이 걸렸을 텐데 이렇게 구현해주셔서 감동이에요:)


<br>

## 심화 과제 해결 과정
1. ACM 퍼블릭 인증서 요청
- 루트 도메인뿐만 아니라, 모든 서브 도메인에 대해서 인증서를 발급받기 위해 `joongh.store`, `*.joongh.store`로 도메인 이름을 설정한다.
<img width="1150" alt="스크린샷 2023-11-10 오후 12 56 15" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/2d7a8752-44f4-41ed-9b66-319c8332be99">

2. 생성된 인증서를 클릭해 모든 도메인에 대해 `Route53에서 레코드 생성`한다.
3. ALB의 리스너 규칙 중 `HTTP`를 `HTTPS`로 수정하고, 보안 리스너 설정 파트에서 위에서 생성한 ACM 인증서를 선택해준다.
<img width="649" alt="스크린샷 2023-11-10 오후 1 05 49" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/4c333224-cc07-4cdc-98cf-9a34981f6982">

<br>

4. HTTPS 트래픽을 허용하도록 ALB 보안그룹의 인바운드 규칙을 수정한다.
<img width="821" alt="스크린샷 2023-11-10 오후 1 09 19" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/2bf46d8c-86b5-48a4-b08e-40837a88aee9">
<img width="1754" alt="스크린샷 2023-11-10 오후 1 11 01" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/066f6e5b-0bde-428e-89d7-17ff1a18e16d">

<br>
<br>

5. HTTP로 들어오는 트래픽을 HTTPS로 리디렉션 해주는 HTTP 리스너를 생성한다.
<img width="841" alt="스크린샷 2023-11-10 오후 1 12 48" src="https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/80838501/bf75b59b-ee7d-47f7-ae88-2dfaf50a9ac8">

<br>

## 참고
- ALB 리스너 규칙
https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/listener-update-rules.html
Comment on lines +72 to +74
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ALB 리스너 규칙에 대해서 공식 문서를 참고해주셨네요! 이번 실습에서는 forward, redirect와 host-header를 다루었는데, 이 점을 공식 문서를 통해 공부해주신 점이 아주 좋아요:)