Skip to content
egoing edited this page Oct 20, 2020 · 78 revisions

준비작업

  1. aws에 회원가입합니다.
  2. git을 설치합니다. https://git-scm.com/
  3. vscode(https://code.visualstudio.com/)를 설치합니다. portable 버전은 설치하지 마세요.

WEB 수업

WEB

IaaS, PaaS, SaaS

S3

  • PaaS에 대한 이해
  • 클라우드의 편의성에 대한 공감
  1. 버킷을 생성한다.
  2. 버킷으로 파일을 업로드 한다.
  3. 파일을 다운로드 한다.
  4. 파일을 누구나 다운로드 할 수 있도록 한다. => 권한 : 모든 퍼블릭 엑세스 차단 해제 => 퍼블릭으로 지정
  5. 웹서버로서 s3를 사용한다.
  6. 요금체계 : https://aws.amazon.com/ko/s3/pricing/
  7. 클래스별 요금 체계 : https://docs.google.com/spreadsheets/d/114szGETmz8zKz0gPPaHBPmx5n0CO5fMzcNbmO0zOc4k/edit?usp=sharing
  8. 가용성과 내구성
  9. S3의 클래스 변경

EC2

  • IaaS에 대한 이해
  • 컴퓨터를 임대하는 개념에 대한 이해
  1. CLI 학습 - https://opentutorials.org/module/3747
  2. 인스턴스를 생성한다. (ubuntu 20 이상 버전을 사용해야 EC2 instant connect를 설정없이 사용할 수 있습니다)
  3. EC2 instance connect로 접속한다.
  4. SSH 로 접속 - 윈도우 유저의 경우 git(https://git-scm.com/)을 설치하고 git-bash를 이용한다. 접속명령 : ssh -i keypair ubuntu@ip
  5. index.html을 홈 디렉토리에 복사한다.
  6. 웹서버를 설치 및 실행한다. - php -S 0.0.0.0:80 이 동작하지 않는다면 sudo apt install php로 설치
  7. 웹서버에 접속해본다. => 접속이 안된다.
  8. Security Group을 설정한다. => http, https의 인바운드를 80번 포트로 변경한다.
  9. 웹서버에 접속한다. => 접속이 된다.
  10. EC2의 가격 정책을 확인한다.

C9

코딩하고 관리하기에 용이한 환경을 위한 설정

  • Create a new EC2 instance for environment => t3.nano => Ubuntu Server
  • C9의 가격 정책을 확인한다.

Cloud9

https://github.com/egoingsb/offline/blob/master/cloudfront.png?raw=true

  • Distribution 생성
    • Origin : 도메인 지정
    • Cache and origin request settings => Create a new policy => Minimum TTL => 300
  • http load test global 과 같은 검색어로 도구를 찾아서 속도 테스트를 한다.
  • 가격 정책을 확인한다.

Middleware - PHP

backend, middle, php, application server의 개념을 이해한다.

<html>
    <body>
        <h1><a href="/index.php">CLOUD</a></h1>
        <ul>
            <li><a href="index.php?id=S3">S3</a></li>
            <li><a href="index.php?id=EC2">EC2</a></li>
            <li><a href="index.php?id=CF">CF</a></li>
        </ul>
        <?php
        if(empty($_GET['id'])){
        ?>
            Hello is ..
        <?php
        } else if($_GET['id'] === 'S3'){
        ?>
            S3 is ...
        <?php
        } else if($_GET['id'] === 'EC2'){
        ?>
            EC2 is ...
        <?php
        } else if($_GET['id'] === 'CF'){
        ?>    
            CF is ..
        <?php
        } 
        ?>
    </body>
</html>

Database - MySQL

  1. RDS 인스턴스 생성
    • 제품 : MySQL
    • 모드 : 프로덕션
    • 마스터 사용자 이름과 마스터 암호 입력 - admin, qwertyuiop 권장 (절대로 실제 서비스에 이런 아이디/비밀번호를 이용하면 안됩니다)
    • DB 인스턴스 크기 : 버스터블 클래스 - micro
    • 스토리지 : 마그네틱
    • 가용성 및 내구성 : 대기 인스턴스를 생성하지 마십시오.
  2. 접속
    • EC2 인스턴스의 보안그룹 이름을 RDS VPC 보안 그룹의 허용 엑세스 포인트로 등록
    • mysql -uadmin -p -hdatabase-1.cdbrt00yi2pa.ap-northeast-2.rds.amazonaws.com
  3. 데이터베이스 생성
    • CREATE DATABASE mydb;
  4. 테이블 생성
    • CREATE TABLE topic(id int NOT NULL, title char(20) NOT NULL, description TINYTEXT);
  5. 데이터 입력
INSERT INTO topic VALUES(1, 'S3', 'S3 is ..');
INSERT INTO topic VALUES(2, 'EC2', 'EC2 is ..');
INSERT INTO topic VALUES(3, 'CF', 'CF is ..');
  1. index.php
<?php
$conn = mysqli_connect('database-1.cdbrt00yi2paz.ap-northeast-2.rds.amazonaws.com', 'admin', 'qwertyuiop', 'mydb');
$sql = 'SELECT * FROM topic';
?>
<html>
    <body>
        <h1><a href="/index.php">CLOUD</a></h1>
        <ul>
            <?php
            $query = mysqli_query($conn, $sql);
            while($row = mysqli_fetch_array($query)){
            ?>
                <li><a href="index.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></li>
            <?php
            }
            ?>
        </ul>
        <?php
        if(empty($_GET['id'])){
        ?>
            Hello is ..
        <?php
        } else {
            $query = mysqli_query($conn, "SELECT * FROM topic WHERE id = ".$_GET['id']);
            $result = mysqli_fetch_array($query);
        ?> 
            <h1><?php echo $result['title'];?></h1>
            <?php echo $result['description']; ?>
        <?php
        } 
        ?>
    </body>
</html>

Clone this wiki locally