AWS로 이사하기 - 6 - WEB

-·2023년 6월 5일
0

AWS로 이사하기

목록 보기
6/7
post-custom-banner

지난시간에 bastion host까지 구성을 했다.

이제 실제 web, was를 구성해보자

Instance 생성

네트워크 구성은 다해놨으니 인스턴스 생성해서 연결만 시키면 된다.

EC2 -> 인스턴스 시작

image

다른건 알아서 구성하면 되고 네트워크만 신경써서 해주면 된다.

  • VPC

    내가 생성한 VPC로 지정해준다.

  • 서브넷

    private 영역으로 만들어놓은 서브넷으로 지정해준다.

  • 퍼블릭 IP 자동할당

    private 서브넷에 생성할것이기 때문에 할당하면 안된다.

    비활성화로 해준다.

  • 보안그룹

    인바운드만 잘 설정하면 된다.

image

인스턴스 시작누르면 생성된다.

Bastion Host 연결

private subnet 안에 있으니 일단은 모든 연결이 막혀있다.

image

우리는 지금 이 구성을 하려고 하는거기 때문에

개발자들이 진입하는 통로인 Bastion Host, 사용자들이 이용할 ELB만 열어주면 된다.

인바운드로 가서 저부분만 추가해주면 된다.

일단 Bastion Host는 만들어 놨고 ELB는 아직 안만들어 졌으니 1개씩 연결해보자

방화벽에 Bastion Host 추가

image

인바운드 규칙 편집을 누르자

image

나는 설정을 해놔서 이렇게 뜨는데

SSH가 Bastion Host로 열어놓은것이고

TCP가 ELB로 열어놓은것이다

ELB는 아직 안만들었으니까 Bastion Host만 추가해보자

  1. 규칙 추가
  2. 유형을 SSH
  3. 소스는 IP를 직접 입력해도 되고 보안그룹을 지정해도되는데 보안그룹을 지정하는걸 추천한다.
  4. 규칙 저장

이렇게 하면 방화벽지정은 끝났다

Bastion Host 통해서 접속해보기

Bastion Host를 접속하는방법은 지난시간에 해보았고 이제 진짜 이걸 통해서 내가 작업할 서버에 들어가보자

역시 MobaXterm을 이용해서 할것이다.

image

Tunneling 이라는 기능으로 할것이다

눌러보면

image

새로 만들거기 때메 New SSH tunnel을 눌러준다.

image

  • Forwarded port

    내 로컬에서 쓸 포트를 설정한다.

  • SSH server

    Bastion Host의 접속 정보를 적어준다.

    SSH server - bastion host IP

    SSH login - user id, 인스턴스는 ec2-user이다.

    SSH port - 22

  • Remote server

    실제 작업할 서버 접속 정보를 적어준다.

    Remote server - 인스턴스 IP

    Remote port - 22

하고 Save를 해주면

저장이 되는데 인스턴스를 만들때 키페어를 추가해줬을것이다.

이제 키페어를 연결시켜줘야 된다.

image

열쇠모양을 클릭하고 pem으로 된 키페어 파일을 추가해주자

그다음에 시작버튼을 누르면 연결이 완료된것이다.

이럼 연결은 된거고 이제 진짜 접속을 해볼차례다

새로운 Session을 추가해주자

image

  • Remote host

    localhost

  • Specify usename

    username 적어준다.

  • Port

    터널링에서 설정한 forwarded port를 적어준다.

  • Use private key

    키페어파일을 추가해준다.

이제 진짜 모든셋팅이 끝났다.

image

저장한 session 으로 접속해보면 접속이 잘될것이다.

NGINX 설치

이거는 정말로 테스트 구성만 해보고 연결확인만 할려고 하는 프로젝트이기 때문에 설치하고 연결만 해보겠다.

크게 어려울건 없고

sudo yum install nginx

하면 설치된다.

설치가 됐다면 기동을 시켜보자

sudo systemctl start nginx

몇가지 커맨드를 보자면

  • 버전확인

    nginx -v

  • nginx 시작

    sudo systemctl start nginx

  • nginx 종료

    sudo systemctl stop nginx

  • nginx 재시작

    sudo systemctl restart nginx

일단은 이정도만 알아도된다.

ELB (Elastic Load Balancer)

Bastion Host로 들어가는 방법은 했고

이제 진짜 외부에서 들어가는 방법으로도 접속을 해보자

일단 로드밸런서를 생성해야된다.

EC2 -> 로드밸런서

create load balancer를 선택한다.

image

ALB를 선택합니다.

메뉴 하나씩 살펴봅시다.

image

  • name

    로드밸런서 이름

  • Scheme

    외부에서 들어오는거기 때문에 Internet-facing

  • IP adress type

    IPv4

image

  • VPC

    내 VPC지정

  • Mapping

    AZ를 선택하는건데 최소 2군데는 선택해야됨 이건 외부에서 들어오는거기 때문에 public subnet으로 설정해야됨

그담에 보안그룹은 알아서 지정해주고. 근데 어짜피 외부니까 다 열어두면된다.

이 부분이 실제 내가 밸런싱할 리소스를 지정하는건데

target group이라는거에 내 인스턴스 or Auto scaling group을 지정해주면된다.

image

근데 우리는 지금 아무 target group도 없기때문에 create target group해서 만들어주자

Target group

image

나는 지금 인스턴스만 있기때문에 Instances로 선택해준다.

그 외에는 이름, VPC, port등등 지정할수있는데 어려운건 없으니 알아서 선택하자

다음누르면

image

어느 인스턴스를 바라보게 할건지 나온다.

선택하고 보낼 port설정하고

include as pending below 설정하면 추가가 된다.

그다음에

Create target group를 눌러서 생성해주자

그럼 타겟그룹이 생성되었다.

다시 돌아와서

image

이제 그럼 여기에 타겟그룹이 뜰것이다.

그걸로 설정해주고

Create load balancer클릭해주면 로드밸런서가 생성된다.

Instance 보안설정

아까 우리는 instance 보안설정에서 bastion host 로 오는것만 열어주었다.

이제 로드밸런서도 추가해주자

image

모든TCP에 보안그룹을 지정해주자 그럼 로드밸런서로 오는요청만 받겠다는게 된다.

보안그룹으로 설정해놓으면 편한게 보안그룹이름만 보고 추가해주면된다.

이제 저장했으면

접속해보기

Route53같은걸로 도메인이름 지정해놨으면 그걸쓰면 되겠지만 난 아직 그런거 안해놨으니

로드밸런서의 DNS name으로 들어가보자

image

대시보드에 보면 DNS name을 볼수있다 이걸 복사해서 주소창에 쳐보자

image

난 NGINX기동만 시켜놨으니 이런페이지가 뜰것이다.

그럼 설정완료

마무리

혹시 페이지가 재대로 안뜨면 다른거는 잘못했을가능성 거의 없고 대부분 보안설정을 실수했거나 포트를 안맞춰놨거나 그럴것이다 다시한번 확인해보자

profile
거북이는 오늘도 걷는다
post-custom-banner

0개의 댓글