AWS 개발환경 설정 - WSL2 & S3 & RDS
개요
- 윈도우 WSL2에서 AWS 개발을 위한 기본 개발환경 설정을 진행한다.
WSL2 설치
- WSL2 설치 및 사용법은 다음 링크를 통해서 확인한다. (여기서 설치법은 다루지 않는다!)
Restart WSL2
- WSL2 처음 작업할 때, 실행한다.
exec $SHELL
WSL2 주요 필수 패키지 설치
- Python 3.8 버전을 설치한다.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7
- Python 버전은 다음과 같다.
$ python3 --version
Python 3.8.10
- 만약 Python 버전 변경이 안되면 전체 삭제하고 진행한다.
(옵션) Python 삭제
- 현재 설치된 모든 파이썬 버전을 보여줌
ls /usr/bin/python*
- python3 버전과 관련된 모든 파일을 삭제함
sudo apt-get purge --auto-remove python3.8
awsebcli 설치 및 AWS CLI Configuration
- awscli를 설치한다.
sudo apt install awscli
- 버전은 다음과 같다.
$ aws --version
aws-cli/1.18.69 Python/3.8.10 Linux/5.10.16.3-microsoft-standard-WSL2 botocore/1.16.19
IAM 사용자 추가
AWS 회원가입은 완료된 상태에서 시작한다.
[보안, 자격 증명 및 규정 준수] - [IAM]을 클릭한다.

[액세스 관리] - [사용자] - [사용자 추가]를 클릭한다.

아래와 같이 사용자 세부 정보 설정을 진행한다.

권한설정 여기 부분이 중요하다. 기존 정책 직접 연결을 선택하고, 각 사용하고자 하는 서비스를 선택한다.
- 독학할 때는 FullAccess를 선택한다.
- 필자가 선택한 건 다음과 같다.
- AdministratorAccess
- AdministratorAccess-AWSElasticBeanstalk
- AmazonEC2FullAccess
- AmazonS3FullAccess

사용자를 만들고 나면 액세스 키 ID와 비밀 액세스 키는 반드시 기억해야 한다.(csv 파일을 다운로드 받도록 한다. )
- Access Key : your_key
- 비밀 액세스 키 : your_secret_key
AWS Configuration
- 이제 aws에 코드를 각 WSL2에 등록한다.
- AWS 지역 : ap-northeast-2
$ aws configure
AWS Access Key ID [None]: your_id
AWS Secret Access Key [None]: your_key
Default region name [None]: ap-northeast-2
Default output format [None]: json
- 실제 설정된 config 파일을 확인한다.
$ cat .aws/config
[profile eb-cli]
aws_access_key_id = your_id
aws_secret_access_key = your_key
[default]
region = ap-northeast-2
output = json
Github SSH with WSL2
- RSA를 생성한다.
$ sudo ssh-keygen -t RSA
Generating public/private RSA key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:TPWfl2lrr/DgzAaMnceRnyqo0D6sGRLYpzl+MwdHsb4 root@evan
The key's randomart image is:
+---[RSA 3072]----+
.
.
+----[SHA256]-----+
- 생성된 Key 값을 복사한다. ssh-rsa 부터 복사하면 된다.
$ sudo cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3Nz....Zgi8= root@yourname
- 복사한 Key값을 Github Github SSH and GPG keys에 붙여 넣는다.
- 각 계정 프로필 - Settings - Github SSH and GPG keys 순차적으로 클릭한다.

- 각 계정 프로필 - Settings - Github SSH and GPG keys 순차적으로 클릭한다.
- Github Repo를 생성하고, 해당 Repo를 Git Clone으로 쉽게 가져올 수 있다.
- 실제 git clone, git add/commit/push를 진행해본다.
- Git clone 시, 처음에 비밀번호가 맞지 않을 수 있다.
- 아래와 같은 에러가 나타난다면,
Personal Access tokens를 발급 받아서 해당 Token 값을 입력 비밀번호로 입력한다. (Settings - Developer Settings - Personal Access Tokens)
- 아래와 같은 에러가 나타난다면,
$ git clone https://github.com/your_name/your_repo.git
Cloning into 'your_repo'...
Username for 'https://github.com': yourname
Password for 'https://yourname@github.com':
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/your_name/your_repo.git/'
그 외 주요 패키지 설치
- Jupyter Notebook에서 어떻게 사용되는지 보여주기 위해 가상환경을 우선 설치하고, 필수 라이브러리를 추가로 설치 할 것이다.
- virtualenv를 설치하고 가상환경에 접속한다.
$ pip3 install virtualenv
$ virtualenv venv
created virtual environment CPython3.8.10.final.0-64 in 11197ms
creator CPython3Posix(dest=/mnt/c/Users/human/Desktop/aws-lectures-wsl2/venv, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/human/.local/share/virtualenv)
added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
$ source venv/bin/activate # 가상환경에 접속
Python 모듈 Boto 설치
- Boto3는 AWS 서비스를 위한 Softward Development Kit(SDK)라고 할 수 있다.
pip3 install boto3 juypterlab
- Jupyterlab은 터미널에서 다음과 같이 실행한다.
jupyter lab --no-browser
S3 생성
먼저 아래 화면처럼 [서비스]-[스토리지]-[S3]를 선택한다.

버킷 만들기를 선택한다.

버컷 이름과 AWS 리전만 각자 선택하고, 나머지는 기본 Default 값으로 놔둔채 생성한다.

S3에 대한 자세한 설명은 관련 글을 참조한다.
우선 임의의 이미지 파일을 하나 업로드 한다.

업로드 시, 스토리지 클래스에서 옵션을 선택할 수 있다.

업로드가 된 후, 이미지 파일명을 클릭하면 아래와 같은 객체 개요가 나타날 것이다.

ACL 개요
- S3 보안적으로 중요한 것은 ACL에서 관리한다.
- ACL(액세스 제어 목록) 개요
객체 삭제는 삭제 탭을 이용해서 진행한다.

MySQL RDS 생성
[데이터베이스] - [RDS] 순차적으로 선택한다.

아래 메뉴에서 데이터베이스 생성을 클릭한다.

다음 그림을 참조하여 순차적으로 선택한다.
- DB 인스턴스 식별자 : human-mysql
- 마스터 사용자 이름 : admin
- 마스터 암호 : temp1234

퍼블릭 엑세스는
예로 클릭한다.

데이터베이스를 생성하면 아래와 같이 확인할 수 있다.
- 주의 : 데이터베이스를 사용하지 않으면 사용 중지를 해야 한다.

- 주의 : 데이터베이스를 사용하지 않으면 사용 중지를 해야 한다.
MySQL 로컬 설치
이제 MySQL Workbench를 다운로드 받는다.
다운로드 받은 설치프로그램을 통해 설치를 진행한다.
설치가 끝난 후, 접속을 시도해본다.

위 화면에서 중요한 건, Hostname이다. 127.0.0.1 주소 대신에 RDS endpoint를 입력해야 한다.
- Connection Name: conntest
- [Parameters]탭에서 Username과 Password를 입력하고 Test Connection을 통해 접속이 잘 되는지 확인한다.

만약 연결이 잘 되지 않으면 보안그룹에서 인바운드 규칙 편집을 클릭합니다.

성공 메시지가 나타나면 쿼리 편집기를 연다.

간단한 쿼리를 통해 실제 연결되었는지 확인해본다.
show Databases;
