안녕하세요 배배입니다.
기술블로그에 글을 작성한지 어느덧 두달이 가까이 되가는 것 같습니다.
현실의 삶이 바쁘기도 했지만, 서버 이전, SEO, 마케팅, 다음 서비스 기획 등..
많은 의사결정 속에 파묻혀 여러가지 분야를 신경쓰기가 참 힘들었다고 얘기를 늘어놓고 싶습니다 ㅎㅎ
하지만 저희 WIO는 무슨일이 있어도 멈추지 않습니다 !
근 2달 동안 Netlify 에서 AWS EC2로 서버를 이전하면서 많이 일들이 있었는데요, 그 간의 이슈들과 팁들을 시리즈로 정리하는 시간을 가져보도록 하겠습니다!
우선 저희 WIO레트로 서비스의 경우 AWS EC2 서버에서 nginx 웹서버를 설치하여 서비스 중에 있습니다.
(2023.05.01, 위오 공식 서비스 오픈)
저의 WIO레트로 서비스를 AWS EC2에서 운영하기까지의 과정을
간략한 목차로 설명하자면 아래와 같습니다.
step.1) AWS VPC에 Subnet 구성하기
-. AWS VPC 구성
-. 구성한 VPC 내부에 Public Subnet 생성
-. Internet Gateway를 Public Subnet에 연결
-. 인터넷 라우팅 테이블 구성
-. Public 보안 그룹 생성
step.2) AWS EC2 기동하여 Putty로 원격접속하기
-. 구성한 Subnet에서 EC2 기동
-. EC2(Linux 서버), Putty를 이용하여 원격 접속
step.3) AWS EC2,에 NGINX 설치하여 웹 서비스하기
-. EC2, Nginx 설치
-. Nginx 구성 정보 수정
-. 웹 서비스 확인(https, 도메인 적용 x)
step.4) AWS EC2에 https, 도메인 적용하기
-. AWS ACM 활용하여 SSL인증서 등록
-. AWS ALB 구성 및 SSL 연결
-. Route53에서 도메인 연결하기
-. AWS를 활용한 정상적 웹 서비스 운영 및 과금정책
크게 총 4단계로 AWS를 활용하여 웹 서비스하는 과정을 정리를 해보았는데요,
저희가 겪은 문제와 경험들을 모두 여러분께 공개하도록 하겠습니다 :)
바로 시작해보도록 하겠습니다!
------------------------------------------------------------------------------
이번 시간에 만들게 될 인프라 아키텍쳐는 아래와 같습니다.
서울 리전에 VPC를 생성하고 그 안에 Subnet을 구축하여 Internet에서 서버로 접근 할 수 있도록 만든다고 이해하시면 될 것 같습니다 ㅎㅎ
VPC 를 구성하기 앞서 저희 WIO의 모든 인프라 구성은 서울 리전에서 구성되었습니다.
※각 리전마다 EC2 과금 단가가 다르기 때문에 충분히 알아보고 선택하심을 추천드립니다.
추가로 Step.1 과정에서 발생하는 모든 리소스에 대한 과금은 무료입니다.
충분한 연습과 테스트가 가능하니 자유롭게 구성해보셔도 무방합니다.
이후에 EC2나 ELB, Route53와 같은 과금이 발생하는 서비스들의 과금 정책에 대해서도 전달드리도록 하겠습니다.
Step.1) AWS VPC에 Subnet 구성 후 EC2 기동하기
1. AWS VPC 구성
AWS의 계정은 이미 생성했다고 가정하고 넘어가도록 하겠습니다..
VPC 란 무엇이며 왜 구성해야하는 것인지 확인인지 먼저 확인해야할 필요가 있습니다.
Virtual Private Cloud의 약어인 VPC 는 쉽게 말해서 서비스를 운영하는데 있어서 개인이 운영할 수 있는 클라우드입니다.
클라우드 내에 여러 Subnet을 구성하고 그 안에 EC2와 같은 인스턴스들을 구성하여 확장 가능한 인프라를 사용할 수 있도록 도움을 주는 네트워크 서비스입니다.
VPC를 구성하는 것 만으로는 과금이 되지 않는 무료서비스이며 기존 AWS에서 제공하는 Default VPC를 사용할 수 있지만 저는 꼭, VPC 를 직접 생성해서 사용하시는 것을 추천드립니다!
VPC를 만드는 것은 매우 간단한데요,
1.1. https://aws.amazon.com 에 접속해줍니다.
1.2. 검색창에 VPC를 검색하여 VPC 구성 페이지까지 접속해줍니다!
1.3. 오른쪽 상단의 주황색 VPC 생성을 클릭하고 아래와 같이 입력해줍니다.
test VPC는 앞으로 생성할 VPC를 부르는 명칭이 될 것이므로 자유롭게 이름을 지어주시면 됩니다.
CIDR의 경우 일반적으로 10.0.0.0/16 을 많이 사용하나 제가 운영 인프라에 사용중인 VPC의 CIDR가 10.0.0.0/16 이기 때문에 10.1.0.0/16 으로 기입하였습니다 ㅎㅎ
나머지는 그대로 두고 VPC를 생성합니다!
2. 구성한 VPC 내부에 Public Subnet 생성
VPC를 생성 한 후 우리는 그 안을 더 잘게 쪼갤 수 있습니다.
바로 Subnet이라는 네트워크 기술인데요, 바로 한번 만들어 보겠습니다. (VPC만 생성해서는 활용할 수 없습니다.)
2.1. VPC 를 검색하여 Virtual Provate Cloud 하위 항목인 서브넷을 클릭해주세요!
2.2. 기존에 생성했던 VPC를 기입해주세요!
2.3. 아래 사진처럼 설정해주세요!
- 서브넷 이름 : 생성할 서브넷을 부를 명칭
- 가용 영역 : 가용영역의 경우 서울에는 총 4개의 가용영역이 있는데요, 고가용성 즉, 이중화를 위해 설계되도록 구성할 수 있답니다.
- IPv4 CIDR 블록 : 서브넷의 경우 VPC에 속한 서브넷이기때문에 VPC의 범위를 넘어나도록 구성하면 안되겠지요? 더 작은 단위로 입력해줍니다.
서브넷까지 생성이 완료되었습니다.
2.4. 마지막으로 생성한 서브넷을 선택하고 작업 하단의 서브넷 설정 편집을 선택합니다!
2.5. 퍼블릭 IPv4 주소 자동 할당 활성화를 선택하고 저장해주면 Subnet 설정은 마무리가 됩니다!
(아직 Public 상태는 아니며, 인터넷 게이트웨이와 인터넷 게이트웨이까지의 경로가 필요합니다!)
3. Internet Gateway를 Public Subnet에 연결
이제 기존에 생성했던 Subnet을 Public Subnet으로 만들어줄 차례입니다.
3.1. VPC 구성 페이지에서 인터넷 게이트웨이 생성을 선택해줍니다.
3.2. 원하는 명칭을 지어주고 저장을 눌러줍니다.
3.3. 생성한 게이트웨이를 선택하고 작업> VPC에 연결을 선택합니다!
3.4. 기존에 만들어둔 VPC를 기입하여 인터넷 게이트웨이를 연결시켜줍니다!
4. 인터넷 라우팅 테이블 구성
이 챕터에서는 라우팅 테이블을 생성하고, 인터넷 트래픽을 인터넷 게이트웨이로 보내는 경로를 라우팅 테이블에 추가한 다음 미리 생성한 Public subnet과 연결하게 됩니다.
4.1. VPC 구성 페이지에서 라우팅 테이블 항목의 라우팅 테이블 생성 버튼을 클릭합니다.
4.2. 기존 생성했던 VPC를 연결해주고, 저장을 클릭합니다!
4.3. 생성된 라우팅 테이블의 라우팅 항목에 라우팅 편집을 선택합니다.
4.4. 대상 : 0.0.0.0/0(모든 IP에 해당한다는 뜻입니다.) 을 기입하고 2번째 대상에 생성한 인터넷 게이트웨이를 선택해줍니다.
4.5.서브넷 연결 항목에서 서브넷 연결 편집을 클릭합니다.
4.6. 기존에 만들어둔 Public Subnet을 선택하고 연결을 저장해줍니다.
5. Public 보안 그룹 생성
VPC의 보안 그룹은 EC2에 허용되는 인바운드 및 아웃바운드 네트워크 트래픽을 지정할 수 있는데요, 보안그룹에 허용되지 않은 트래픽은 자동으로 거부되는 점 확인 바랍니다!!
5.1. VPC 구성 페이지의 보안 카테고리의 보안그룹을 클릭하고 오른쪽 상단의 보안 그룹 생성을 클릭해줍니다!
5.2. 기존에 생성한 VPC를 선택해줍니다!
5.3. 인바운드 규칙을 아래처럼 추가하고 생성해주세요!
인바운드 규칙의 경우 Client -> Server 로 가는 트래픽을 말하고
아웃바운드 규칙의 경우 Server -> Client 로 가는 트래픽을 말합니다!
아웃바운드의 경우 모든 트래픽이 나갈 수 있도록 설정하고
인바운드의 경우 저희가 웹 서비스를 할 수 있도록 22, 80, 443 포트를 열어주시면 됩니다!
각 포트의 내용은 아래와 같습니다!
22 Port : SSH라고 하는 이 포트는 서버에 원격으로 접속해서 작업할 수 있도록 허용해줌을 의미합니다! (Linux)
80 Port : HTTP 포트입니다.
443 Port : HTTPS 포트입니다. (Step의 마지막 단계인 HTTPS 구성을 위한 포트입니다!)
------------------------------------------
여기까지 나만의 인프라 아키텍쳐 설계가 완료되었습니다!
생각보다 글이 길어져서 복잡해 보일 수 있는데요,
나만의 집을 안전한 곳에 짓기 위한 땅을 마련했다고 보시면 될 것 같습니다.
다음 시간에는 저희가 만든 인프라 아키텍쳐 위에 EC2 를 구성하고 기동할 예정인데요.
아래 그림처럼 구성된다고 보시면 될 것 같습니다! ㅎㅎ
다음 Step에서는 본격적으로 EC2를 기동하고 Putty를 활용하여 원격접속까지 해보는 포스팅을 올려보도록 하겠습니다!
일교차가 큰 지금 시점, 감기조심하십시오.
배배였습니다.
'위오의 AWS 이야기' 카테고리의 다른 글
[AWS] AWS EC2에 https, 도메인 적용하기 [4] - [위오의 AWS이야기] (2) | 2022.11.10 |
---|---|
[AWS] AWS EC2에 NGINX 설치하여 웹서비스 하기 [3] / [위오의 AWS 이야기] (4) | 2022.11.07 |
[AWS] AWS EC2 기동하여 Putty로 원격접속하기 [2] / [위오의 AWS 이야기] (4) | 2022.10.31 |
댓글