가입과 보안설정까지 마무리 되었다면, 본격적으로 AWS 서비스를 이용할 수 있다. 대표적인 S3, EC2, RDS 이용에 대한 설정을 이 포스팅에서 다루게 될 예정이다.
S3(Simple Storage Service)
버킷 만들기
- 일반 구성에서 버킷이름을 작성한다.(고유한 버킷이름만 가능-규약 참조)
- 퍼블릿 액세스 차단을 위한 버킷 체크 설정 해제
- 버킷 버전 관리 활성화
만들어진 버킷 속성 및 권한 설정하기
- 속성 최하단부에 위치한 '정적 웹 사이트 호스팅'을 활성화시킨다.
- 버킷 웹사이트 엔드포인트를 통해서 버킷에 접속이 가능하다.
- 권한 탭에서 버킷 정책을 편집한다.
- 정책 생성기를 통해서 쉽게 설정할 수 있다.
Select Type of Policy : S3 Bucket Policy
Effect : Allow
Principal : *
Actions : GetObject
Amazon Resource Name (ARN) : arn:aws:s3:::버킷명칭
- Add statement를 클릭하면 정책이 생성되어 복사할 수 있다.
- 복사한 것을 그대로 버킷정책에 넣고 저장하면 적용된다.
- ARN(Amazon Resource Name) 링크
- AWS 계정 권한 부여 : Principal 링크
EC2
인스턴스 생성하기
- 현재 지역(리전) 체크하기
- 인스턴스 시작을 눌러서 생성 시작 → Amazon Machine Image 선택
- 프리티어 단계에서 만들 수 있는 운영체제를 선택한다.
- 프리티어 단계에서 사용할 수 있는 인스턴스 유형을 선택한다.
다른 걸 클릭하면 과금되니 주의
- 기본 선택 완료 후 인스턴스 검토를 누르면 키페어를 받을 수 있다.
- 새 키페어 생성을 통해 키이름을 적고 다운로드 받는다.
- 확장자가 .pem 키를 다운 받으면 절대 잊어버리면 안되니 보관을 잘 해야한다.
네트워크 보안 설정하기
- 보안 메뉴에서 [인바운드 규칙]을 설정하여 접속권한을 부여한다.
- SSH 외 HTTP/사용자지정 TCP/MYSQL 등을 활용할 수 있다.
인스턴스 ssh 설정하기
ssh를 설정하기 앞서 미리 ssh가 루트 폴더 안에 있는지 확인하고 없으면 ssh 폴더를 만들어서 그안에 키페어(.pem)을 넣어둔다.
- ssh에 접속한 후,
chmod 400 키페어이름.pem
에 권한을 표시한다.
- 그 후
$ ssh -i ./키페어명.pem ubuntu@퍼블릭DNS 주소
를 입력하면 ssh로 인스턴스에 원격접속이 진행된다.
- 원격접속을 종료하려면
$ exit
를 하면 되고, 로그아웃되었다는 표시를 볼 수 있다.
ssh를 통해 인스턴스 접속 후, nodejs, npm 등 필요한 프로그램을 설치하는 등 자유롭게 진행이 가능하다.(git 이미 세팅되어있다.)
로컬에서 확인해봤던 것 처럼 express 서버를 하나 만들어서 git repo 에 등록한 후, ssh를 통해 git clone을 받아 켜볼 수 있다.
터미널을 종료하면 서버가 자동으로 꺼지기 때문에 이를 켜놓고 싶을 경우 pm2 를 설치하여 활용하면 된다.
- 인스턴스를 중지시켰다가 킬 경우, 퍼블릭 IPv4가 변경되는건지 혹은 다음날 다시 리셋되는지 확인예정
RDS 설정
- 현재 지역(리전) 체크하기
- 데이터베이스 생성을 눌러서 시작하면, 엔진옵션을 볼 수 있다. MySQL 등 본인이 사용하는 것으로 선택한다.
- 스크롤을 내려서 자격증명설정에 마스터 이름정보/마스터암호를 설정한다.(기억해둬야하는 정보)
- 연결 에서 추가연결 구성을 통해 퍼블릭액세스 가능을 '예'로 설정한다.
- 데이터베이스 포트는 자유롭게 지정한다.
- 데이터 베이스 생성이 완료되면 해당 데이터베이스를 눌러서 엔드포인트 경로와 설정한 포트번호 그리고 마스터 이름(구성 탭에서 확인 가능)을 확인해둔다.
- 설정이 끝나면 EC2 보안정책 설정해줘야 RDS연결이 된다.(중요!)
- ssh를 통해 접속한 인스턴스에서 RDS 설정을 확인해보거나, 로컬에서도 확인할 수 있다.
$ mysql -h 엔드포인트 경로 -P 포트번호 -u 마스터이름 -p 마스터암호
를 넣어서 접속을 시도한다.
- 추후 워크벤치 등에 등록시켜서 활용하면 편하다.
관련글
Connecting to a DB instance running the MySQL database engine
RDS 연결 에러가 발생합니다
[Issue] AWS RDS 연결 문제