모형차의 자율주행 프로젝트에 필요한 Object Detection 모델을 학습하는 데에 AWS의 EC2를 이용하였다. AWS EC2를 이용하는 방법을 기록해두려고 한다.
EC2(Elastic Compute Cloud)는 AWS에서 제공하는 클라우드 컴퓨팅 서비스입니다. EC2를 사용하면 아마존이 각 세계에 구축한 데이터 센터의 서버용 컴퓨터들의 자원을 원격으로 사용할 수 있습니다. 쉽게 말해, 아마존으로부터 한 대의 컴퓨터를 임대하는 것입니다.
1. MFA 설정
① AWS Management Console 로그인
![](https://velog.velcdn.com/images/zzwon1212/post/16cf6bfa-8609-44d2-a5bb-663d173c7447/image.png)
② IAM 검색
![](https://velog.velcdn.com/images/zzwon1212/post/36d8d922-2862-441e-8994-68b263a7fcd9/image.png)
③ Users 선택
![](https://velog.velcdn.com/images/zzwon1212/post/121ca1de-8df2-4159-8aa4-e94664b069ae/image.png)
④ MFA 디바이스 할당
![](https://velog.velcdn.com/images/zzwon1212/post/520841cb-6df0-4dea-9266-18a21d3c9332/image.png)
- MFA 설정 전까지는 액세스가 거부된다.
- 우측 하단의 Assign MAF device를 클릭한다.
![](https://velog.velcdn.com/images/zzwon1212/post/065286e4-7f99-45a6-94d6-3c0e5d68434b/image.png)
- MFA device name을 설정한다.
- Authenticator app을 선택한다.
![](https://velog.velcdn.com/images/zzwon1212/post/b5282203-2211-4e21-9535-21521052b9a5/image.png)
- 아래 MFA 인증 도구 중 하나를 설치하여 이용한다.
- MFA 인증 도구를 이용하여 QR 코드를 스캔한다.
- 여러 명이 이용할 경우 QR 코드를 캡처하여 공유하면 여러 디바이스에서 사용할 수 있다.
- QR 코드가 외부로 노출되지 않도록 주의해야 한다.
- 두 번 스캔하여 스캔 결과 코드를 두 번 입력한다.
⑤ 로그아웃 후 다시 로그인하여 사용
2. Instances
① EC2
![](https://velog.velcdn.com/images/zzwon1212/post/a065f26d-8918-4300-878a-4a743efa84aa/image.png)
② Launch instances
![](https://velog.velcdn.com/images/zzwon1212/post/6501c658-c09c-4277-9703-ff1a9633ec81/image.png)
![](https://velog.velcdn.com/images/zzwon1212/post/0051da46-6fec-4039-85cb-10e25ad8d836/image.png)
- 우측 상단의 Launch instances를 클릭한다.
![](https://velog.velcdn.com/images/zzwon1212/post/39adb25e-1b51-4c80-af2b-376e1b79215a/image.png)
- 이름을 설정한다.
- 작업에 필요한 AMI (Amazon Machine Image)를 검색한 후 선택한다.
- 나의 AMI: Deep Learning AMI GPU PyTorch 1.12.1 (Ubuntu 20.04) 20221102
![](https://velog.velcdn.com/images/zzwon1212/post/133a7edc-22cd-487f-bc59-27d030df08d3/image.png)
- Amazon EC2 Instance Type을 참고하여 적절한 instance type을 선택한다.
- 나의 instance 유형: g5.xlarge
- instance 유형별로 성능과 가격이 다르다.
- key pair를 생성하고 선택한다.
- 우측의 Launch instance를 클릭하여 launch한다.
③ Instance 접속
![](https://velog.velcdn.com/images/zzwon1212/post/ed65e37a-2b55-41f3-a2cc-de57e179f6f0/image.png)
$ ssh -i MY_KEY_PATH.pem EC2_USER_NAME@MY_PUBLIC_IPV4_DNS_ADDRESS
- Local 터미널에서 위 명령어로 AWS instance에 접속한다.
AWS_USER_NAME
: e.g. ubuntu, jiwon etc.
④ Instance 중지
![](https://velog.velcdn.com/images/zzwon1212/post/bd616801-81a3-4e53-92ac-4cd286a76414/image.png)
- 사용하지 않을 때는 Stop instance를 클릭하여 ※반드시 instance를 중지※해야 한다. 중지하지 않을 경우 요금이 계속 부과된다...
- 참고로 Terminate instance는 instance를 삭제하는 기능이다. 클릭 시 일정 시간 경과 후 instance가 삭제된다.
3. Local과 AWS 간 파일 전송
- 아래 명령어들을 Local 터미널에서 실행한다.
- 주의: 양 쪽 모두 파일과 디렉토리에 적절한 권한을 설정해주어야 한다.
3.1. Local 파일 → AWS
scp -i MY_KEY_PATH.pem LOCAL_FILE_PATH EC2_USER_NAME@EC2_PUBLIC_IPV4_DNS_ADDRESS:AWS_DIR_PATH
3.2. AWS 파일 → Local
scp -i MY_KEY_PATH.pem EC2_USER_NAME@EC2_PUBLIC_IPV4_DNS_ADDRESS:AWS_FILE_PATH LOCAL_DIR_PATH