-
8월 15일 화요일 TIL 회고록 (AWS EC2, S3 생성)카테고리 없음 2023. 8. 15. 21:44
AWS EC2 인스턴스 생성하기
EC2
아마존 웹 서비스 (AWS)의 여러 서비스 중 가장 먼저 생겨난 서비스 중 하나로, 가장 범용적으로 사용되고 있다.
EC2는 독립된 컴퓨터 한대를 임대해서 사용할 수 있게 해주는 서비스이다.
EC2의 장점
- 마우스 클릭 몇 번만으로 컴퓨터 한대를 구성할 수 있다.
- 원하는 스펙의 가상 서버를 구축하고, 스펙을 사용한만큼의 비용만 지불한다.
- 스펙을 줄이거나 높이는게 가능하며 방법또한 쉽다.
- EBS(Elastic Block Store) 볼륨을 구성하여 영구 스토리지로 저장이 가능하다.
- EIP (Elastic IP Address) 를 사용하여 고정 IP를 할당할 수 있다.
EC2 리전
- AWS는 나라(리전)별로 데이터 센터를 가지고있다. (모든 나라마다 가지고 있지는 않다.)
- 데이터 센터는 컴퓨터들이 많이 모여있는 공간이라고 생각하면 편하다.
- 서울, 도쿄등등에 데이터 센터를 가지고 있다.
사용 방법은 AWS의 우측 상단 '서울' 부분에서 지정할 수 있다.
인스턴스 생성
EC2 인스턴스 화면에서 하단에 있는 '인스턴스 시작' 버튼을 눌러서 인스턴스 (컴퓨터) 한대를 생성할 수 있다.
또한 생성 시, 컴퓨터의 스펙과 OS를 설정할 수 있다.
나는 이곳 블로그를 참고해 인스턴스를 생성했다.
맥 OS에서 AWS EC2 서버 접속하기
Mac에서는 일반적으로 터미널(iTerm2)를 이용해서 접속을 한다.
먼저 SSH Key를 생성했다.
이전에 생성된 Key가 있는지 다음 명령어를 통해 확인했다.
cat ~/.ssh/id_rsa.pub
아직 Key를 생성한 적이 없기 때문에 ssh key 파일을 찾을 수 없다고 나온다. 따라서 해당 키를 생성해준다.
ssh-keygen
위 명령어를 입력하면 어느 파일에 키를 저장할지, 비밀번호는 무엇으로 할지 엔터를 치라고 나오는데, 따로 설정하지 않고 엔터를 쳐서 넘어갔다.
그러면 키가 생성이 되는데 기본 위치는 /Users/본인 컴퓨터명/.ssh 폴더에 파일이 생성된다.
처음에 입력했던 명령어인 cat ~/.ssh/id_rsa.pub를 입력하면 아래와 같이 생성된 키를 확인할 수 있다.
AWS 인스턴스 생성 시 받은 pem 파일 복사 및 설정
인스턴스를 만들면서 받은 pem 파일을 ~/.ssh 경로에 복사한다.
- ~/.ssh 디렉토리에 복사하는 이유는, 이후 ssh 실행 시 pem 키 파일을 자동으로 읽어 접속이 가능하기 때문 (편리하다.)
cp pem 키의 경로/pem 키의 파일명 ~/.ssh/ 명령어를 입력해 복사한다.
cd ~/.ssh 로 이동 후 정상적으로 파일이 복사되었는지 확인한다.
ls 명령어를 사용하여 복사가 정상적으로 되었는지 확인했다.
chmod 600 pem 키의 파일명 명령어를 입력하여 pem키의 권한을 변경해준다.
권한을 변경하기 전에는 -rw-r--r-- 이었지만 chmod 600 sparta_mykey 명령어를 입력하고 ls -l 로 확인했더니 -rw-------로 변경된 것을 볼 수 있다.
권한 변경 후 pem키가 있는 디렉토리에서 config 파일을 생성한 후 아래와 같이 작성한다. config 파일 생성은 vim config 명령어로 생성이 가능하다.
- Host : 앞으로 접속할 키 값이다. 위와 같이 설정하면 이후 ssh RhythmJoygo 으로 EC2에 접속이 가능하다.
- HostName : EC2의 탄력적 IP 주소를 입력하면 된다.
- User : 유저이름을 작성해주면 된다.
- IdentityFile : pem키가 존재하는 디렉토리 / 파일명을 작성해주면 된다.
위와 같이 입력한 후 파일을 저정하고 빠져나온다. 빠져나오는 법은 esc를 누르고 :wq 입력 후 엔터를 누르면 빠져나올 수 있다.
그 후 config 파일의 권한을 수정해준다. chmod 700 config 명령어를 입력해주면 된다.
ssh로 AWS EC2 서버에 접속하기
위 과정이 끝났다면, Host에 설정한 이름으로 접속을 해보자. ssh Host에서 설정한 이름 명령어를 입력하면 된다.
이 화면이 나왔으면 yes를 입력한 후 엔터를 눌러준다.
yes를 누르고 접속해보면 정상적으로 AWS에 연결이 된 걸 볼 수 있다.
생각해보니 학원에서 최종 프로젝트를 만들때는 AWS S3를 사용한 것 같아 S3 버킷도 생성했다.
AWS Amazon S3 버킷 생성하기 (Simple Storage Service)
Amazon S3 란?
Amazon S3란, Simple Storage Service의 약자로 인터넷용 스토리지이다.
Amazon S3는 웹상에서, 언제 어디든지 원하는 양의 데이터를 저장하고 검색하는데 사용할 수 있는 간단한 웹 서비스 인터페이스이다.
Amazon S3의 특징
- REST 인터페이스를 통해 저장 / 삭제 / 조회가 가능하다.
- 주로 이미지 파일, 정적 리소스 등을 S3에 올려놓고 사용한다.
- 내구성이 좋다. ( 데이터 유실 가능성이 거의 존재하지 않는다. )
Amazon S3 용어
Buckets
- Amazon S3에서 생성되는 최상위의 디렉토리이며, Amazon S3에 저장된 객체의 컨테이너이다.
- S3 상의 모든 객체는 버킷에 포함된다.
- 버킷의 이름은 S3에서 유일해야한다.
Objects
- S3에 데이터가 저장되는 최소 단위이다.
- Objects는 최대 5TB까지 허용한다.
Keys
- 버킷 내 객체의 고유 식별자이다.
- 버킷의 모든 객체에는 정확히 하나의 키가 존재한다.
- 보통 "디렉토리 + 파일명"으로 명명된다.
Regions
- S3가 생성한 버킷을 저장할 위치를 지정한다.
- 리전 간 객체 공유는 불가능하다.
- 버킷 위치(리전)을 어디에 지정하냐에 따라 지연 시간, 비용 등이 결정된다.
Amazon S3 생성하기
AWS 로그인을 하고 이곳을 클릭한다.
S3에서 버킷 만들기를 클릭한다.
1) 버킷 이름과 리전을 선택한다. 버킷 이름은 고유값으로 설정해야 한다.
2) 퍼블릭 액세스 차단 설정
S3의 퍼블릭 액세스 권한을 설정한다.
외부에 S3을 공개할 경우 모든 퍼블릭 액세스 차단을 체크 해제하고, 공개하지 않는다면 체크를 해주면 된다.
퍼블릭 액세스를 차단 할 경우, IAM에서 AWSAccessKeyId, AWSSecretKey를 발급받고 키를 이용해서 S3 객체에 접근할 수 있다.
3) 버킷 버전 관리 및 기본 암호화
버킷 버전 관리 및 기본 암호화는 따로 건들지 않았다. 그 후 버킷 만들기 버튼을 눌러 버킷을 만들면 된다.
4) 퍼블릿 정책 활성화
위 과정이 끝났으면 버킷은 생성되었지만, '객체를 퍼블릭으로 설정할 수 있음' 이라는 문구와 함께 외부에서 접근할 수 없는데,
버킷 정책을 생성해주면 된다.
5) 버킷 정책 생성
이곳을 클릭해 버킷 정책을 생성할 수 있는 사이트로 들어간다.
위 사이트로 들어가서 Step 1, Step 2 부분을 수정해주자.
- Select Type of Policy : S3 Bucket Policy
- Effect : Allow
- Principal : *
- Action : GetObject, PutObject, DeleteObject (권한 설정 부분인데 조회, 수정, 삭제 권한만 체크했다.)
- Amazon Resource Name (ARN) : arn:aws:s3:::{버킷이름}/*
다 수정했으면 Add Statement 버튼을 클릭해준다.
생성된 정책을 확인하고 Generate Policy 버튼을 클릭해준다.
생성된 정책의 JSON 값을 복사한다.
6) 버킷 정책 적용
버킷 정책 적용을 위해 AWS에서 생성한 버킷을 클릭해준다.
버킷에서 권한 > 버킷 정책 편집을 클릭한다.
위에서 복사한 JSON 값을 붙여넣고 변경 사항 저장을 클릭해준다.
사진과 같이 액세스에 퍼블릭으로 변경되었다면 외부에서 S3에 접근이 가능한 상태이다.
내일 S3를 사용해서 이미지 업로드를 해봐야겠다.