S3에 있는 파일을 EFS로 옮겨야 되는데 AWS CLI를 사용해야 되는 상황이 있다.


근데 내컴퓨터가 윈도우라서 AWS CLI를 사용해야 되는데 PowerShell이 반응이 없는 상황이 자주 나와서 ㅡㅡ...


이번에는 최근 마이크로소프트에서 리눅스를 잘 지원해주면서 생긴 꿀기능으로 AWS CLI를 실행해보자.


우리는 Windows Subsystem for Linux 를 이용할것이다.


먼저 참고한 문서들은 다음과 같다.


https://docs.microsoft.com/ko-kr/windows/wsl/install-win10

https://docs.aws.amazon.com/ko_kr/powershell/latest/userguide/pstools-getting-set-up-windows.html

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-linux-python.html

https://superuser.com/questions/1319047/cant-install-virtual-interpreter-in-pycharm-in-linux

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-linux.html


1. WSL 설치


시작에서 PowerShell을 오른쪽 클릭, 관리자 권한으로 실행한다.

그다음 명령어를 입력한뒤 엔터

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux


이러면 재부팅이 된다. 정상적인 것이다.

다음 재부팅이 끝났으면 마이크로소프트 스토어에서 Ubuntu 를 설치한다.


우린 이제 이 우분투로 AWSCLI를 사용할 것이다.


2. Python, PIP 설치하기


AWS CLI를 설치하기 위해서는 Python과 PIP가 필요한데 이것들을 먼저 설치해보자.

우분투는 방금 깔아서 텅 비어있기 때문에 설치해줘야 한다.


- Python 설치

우리는 Ubuntu 이기 때문에 이 명령어로 설치한다.

sudo apt-get install python3


다음과 같은 명령어로 잘 설치되었는지 확인한다.

python3 --version


주의 : 파이썬3를 설치했기 때문에 대부분 명령어에서 python을 치라고 하면 python3로 바꿔서 써줘야 된다.


- PIP 설치

파이썬 스크립트를 하나 받는다..

curl -O https://bootstrap.pypa.io/get-pip.py

※ 0이아니라 대문자 O임


파이썬 스크립트 실행할때 필요한 유틸을 받는다

sudo apt-get install python3-distutils


스크립트를 실행해서 PIP를 다운로드, 설치한다.

python3 get-pip.py --user

여기까지 PIP 설치 완료


3. PATH 설정하기

이제 PATH를 연결해 보자.

export PATH=~/.local/bin:$PATH

해당 커맨드를 한번 실행한뒤

source ~/.profile

커맨드를 실행한다.


pip --version

했을때 에러없이 pip 숫자 ~~~ 버전이 이렇게 나와야 한다.


4. AWSCLI 설치

pip를 통해서 설치한다.

pip install awscli --upgrade --user


aws --version으로 정상 설치됬는지 확인한다.


5. 명령줄 경로에 AWS CLI 실행파일 추가


이과정까지 하면 설치 끝


PowerShell은 그냥 못쓴다고 생각하고 리눅스에 적응하는게 나은것 같다.

이제 도메인 주소를 입력하면 S3의 버킷으로 연결되어야 한다.

Route 53을 이용해서 연결시켜 보자.

AWS Console 에서 Route 53 메뉴로 이동한다.

호스트 존이 아무것도 없다면 Create Hosted Zone을 클릭하고 

있다면 해당 호스트 존을 클릭하면 된다.


호스트 존 이름은 버킷 이름과 같게 하면 된다. (www가 없는 버킷 이름)


다음과 같이 4개의 Record Set이 필요하다.

Record Set을 만들었다면 먼저 

NS와 SOA는 생성 되어있을 것이다.


A를 생성해보자 (Type)

CreateRecordSet 버튼을 누르면 다음과 같은 창이 오른쪽에 뜬다.

Name 에 아무것도 입력하지 않고

Type은 A - IPv4 Address로 설정한다.

Alias를 Yes로 변경한다.

그러면 다음과 같이 S3의 버킷이 보인다.

해당 버킷을 클릭해서 연결시켜준다.

Routing Policy는 simple

Evaluate Target Health는 NO로 설정한다.


이제 spiritlink.online 주소를 통해 S3 버킷 접속이 가능해 졌다.

www.spiritlink.online 주소를 통해 S3 버킷에 연결시켜보자.


CreateRecordSet 버튼을 클릭한 다음 Name에 www 를 입력한다.

그다음 똑같이 Alias를 Yes로 선택하고 S3버킷을 선택한다. 

* 주의 : www.spiritlink.online 버킷과 spiritlink.online 버킷은 별도이다.

www.spiritlink.online 주소를 입력하면 S3에서 spiritlink.online 버킷으로 연결되도록 처리가 필요하다.



Routing Policy 를 Simple로 선택하고

Evaluate Target health 를 NO로 선택한뒤 생성을 완료한다.


이제 다른 사이트에서 구매한 도메인에 연결시켜보자.

나는 가비아 에서 도메인을 구매했는데 다른 사이트도 이와 비슷하다.

도메인을 구매한 사이트에 도메인 정보로 들어가게 되면 도메인 네임 서버 주소를 입력하는 창이 있다.

여기에 NS 에 적혀있는 4개의 주소를 입력하면 된다.


1차, 2차, 3차, 4차 도메인 네임서버를 입력해 준뒤

몇분이 지나면 정상적으로 호스팅 되는것을 확인할 수 있다.

AWS 에서 웹사이트를 호스팅 하기 위해서는 다양한 서비스의 조합이 필요하다.

그중에 웹사이트를 호스팅 하기 위해서 제일 먼저 필요한것은

js, html 등 작성한 코드, 리소스 들이다.

먼저 해당 리소스들을 업로드 해보자.


aws console에서 s3로 이동한다.


그뒤 버킷을 생성한다.

버킷 이름은 도메인 이름과 같게 설정하는게 좋다.

리전은 서울로 설정한다.

다음을 전부 넘기고 생성한다.


이렇게 생성한뒤 버킷 이름을 클릭하면 다음과 같은 창이 보인다.

업로드 버튼을 누른뒤 js 파일, html 파일 등을 업로드 한다.

파일 추가 버튼을 누르는것보다

마우스로 드래그 한뒤 드랍하는게 훨씬 편하다. (폴더 내의 파일들까지 알아서 업로드 할 수 있다.)


다음과 같이 파일이 업로드 되었다. 이제 웹사이트 호스팅을 시작해보자 (S3에서)

속성 탭으로 이동한뒤 정적 웹 사이트 호스팅을 클릭한다.

이 버킷을 사용하여 웹 사이트를 호스팅한다를 클릭한다.

그 뒤 위의 엔드포인트 옆 주소를 클릭한다.

그러면 403 Forbidden 이 출력된다.

읽기 권한이 할당되지 않아서 이러한 현상이 발생한다.

인덱스에 자신의 프로젝트 index.html을 입력해주면 된다.

버킷에서 권한 -> 버킷 정책 탭으로 이동한다.


다음과 같이 입력하면 된다.

모자이크 된 부분은 버킷의 이름이다.

적용이 정상적으로 완료되면 다음과 같이 보인다.


이렇게 처리가 완료되면 엔드포인트 주소를 클릭했을때

웹사이트가 호스팅 되기 시작하는것을 확인할 수 있다.


다음 글에서는 도메인과 연결을 시작해보자.

+ Recent posts