1. 사전 정보 확인
- AWS 로그인 링크: https://146141877526.signin.aws.amazon.com/console
- AWS 사용자이름
- AWS password
- 리소스 이름
- DB password
https://console.aws.amazon.com/console/home
console.aws.amazon.com
2. 진행 순서
1) 서버 배포 (EC2)
- EC2 콘솔을 통해 EC2 인스턴스를 생성한다
- 간단한 서버 애플리케이션을 생성하고 EC2 인스턴스에 코드를 배포한다
- 서버를 실행시키고 브라우저에서 서버에 접속할 수 있어야 한다
2) 클라이언트 배포 (S3)
- S3 콘솔을 통해 버킷을 생성한다
- 클라이언트 파일을 빌드하고 결과물을 버킷에 업로드 한다
- 정적 웹 호스팅 기능을 이용하여 클라이언트 코드를 배포한다
3) 데이터베이스 연결 (RDS)
- RDS 콘솔을 통해 RDS 인스턴스를 생성한다
- 로컬 터미널 혹은 EC2 인스턴스가 실행되고 있는 터미널을 통해 RDS 인스턴스에 연결한다
4)Getting Started
- 스프린트는 JWT 인증 방식을 사용한다
- 발급된 JWT 토큰을 Local Storage에 저장하는 방식을 사용하면 웹 사이트 주소에 HTTPS를 적용할 필요가 없다
- 쿠키와 세션을 인증 방식으로 사용하는 서비스를 배포하기 위해서는 추가적인 AWS 서비스를 사용해야 하며 소액의 과금이 발생할 수 있다
- application.properties 파일을 보며 어떤 환경변수들이 정의되어 있는지 확인한다 (실습 진행 시 주요한 역할을 한다)
5) 서버 배포 완료 확인 방법
- EC2 인스턴스를 통해서 서버를 실행한 뒤 Postman을 이용해 테스트를 진행한다
- 서버 배포 성공 시 'hello World' 응답이 출력된다
6) 클라이언트 배포가 완료되었을 때 확인 방법
- 생성한 버킷의 엔드포인트 주소에 접속하여 테스트를 진행한다
- 이름 입력란에 "김코딩"을, 비밀번호 입력란에 "1234"를 입력하여 로그인 테스트를 진행한다
- 클라이언트, 서버 배포 성공 시 로그인을 하면 메인 페이지로 이동할 수 있다
7) RDS 연결을 완료했을 때 확인 방법
- EC2 인스턴스 서버에 데이터베이스를 연결한 뒤, S3 버킷의 엔드포인트 주소에 접속하여 테스트를 진행한다
3. EC2 인스턴스 생성/연결
1) 인스턴스 생성
- AWS 로그인 페이지에 접속한다
- https://146141877526.signin.aws.amazon.com/console
- EC2를 선택한다
- 처음에는 표시가 없을 수 있으니 AWS 메뉴에서 EC2 서비스를 검색하고 접속한다
- 리전을 서울로 변경한다
- 인스턴스 생성을 시작한다
- 생성할 인스턴스의 이름을 설정한다
- 해당 인스턴스를 알아볼 수 있도록 적절할 이름을 작성한다
- 작성한 이름은 인스턴스의 이름임과 동시에 인스턴스의 태그로 자동 설정된다
- Key : Name / Value : (지금 작성한 인스턴스의 이름)
- 설정을 빈칸으로 남겨둘 수도 있으며 인스턴스가 생성된 이후 대시보드에서 설정할 수 있다

- 용도에 맞는 AMI를 선택한다
- 실습 과정에서는 ubuntu 인스턴스를 생성한다

- 프리 티어 사용 가능 태그를 확인하여 과금이 되지 않도록 유의한다
- ubuntu 인스턴스를 생성할 때 20버전 이하를 권장한다(배포 자동화 실습 때 22 버전은 이슈가 발생할 수 있다)

- 인스턴스 유형을 선택한다
- 생성하는 인스턴스의 CPU, RAM, 용량에 대한 선택이 가능하다
- 실습 과정에서는 프리 티어로 사용 가능한 t2.micro를 선택한다
- 리전에 따라 프리 티어로 사용 가능한 인스턴스 유형이 상이할 수 있다
- 인스턴스 유형을 선택하면 키 페어를 연결할 수 있는 항목이 보인다
- '새 키페어 생성'을 클릭하여 새로운 키 페어를 생성한다
- 생성되는 인스턴스를 원격으로 제어하기 위해서는 SSH 연결을 통한 원격접속이 필요하다
- 원격접속을 위해서 필요한 Key를 생성하고 다운로드 해야 한다
- SSH 프로토콜은 서로 다른 PC가 인터넷과 같은 Public Network를 통해 통신을 할 때 보안상 안전하게 통신을 하기 위한 통신 규약이다
- 주고받는 데이터를 암호화해서 해당 키 페어를 가지지 않은 사람은 통신되는 데이터를 알아볼 수 없기 때문에 보안상 안전한 통신 방법이다 -
인스턴스 생성 마지막 단계에서 다운로드 한 파일은 SSH 통신을 위한 키 페어 중 프라이빗 키가 기록된 파일이다
- .pem 확장자를 가지고 있다- 해당 키 페어 파일은 EC2 인스턴스에 연결을 할 때 사용하는 암호가 담긴 파일이다- .pem 파일은 관리에 유의해야 한다
- 현재는 실습용으로 로그인 하였으므로 키 페어가 생성되어 있기 때문에 에러가 발생한다
- 발행되어 있는 키 페어를 선택한다
- 많은 인스턴스가 생성되어 있는 경우 인스턴스 ID를 통해 인스턴스를 구분할 수 있다
- 실습 과정 중 인스턴스의 이름을 작성하지 않은 경우, 인스턴스 ID를 반드시 기억한다
- 우측 하단의 '모든 인스턴스 보기' 버튼을 클릭하여 생성한 인스턴스를 확인한다

- 인스턴스 생성 후 리소스 이름을 검색하면 배정받은 리소스에 빠르게 접근할 수 있다
- 인스턴스를 선택하면 하단에 세부 정보를 볼 수 있다
- 인스턴스 생성 단계에서 인스턴스의 이름을 작성하면 화면의 Name 컬럼에 ‘ - ‘ 대신 설정한 이름값을 확인할 수 있다
- 이름을 설정하지 않았을 경우 인스턴스 ID를 통해 인스턴스를 구분할 수 있다
- 생성된 인스턴스가 많아지는 경우 알아보기 힘들 수 있다
- 이름을 설정하지 않은 경우에는 아래와 같이 이름을 편집할 수 있다
- Name 컬럼에서 해당 인스턴스의 이름을 알아보기 쉽도록 설정해두면 각 인스턴스를 구분하기 용이하다
2) 인스턴스 연결(Session Manager)
- 인스턴스에 연결하기 위해 인스턴스ID를 클릭한다
- 인스턴스 요약 정보가 출력된다
- 연결을 클릭한다
- Session Manager 을 열고 연결을 클릭한다
- 세션 매니저를 이용하여 접속하면 웹 브라우저 환경에서 터미널이 실행된다
- 터미널을 bash 로 변경한다
2) 인스턴스 연결(SSH)
- 생성한 인스턴스에 원격접속하여 원격으로 인스턴스를 제어할 수 있다
- 인스턴스에 원격접속을 하기 위해서 필요한 것이 인스턴스를 생성할 때 다운로드한 키 페어 파일(.pem)이다
- SSH 연결을 통해서 인스턴스에 접속한다
- 인스턴스에 연결하기 위해 인스턴스ID를 클릭한다
- 인스턴스 요약 정보가 출력된다
- 연결을 클릭한다
- 로컬 터미널에서 SSH 프로토콜을 이용해서 인스턴스와 연결이 가능하다
- 먼저 다운로드했던 키 페어 파일(.pem)의 권한을 수정해야 한다
- chmod는 Linux의 기본 명령어로 change mode의 약어이며 해당 명령을 통해 파일에 대한 권한 설정이 가능하다
- 400은 4(소유자), 0(그룹), 0(전체)을 의미한다
- 권한은 읽기(4), 쓰기(2), 실행(1)로 구성되어 있다
: 400은 소유자에게 읽기 권한만 부여한 것이다
: 700(4+2+1)을 부여하면 소유자에게 읽기 + 쓰기 + 실행의 권한이 부여된다 - chmod 400 AWS_Deploy_kim.pem 은 AWS_Deploy_kim.pem 파일에 대해 소유자에게 일기 권한을 부여한다는 뜻이다
- 키 페어 파일(.pem)의 권한을 수정하지 않은 경우 권한이 너무 open되어있다는 경고 메시지와 함께 접속이 거절된다
- chmod 명령어를 이용해 다운로드한 키 페어 파일(.pem)의 권한을 수정한다
- 디렉토리 이동 후 진행하거나, 혹은 chmod 명령어를 실행하며 경로/파일이름 으로 실행할 수 있다
- chmod 400 ~/Downloads/AWS_Deploy_Practice.pem
- 파일 권한을 설정했다면 ssh 명령어를 통해 인스턴스에 접속할 수 있다
- ssh 접속을 위한 주소는 인스턴스를 클릭하면 출력되는 세부 정보 탭에서도 확인할 수 있다
- ssh 주소의 구조와 의미는 아래와 같다
- 터미널에 ssh key를 입력하고 연결한다
- yes 를 입력한다
- 경고문구와 함께 다른 세션이 종료되었음을 출력한다
- SSH 접속으로 인하여 웹 세션이 종료되었음을 확인할 수 있다
- 다시 접속하면 실습용이므로 권한이 없어서 액세스를 거부당한다
- 정상적으로 연결되면 아래와 같이 출력된다
'클라우드' 카테고리의 다른 글
Cloud - AWS 실습 - 클라이언트 배포 (0) | 2022.08.04 |
---|---|
Cloud - AWS 실습 - Security Group (0) | 2022.08.03 |
Cloud - AWS 실습 - EC2 인스턴스 서버 실행 (0) | 2022.08.03 |
Cloud - AWS(Amzon Web Service) (0) | 2022.08.02 |
Cloud - 기본 (0) | 2022.08.02 |