이제 서버 구축과 서버 세팅을 해보도록 하겠습니다.
먼저, Bastion 서버에서 유저 세팅을 해주고, AMI를 생성한 후,
API-A 서버를 생성, API-A에서 아파치 톰캣을 설치 후, 이미지를 뜬 후 API-C 서버를 생성하도록 하겠습니다.
마지막으로 ALB와 TG를 구성하여 DNS를 통해 서비스에 접속해보도록 하겠습니다.
서비스에서 EC2로 들어가 인스턴스 탭에서 인스턴스 시작을 눌러줍시다.
처음으로 AMI Amazon Machine Image를 선택하게 되어있습니다.
기본적으로 Hypervisor 기반으로 가상화 서버를 생성할 때 이미지가 필요하듯,
아마존에서 서버를 생성할 때는 AMI라는 이미지들을 가지고 서버를 생성할 수 있습니다.
기본적으로 제공하는 이미지를 사용하셔도 되고
꼭 특정 버전의 이미지가 필요할 경우에는 마켓플레이스에서 구매해서 사용하실 수도 있습니다.
혹은 아마존에서 기본적으로 제공하는 이미지에 라이브러리나 유저 세팅등을 한 상태 그대로 백업 이미지를 만들어서
커스텀한 AMI를 통해 서버를 생성할 수 있습니다. (추후 AutoScailing등은 커스텀 AMI 필수)
기본적으로 제공하는 Amazon Linux 2를 사용하여 진행해보도록 하겠습니다.
아래 IP를 통해 Private IP를 지정할 수 있으며
서브넷의 CIDR가 기본적으로 가장 앞4개, 마지막 1개를 운영 목적으로 AWS에서 가져가기 때문에, 4번 부터 IP 대역을 사용할 수 있습니다.
Security Group을 통해 방화벽 역할을 제어할 수 있으며, SSH 접속을 위해 아래와 같이 설정해 줍니다.
마지막으로 서버를 생성하기 전 AWS가 처음 서버를 만들었을 때, SSH 접속을 pem키로 하기 때문에
키를 생성한 후 다운받아야 합니다 이 화면에서 밖에 다운이 안 되기 때문에 키 관리를 꼭 잘 해주시길 바랍니다.
이제 서버에 접속하기 위해서 EIP를 하나 할당해 주도록 합시다.
이제 리눅스 커맨드 창을 켜서 서버에 접속해 봅시다.
ssh -i 옵션이 pem키로 접속하는 옵션이며, admin default 유저는 ec2-user입니다.
만약 위와 같은 에러가 난다면 키 권한을 chmod 400을 주어 다시 접속하면 됩니다.
이제 유저 세팅을 해보도록 하겠습니다.
아래 명령어를 따라서 입력해 주시면 됩니다.
이제 유저 패스워드 기반으로 로그인 할 수 있도록 설정해보겠습니다.
해당 유저에 루트 권한을 주는 방법입니다.
마지막으로 sshd 를 restart시키면 이제는 pem키 없이 해당 유저 / 패스워드로 서버에 접속할 수 있게 됩니다.
유저 세팅까지 끝났으므로 해당 세팅이 된 서버로 AMI 를 생성하여 API 서버를 찍어보도록 하겠습니다.
먼저 인스턴스 탭에서 다음과 같이 AMI를 생성해줍니다.
현재 상태의 AMI가 생성됐다면, 기존에 EC2를 생성할 때와 같은 방법으로 서버를 구축하게 됩니다.
AMI 탭애서 시작하기를 눌러줍니다.
네트워크 부분을 Private한 곳으로 설정해주시고
## 유저데이터 수정 필요
유저 / 패스워드 기반 로그인을 위해서 아래와 같은 쉘 스크립트를 넣어줍시다.
Security Group을 Bastion 서버에서만 접속할 수 있도록 설정해줍시다.
나머지는 동일하게 구축하시면 되고 다 만들어 졌으면 해당 Private IP로 Bastion 서버에서 접속해 보도록 하겠습니다.
아래와 같이 접속이 되었다면 성공적으로 구성한 상태입니다.
이제, 해당 서버에 EPEL을 설치하고, Apache를 깔아 테스트 해보도록 하겠습니다.
스탠다드 리포지토리는 CentOS, Red Hat Enterprise Linux(RHEL) 또는 Amazon Linux 기반 배포에 설치할 수 있는 모든 패키지를 제공하지 않을 수 있습니다. EPEL 리포지토리를 활성화하면 패키지 설치에 추가 옵션이 제공됩니다. 따라서 다음과 같은 명령어를 수행해 설치하도록 하겠습니다.
아래 EPEL을 활성화 해주지 않을 경우 yum이 package를 제대로 찾지 못하는 경우가 발생하니 꼭 설치해주시기 바랍니다.
이제 apache를 깔고 세팅 실행해보도록 하겠습니다.
설치가 끝났다면 서비스가 자동으로 켜지도록 해줍시다.
아래 수행에서 웹페이지가 정상적으로 나온다면 성공한 것입니다.
이제 커스텀한 index.html을 넣어서 제대로 작동하는지 살펴보겠습니다.
아래 경로에서 index.html을 다음과 같이 만들어 줍니다.
그리고 재시작을 해준 후 다음과 같이 로컬호스트를 호출했을때 나온다면 정상적으로 수행된 것입니다.
자 이제, 세팅이 끝난 해당 서버를 AMI를 생성해서 C존도 생성해주시면 다음과 같은 구성이 끝납니다.
C존 서버의 index.html은 API-C로 만들어주세요
AMI 생성 및 AMI를 통한 서버 생성은 위에서 똑같이 다뤘기에 똑같이 수행하시면 되겠습니다.
다음 포스트에서는 ALB를 통해 실제 해당 서비스에 접근해보도록 하겠습니다.
출처: AWS Network 기본 구성 구축 - 3 (EC2, AMI, User Setting) (tistory.com)
'[AWS-SM] > Bastion' 카테고리의 다른 글
[참고][Etc] Bastion Host 터널링 SSH 접속하기 (0) | 2023.03.10 |
---|