일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 감사일기
- 네이티브
- 안드로이드
- php
- NeXT
- 웹뷰
- fanzeel
- react
- https
- TypeScript
- Elastic Beanstalk
- S3
- angular
- beanstalk
- node.js
- AWS
- Route53
- angular4
- swift
- hybrid
- 페이스북
- ios
- cors
- 카카오톡
- Android
- node
- 알려줌
- nextjs
- JavaScript
- 도메인
- Today
- Total
목록AWS (15)
쪼렙 as! 풀스택
얼마전부터 페이스북 미리보기에서 큰 이미지를 가져가지 않는 문제가 발생했다.페이스북 미리보기 기준인 1200 x 630 사이즈보다 큰데도, 작게 보이는 것이다. 다방면으로 실험해 본결과,S3 에 업로드한 이미지의 MIME 타입을 지정해 주지 않아서 문제가 생겼다는것을 알게 되었다. 그래서 S3에 이미지를 업로드 할 때, MIME 타입을 지정해주었더니, 문제가 해결되었다. // PHP 로 S3에 업로드 할 때, Cache-Control, MIME 타입 지정해주기.$s3Config = array( 'credentials' => array('key' => S3_KEY,'secret' => S3_SEC), 'region' => S3_REGION, 'version' => 'latest'); $s3Client = ..
AWS - Elastic Beanstalk 에서 Node.js 환경을 선택하면,기본적으로 Nginx가 프록시서버로 사용하게 설정되어있다. 홈페이지에 필요한 간단한 아이콘, favicon 등등은 그냥 public/assets/ 폴더를 만들어서 사용하고 있었는데, 그 static file 들만이라도 Nginx 를 통해서 처리하게 해주면, Node 환경이 한결 쾌적해 질 수 있겠다. 1. Node에서 static 파일을 사용할 수 있게 설정되어있는 server.js 파일을, 개발모드에서만 사용가능하도록 수정했다. /server.jsconst express = require('express')const dev = process.env.NODE_ENV !== 'production'const server = exp..
빈스토크 - 로드밸런서를 쓰고 있는경우, http 인지 https 인지 구분하는 방법이 약간 특별해진다. 그 특별한 내용은 여기 참조...Elastic Beanstalk 에서 HTTPS 로 Redirect 시키려 한 삽질들... 이번엔 Node - Express 서버에서 리다이렉트를 시켜본다. const server = express() server.use(function(req, res, next) { const xForwrded = req.get('X-Forwarded-Proto') //로드밸런서경우, X-Forwarded-Proto 로, 어떤 요청으로 왔는지 알 수 있다. if(!!xForwrded && xForwrded !== 'https') { res.redirect('https://' + re..
준비물1 - 앞서 언급한 사용자의 AccessKey 와 시크릿 키가 필요합니다.준비물2 - PHP용 SDK (http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354Colored by Color Scriptercs 업로드나 삭제후 넘어오는 $result 에 따라서 핸들링 해주면 되겠습니다.
서버단(PHP)에서 AWS SDK 를 이용해, S3 에 파일을 올리거나 삭제할 수 있도록 하겠습니다. AWS 에서 SDK 에 사용할 계정을 생성하고 (Access Key) 를 발급받아야 합니다. 이 Access Key 를 이용해서 AWS 의 서비스를 제어할 수 있는데, 그 계정에 너무 큰 권한을 줘버리면 보안에 취약할 수 있으므로, 꼭 필요한 권한만을 제한적으로 발급하여 계정 Access Key를 발급받도록 합시다. 여기에서는, 특별히 S3 - (방금만든) 버킷하나 - Get Object, Put Object, Delete Object 요렇게 딱 3개만 할 수 있는 권한이 있는 계정을 만들고 Access Key를 발급받도록 하겠습니다. 1. 권한설정이 된 사용자(User)를 만들도록 하겠습니다. AWS ..
S3 버킷에 html 파일을 올려서 Static 웹사이트로 만들 수 도 있습니다. 이게 참 별거 아닌거같은데, 요새같이 SPA 형태로 만드는 웹앱에서는 서버리스로 웹앱을 구성할 수 도 있단 얘기입니다!! 필자는 Angular로 웹앱을 만들어 본 적이 있는데, Angular 는 일단 index.html 파일과, 관련된 자바스크립트만 다운로드 되면, 클라이언트단에서 렌더링하기 때문에, 이 S3 Static 웹사이트 기능을 이용해서 서버리스 웹앱을 만들 수 있게 되는것입니다. (물론 데이터 통신이 필요한경우 API 서버가 필요하긴 합니다만 기본적으로 서버리스 웹앱이 가능해집니다.) 뭐, 서버리스 웹앱 까지는 아니고, 그냥 파일 주소를 내 도메인으로 사용하려는 용도로도 사용가능하겠습니다. 지금처럼 https:/..
지난 포스트에 이어서, 해당 버킷에 올라가는 모든 오브젝트는 웹으로 접근이 가능하도록 퍼미션을 조정해보도록 하겠습니다. 1. 버킷에 들어가서 'Permissions' 탭을 선택. 2. Bucket Policy 를 선택하면, 빈공간에 JSON 형식으로 Policy 를 직접 입력하게 되어있습니다. 뭐라고 써야 할지 모르므로 우리는 Policy Generator 를 클릭합니다. 그러면 Generator 가 새 창으로 뜰겁니다. 3. Policy 타입 = S3 Bucket Policy, Effect = Allow, Principal = * Actions 는 GetObject 하나만 선택합니다. 모든사람에게 접근가능한 권한은 읽을 수만 있게 해줘야겠죠 4. ARN 을 잘 입력해야합니다.arn:aws:s3:::/*..
서비스를 운영하다보면, 파일을 저장해야할 일이 많다. 예를 들어 사용자가 올리는 사진을 저장해야 하는 서비스를 운영하고 있다면, 그 사진 파일을 운영하는 서버에 직접 저장해두는 방법도 있겠지만, 서버의 블록스토리지는 비싸다! 게다가 웹에서 이미지를 호출한다고 했을 때 S3 스토리지에서 파일을 관리한다면, 파일 로드 & 출력을 서버에서 직접 담당하지 않기 때문에, 서버 리소스를 절약하고 트래픽 요금까지도 절감할 수 있겠다. 특별히 블록스토리지를 사용해야하는 경우가 아니라면, 여러모로 S3 스토리지를 이용하는것이 좋으리라 생각된다. * 버킷 - S3에서 생성하는 저장소 단위. xxx.xxxxx.com 과같이 도메인 이름 형태로 만들어야 한다.* 오브젝트 - 파일 한개 + 그 파일에 대한 메타데이터 이다. 가..
Elastic Beanstalk (EB) 를 세팅할 때 Environment Type 은, Single Instance 가 아니고, Auto Scaling, Load Balancing 을 이용하도록 선택한다. 이러는 이유는 특별한 게 없고, ACM을 이용해서 발급받은 HTTPS 인증서는 Load Balancer 에만 적용이 가능하기 때문이다. 로드밸런서 에 ACM을 이용해서 HTTPS 인증서를 적용한다고 해도, 실제 EC2와 LoadBalancer 가 통시는하는 포트는 80포트 (HTTP) 통신이다. 이게 무슨소리? ㅡ,.ㅡ;;; 아래 그림을 보면 쉽게 이해될 것이다. [ 출처 : https://bitbucket.org/osrf/cloudsim/wiki/Deployment ] 로드밸런서를 통해 HTTPS..
Elastic Beanstalk 자체로는 과금이 되질 않는다. 다만, Auto Scaling 을 이요해서 Beanstalk 환경을 만들어 두면, 그에 맞게 EC2 가 자동으로 생성되고 서버가 돌아가기 시작하기 때문에 계속해서 과금이 된다. 문제는 테스트를하거나 Beanstalk 환경을 만들었을 경우에 더이상 과금이 안되도록 서버를 내려줘야 하는데, EC2 목록에 가서 직접 인스턴스를 삭제해버려도, 자동으로 생성된다!!! (대단하다 ㅡ,.ㅡ;) 이것은 Auto Scaling 기능으로, 자동으로 EC2가 생성되고 삭제되고 하기 때문이다. 물론 Beanstalk 의 Environment 자체를 Terminate 시키거나, Application 을 삭제해버리면, 자동으로 생성된 EC2 도 같이 삭제되긴 한다. ..