생활코딩 - 아마존 웹 서비스 (AWS)
    • 01
      시작하기
    • 아마존 웹 서비스와 클라우드
      회원가입
      보안설정 - 2단계 인증
      지역과 가용구역
    • 02
      AWS EC2
    • EC2 소개
      EC2 인스턴스 타입
      EC2 가격정책
      EC2 인스턴스 장치설정
      EC2 태그와 보안그룹
      EC2 인스턴스 비밀번호 생성
      EC2 리눅스 인스턴스 접속 (OSX)
      EC2 리눅스 인스턴스 접속 (Windows)
      EC2 리눅스 인스턴스에서 웹서버 사용
      EC2 윈도우 인스턴스 접속 (OSX)
      EC2 윈도우 인스턴스 접속 (Windows)
      EC2 윈도우에서 웹서버 사용
      EC2 AMIs
      EC2 AWS Marketplace (Wordpress)
      EC2 Scalability
      EC2 Scale Up
      스트레스 테스트 준비
      스트레스 테스트 시작
      Elastic IP
      인스턴스 교체
      EC2 Scale Out
      Scale Out의 흐름
      ELB 생성
      ELB 적용
      ELB 사용 시 주의 사항
      EC2 Auto Scaling
      EC2 Auto Scaling (Launch Configuration) 생성1
      EC2 Auto Scaling (Launch Configuration) 생성2
      Auto Scaling 테스트
    • 03
      AWS SDK
    • AWS를 제어하는 방법
      PHP를 위한 AWS SDK 시작하기 1 : 준비
      PHP를 위한 AWS SDK 시작하기 2 : 코딩
      node.js 를 위한 AWS SDK
    • 04
      AWS S3
    • S3 콘솔을 통한 기본 조작 방법
      S3 소개
      PHP를 위한 S3 SDK : 파일 전송
      PHP를 위한 S3 SDK : 파일 목록 가져오기
      PHP를 위한 S3 SDK : 파일 다운로드
      PHP를 위한 S3 SDK : 웹애플리케이션에서 S3 활용
      node.js를 위한 S3 SDK : 업로드
      node.js를 위한 S3 SDK : 목록
      node.js를 위한 S3 SDK : 다운로드
      node.js 웹애플리케이션에서 s3 SDK 활용
    • 05
      AWS RDS
    • RDS 소개
      RDS 서버 생성
      RDS 백업 & 복원
      RDS Scale up & out
      PHP를 위한 RDS : 개발준비
      PHP를 위한 MySQL(MariaDB) 연동
      Read Replication
    • 06
      부록
    • php 실습환경 구축
      node.js 실습환경 구축
    node.js 웹애플리케이션에서 s3 SDK 활용
    04 AWS S3
    node.js 웹애플리케이션에서 s3 SDK 활용

    s3_app.js

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    var express = require('express');
    var formidable = require('formidable');
    var AWS = require('aws-sdk');
    AWS.config.region = 'ap-northeast-2';
    var app = express();
    app.get('/s3', function(req, res){
    console.log(1);
    res.send('Hello s3');
    });
    app.get('/form', function(req, res){
    var output = `
    <html>
    <body>
    <form enctype="multipart/form-data" method="post" action="upload_receiver">
    <input type="file" name="userfile">
    <input type="submit">
    </form>
    </body>
    </html>
    `;
    res.send(output);
    });
    app.post('/upload_receiver', function(req, res){
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files){
    var s3 = new AWS.S3();
    var params = {
    Bucket:'codingeverybody2',
    Key:files.userfile.name,
    ACL:'public-read',
    Body: require('fs').createReadStream(files.userfile.path)
    }
    s3.upload(params, function(err, data){
    var result='';
    if(err)
    result = 'Fail';
    else
    result = `<img src="${data.Location}">`;
    res.send(`<html><body>${result}</body></html>`);
    });
    });
    });
    app.use(function(err, req, res, next) {
    console.error(err.stack);
    res.status(500).send('Something broke!');
    });
    app.listen(80, function(){
    console.log('Connected');
    })
    Q&A