프로그래밍/Amazon

[Amazon] S3를 사용한 정적 웹 호스팅

Jay22 2017. 6. 25. 15:48
반응형

이 모듈의 아키텍쳐는 HTML, CSS, Javascript, 이미지 및 기타 파일을 포함한 정적 웹 컨텐츠를 S3에 저장하는 것이다.

결과적으로 사용자는 S3에 공개된 웹 사이트 URL을 사용하여 사이트에 액세스 한다. 사이트를 사용할 수 있게 하기 위해서 웹 서버를 실행하거나 다른 서비스를 사용할 필요가 없다.


이 URL은 엔드포인트 URL을 사용하게 된다.


* S3 만들기


1. AWS Management Console에서 Service를 누른다음 S3를 선택한다.

2. Create Bucket을 누른다.

3. 버켓 이름은 전 세계적으로 고유한 이름으로 설정한다.

4. 리전을 선택한다.

5. Create



* 웹 사이트의 컨텐츠 업로드 하기


S3 버킷에다가 드래그 앤 드롭으로 웹사이트 파일들을 올릴 수 있다. 두 번째 방법은 AWS CLI를 사용한 방법이다.

AWS CLI를 다운로드 받아서 aws s3 sync s3://[경로명]//[버켓이름] 다른 s3에 저장된 파일들을 복사할 수 있다. 



* IAM 설정




유저를 클릭한다.



  Programmatic access에 체크를 해 둔다.





권한은  관리자 권한만 부여한다.







그럼  AccessKey와 Secret  키거나오게 된다. 잃어 버리면 안되므로 저장을 잘 해 놓아야 한다.


아까 CLI에서 권한을 줘 보자.


aws configure을 치면





ACCESS ID와  ACCESS KEY를 아까 설정한 ROLE로 입력을 해준다.  그리고 리전과  OUTPUT을 넣는데 OUTPUT은 비워놓는다. 처리하는 데이터가 json형태여서 json을 쓰는 경우도 있다.


* 버킷 정책에 Public Reads 권한 허용하기






{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }
    ]
}


저기 빈 공간에 이 코드를 입력한다. 그리고 SAVE를 한다.


* 웹 사이트 호스팅 활성화



Properties의 정적웹사이트 호스팅을 선택한다.



처음에 use this site to host a website를 체크해주고 초기 화면 파일이름을 설정한다. 물론 해ㅜㅡ당파일이 버킷 안에 존재해야 한다.


s3의 전체적인 모습은 이렇게 생겼다. 여타 배포하는 웹사이트와 형식이 같다.





이제 아까 Properties의 Static website hosting 에 가보면 EndPoint가 있다. 이 EndPoint가 호스팅된 주소이다.

반응형