저가 웹 페이지 운용 - S3
저가 웹 페이지 운용 - S3
Web page를 개인적으로 운용하려면 web hosting 회사에 개인 domain을 등록하고 그 회사의 disk를 빌려 사용하게 되는데 domain등록 비용외에 disk사용 비용이 $10/month 남짓하게 들게 됩니다. 아주 큰 액수는 아니지만, 통상 1년이나 2년에 한번씩 renewal을 하게 되는데 한번에 내려면 몇백불 되니 작게 느껴지지 않아, 싸게 할 수 있는 방법을 찾다가 요즘 대세로 잡아가는 cloud computing으로 옮아가기로 결정을 하고, AWS (Amazon Web Services) 를 이용해 web 을 구축했습니다.
AWS에서도 기존 web hosting에서 하는 것과 거의 비슷한 환경을 EC2 (Elastic Compute Cloud) 라는 service를 통해 구현할 수 있습니다만 가격 면에서 기존 것보다 싸지 않아 고려 대상에서 제외했습니다. ($14.64/instance, 여기서 instance란 임대하는 virtual computer 댓수라고 생각하면 됨)
S3 (Simple Storage Service)는 원래 말 그대로 파일들을 단순 저장하는 목적이지만 AWS에서는 이 저장소를 web을 통해 access할 수 있도록 허용하고 있어 아주 저렴한 비용으로 개인 web page를 구축할 수 있습니다. Upload/download나 조회 비용도 있긴 하지만 개인이나 소규모 단체용으로는 거의 비용이 들지 않고, 저장비용은 매달 $0.10/GB에 불과합니다. (매달 사용요금 추정은 http://calculator.s3.amazonaws.com/calc5.html 에서)
AWS 가입
계정은 http://aws.amazon.com/ko/websites/ 에서 개설할 수 있고 계정 자체는 공짜입니다. (AWS 암호는 Amazon.com shopping용과 동일하니 유념하세요) 계정을 개설하면 Access Key ID (20자) 와 Access Secret Key (40자) 가 할당됩니다. 절대 공개하지 마세요. (주의: 2014년 4월부터 Access Secret Key를 더 이상 https://portal.aws.amazon.com/gp/aws/securityCredentials 에 가서 확인이 가능하지 않습니다. 따라서 본인이 안전한 곳에 잘 기록해 두셔야만합니다.) 가입한 후에 AWS의 모든 service는 AWS Management Console이라는 page에서 하게됩니다. https://console.aws.amazon.com/console/home
S3에 Bucket 생성
AWS Management Console에서 S3를 선택합니다 ("Storage & Content Delivery" category아래).
그 다음 왼쪽 상단에 "Create Bucket"을 선택합니다. 여기서 Bucket은 일종의 hard disk name같은 것이라고 보면 되는데 AWS S3 내의 모든 bucket과 구별되는 unique한 이름이어야 합니다. 후에 여러가지를 생각해서 사용할 가능성이 있는 web domain name 과 동일한 이름을 주는 것을 추천합니다. 제 경우에는 3개의 bucket을 만들었습니다: goojs.us secure.goojs.us download.goojs.us. 지역(region)은 가장 많이 사용할 지역에 가까운 곳을 고르면 되겠지요.
Web Page로 만들기
만들어진 bucket 중 하나 (예, goojs.us) 를 선택하고 우측 상단의 Properties를 누르면 여러가지 메뉴가 나옵니다. "Static Web Hosting"이라는 메뉴를 누르시고 "Enable website hosting"을 선택하세요. Index Document는 웹페이지 제일 상단에 주소만 적어주었을 경우 자동으로 loading할 페이지를 넣습니다. 가령 http://goojs.us.s3-website-us-west-1.amazonaws.com/ 라고 치면 http://goojs.us.s3-website-us-west-1.amazonaws.com/index.html가 loading되게 한다는 말이지요. 그 다음 바로 위에 있는 Endpoint라는 항목이 지금 만든 web page의 제일 상단 주소가 됩니다.
끝으로 bucket안에 있는 것들을 web에서 access가 되도록 허용해야 합니다. 개별적으로 하는것도 가능은 하지만 파일 수가 많은 경우 일일이 하는 것이 거의 불가능하고, 새로 upload된 파일들은 그 때마다 다시 개별적으로 해야 하므로, bucket policy라는 것을 사용하기를 권합니다.
Permission으로 가서 "Add bucket policy"를 선택하고 다음 내용을 추가하면 끝입니다.
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket_name/*"
}
]
}
Web Contents Upload
AWS Management Console에서 직접 upload가 가능합니다.
조금더 편하게 작업하고 싶으면 S3 client program (예, S3browser나 CloudBerry Explorer같은것) 을 사용하세요. Client program으로 접속할때는 AWS 가입시 받은 Access Key ID (20자) 와 Access Secret Key (40자)가 있어야 합니다.
Web Page Access
앞서 "Enable website hosting"할때 위에 있던 Endpoint라는 항목 기억하시죠? Web에서 access할때 쓰이는 URL은 다음과 같은 두가지 방식으로 주어집니다.
- http://[bucket_name].s3-[region].amazonaws.com/
- http://s3-[region].amazonaws.com/[bucket_name]/
제것을 예로 들면 bucket 이름이 goojs.us 이고 지역이 us-west-1 이니까
- http://goojs.us.s3-website-us-west-1.amazonaws.com/
- http://s3-website-us-west-1.amazonaws.com/goojs.us/
참고: 불편한 점
S3는 단순한 storage에 불과합니다. 따라서 일반 web server에서 제공하는 것이 모두 자동 제공되지는 않습니다. 예를 들어,
- Apache server로 운영하는 web server에서는 folder 구조로 아무 file이나 올려만 놓으면 위 아래로 browse하는 것이 곧바로 가능한데 S3의 경우는 이런 기능이 제공되지 않아, folder마다 index를 따로 만들어 줘야 합니다. PHP를 이용하여 가능하게 하는 solution도 있는것 같은데 시도해보다 포기했습니다.
- Apache의 경우 .htaccess를 이용해서 folder별로 보안이 가능한 반면, S3는 open access를 허용하지 않으면 web으로 쓸 수가 없습니다.
'IT' 카테고리의 다른 글
Adobe Genuine Software Integrity Service 제거 (54) | 2019.10.08 |
---|---|
Macbook Pro 수리후 재활용 (0) | 2018.07.30 |
Xfinity Mobile 사용기 (3) | 2017.10.23 |
선불 유심 (USIM) 사용기: 일본 (0) | 2015.10.11 |
선불 유심 (USIM) 사용기: 한국 (0) | 2015.10.03 |
선불 유심 (USIM) 사용기: 노르웨이, 프랑스 (0) | 2015.07.09 |
G-Mail: 첨부파일을 맨 위로 (0) | 2015.07.04 |
외국에서의 핸드폰 사용 (Using Cellphones Abroad) (4) | 2015.05.13 |
저가 웹 페이지 운용 - 인증 (0) | 2013.12.20 |
저가 웹 페이지 운용 - 내 도메인 (0) | 2013.12.19 |
댓글
이 글 공유하기
다른 글
-
G-Mail: 첨부파일을 맨 위로
G-Mail: 첨부파일을 맨 위로
2015.07.04 -
외국에서의 핸드폰 사용 (Using Cellphones Abroad)
외국에서의 핸드폰 사용 (Using Cellphones Abroad)
2015.05.13 -
저가 웹 페이지 운용 - 인증
저가 웹 페이지 운용 - 인증
2013.12.20 -
저가 웹 페이지 운용 - 내 도메인
저가 웹 페이지 운용 - 내 도메인
2013.12.19