지난시간에 bastion host까지 구성을 했다.
이제 실제 web, was를 구성해보자
네트워크 구성은 다해놨으니 인스턴스 생성해서 연결만 시키면 된다.
EC2 -> 인스턴스 시작
다른건 알아서 구성하면 되고 네트워크만 신경써서 해주면 된다.
VPC
내가 생성한 VPC로 지정해준다.
서브넷
private 영역으로 만들어놓은 서브넷으로 지정해준다.
퍼블릭 IP 자동할당
private 서브넷에 생성할것이기 때문에 할당하면 안된다.
비활성화로 해준다.
보안그룹
인바운드만 잘 설정하면 된다.
인스턴스 시작누르면 생성된다.
private subnet 안에 있으니 일단은 모든 연결이 막혀있다.
우리는 지금 이 구성을 하려고 하는거기 때문에
개발자들이 진입하는 통로인 Bastion Host, 사용자들이 이용할 ELB만 열어주면 된다.
인바운드로 가서 저부분만 추가해주면 된다.
일단 Bastion Host는 만들어 놨고 ELB는 아직 안만들어 졌으니 1개씩 연결해보자
인바운드 규칙 편집을 누르자
나는 설정을 해놔서 이렇게 뜨는데
SSH가 Bastion Host로 열어놓은것이고
TCP가 ELB로 열어놓은것이다
ELB는 아직 안만들었으니까 Bastion Host만 추가해보자
- 규칙 추가
- 유형을 SSH
- 소스는 IP를 직접 입력해도 되고 보안그룹을 지정해도되는데 보안그룹을 지정하는걸 추천한다.
- 규칙 저장
이렇게 하면 방화벽지정은 끝났다
Bastion Host를 접속하는방법은 지난시간에 해보았고 이제 진짜 이걸 통해서 내가 작업할 서버에 들어가보자
역시 MobaXterm을 이용해서 할것이다.
요 Tunneling 이라는 기능으로 할것이다
눌러보면
새로 만들거기 때메 New SSH tunnel을 눌러준다.
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를 해주면
저장이 되는데 인스턴스를 만들때 키페어를 추가해줬을것이다.
이제 키페어를 연결시켜줘야 된다.
열쇠모양을 클릭하고 pem으로 된 키페어 파일을 추가해주자
그다음에 시작버튼을 누르면 연결이 완료된것이다.
이럼 연결은 된거고 이제 진짜 접속을 해볼차례다
새로운 Session을 추가해주자
Remote host
localhost
Specify usename
username 적어준다.
Port
터널링에서 설정한 forwarded port를 적어준다.
Use private key
키페어파일을 추가해준다.
이제 진짜 모든셋팅이 끝났다.
저장한 session 으로 접속해보면 접속이 잘될것이다.
이거는 정말로 테스트 구성만 해보고 연결확인만 할려고 하는 프로젝트이기 때문에 설치하고 연결만 해보겠다.
크게 어려울건 없고
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
일단은 이정도만 알아도된다.
Bastion Host로 들어가는 방법은 했고
이제 진짜 외부에서 들어가는 방법으로도 접속을 해보자
일단 로드밸런서를 생성해야된다.
EC2 -> 로드밸런서
create load balancer를 선택한다.
ALB를 선택합니다.
메뉴 하나씩 살펴봅시다.
name
로드밸런서 이름
Scheme
외부에서 들어오는거기 때문에 Internet-facing
IP adress type
IPv4
VPC
내 VPC지정
Mapping
AZ를 선택하는건데 최소 2군데는 선택해야됨 이건 외부에서 들어오는거기 때문에 public subnet으로 설정해야됨
그담에 보안그룹은 알아서 지정해주고. 근데 어짜피 외부니까 다 열어두면된다.
이 부분이 실제 내가 밸런싱할 리소스를 지정하는건데
target group이라는거에 내 인스턴스 or Auto scaling group을 지정해주면된다.
근데 우리는 지금 아무 target group도 없기때문에 create target group해서 만들어주자
나는 지금 인스턴스만 있기때문에 Instances로 선택해준다.
그 외에는 이름, VPC, port등등 지정할수있는데 어려운건 없으니 알아서 선택하자
다음누르면
어느 인스턴스를 바라보게 할건지 나온다.
선택하고 보낼 port설정하고
include as pending below 설정하면 추가가 된다.
그다음에
Create target group를 눌러서 생성해주자
그럼 타겟그룹이 생성되었다.
이제 그럼 여기에 타겟그룹이 뜰것이다.
그걸로 설정해주고
Create load balancer클릭해주면 로드밸런서가 생성된다.
아까 우리는 instance 보안설정에서 bastion host 로 오는것만 열어주었다.
이제 로드밸런서도 추가해주자
모든TCP에 보안그룹을 지정해주자 그럼 로드밸런서로 오는요청만 받겠다는게 된다.
보안그룹으로 설정해놓으면 편한게 보안그룹이름만 보고 추가해주면된다.
이제 저장했으면
Route53같은걸로 도메인이름 지정해놨으면 그걸쓰면 되겠지만 난 아직 그런거 안해놨으니
로드밸런서의 DNS name으로 들어가보자
대시보드에 보면 DNS name을 볼수있다 이걸 복사해서 주소창에 쳐보자
난 NGINX기동만 시켜놨으니 이런페이지가 뜰것이다.
그럼 설정완료
혹시 페이지가 재대로 안뜨면 다른거는 잘못했을가능성 거의 없고 대부분 보안설정을 실수했거나 포트를 안맞춰놨거나 그럴것이다 다시한번 확인해보자