블로그

  • 기능점수 FP

    기능점수 계산 사이트

    https://www.sw.or.kr/site/sw/biz/cow_write1.do

    사업수주하고 입찰할때 서류작업시에 기능점수를 계산할 일이 있었다.

    기능별로 점수를 매기고 단가를 책정 하는 지표로 처음 해보는거라 진땀을 뺏던 기억이 있다.

    그것도 능력도 안되게 초짜 개발자가 초짜 팀장까지 하다보니 겪었던 추억아닌 추억이다.

  • META TAG (SEO, OPEN GRAPH)

    <head>
      <!-- 기본 문서 정보 -->
      <meta charset="utf-8">
      <meta
        name="viewport"
        content="width=device-width, initial-scale=1"
      >
    
      <!-- 기본 SEO -->
      <title>페이지 제목 | 사이트명</title>
      <meta
        name="description"
        content="페이지 내용을 요약한 설명입니다."
      >
      <link
        rel="canonical"
        href="https://example.com/current-page"
      >
    
      <!-- 검색엔진 제어 -->
      <meta
        name="robots"
        content="index, follow"
      >
    
      <!-- Open Graph -->
      <meta property="og:type" content="website">
      <meta property="og:title" content="페이지 제목">
      <meta
        property="og:description"
        content="페이지 내용을 요약한 설명입니다."
      >
      <meta
        property="og:url"
        content="https://example.com/current-page"
      >
      <meta
        property="og:image"
        content="https://example.com/images/og-image.jpg"
      >
      <meta
        property="og:image:secure_url"
        content="https://example.com/images/og-image.jpg"
      >
      <meta property="og:image:type" content="image/jpeg">
      <meta property="og:image:width" content="1200">
      <meta property="og:image:height" content="630">
      <meta
        property="og:image:alt"
        content="이미지 내용을 설명하는 대체 텍스트"
      >
      <meta property="og:site_name" content="사이트명">
      <meta property="og:locale" content="ko_KR">
    
      <!-- X / Twitter Card -->
      <meta
        name="twitter:card"
        content="summary_large_image"
      >
      <meta
        name="twitter:title"
        content="페이지 제목"
      >
      <meta
        name="twitter:description"
        content="페이지 내용을 요약한 설명입니다."
      >
      <meta
        name="twitter:image"
        content="https://example.com/images/og-image.jpg"
      >
      <meta
        name="twitter:image:alt"
        content="이미지 내용을 설명하는 대체 텍스트"
      >
    </head>
  • 리눅스 파일압축 TAR

    1. tar로 압축하기

    > tar -cvf [파일명.tar] [폴더명]

    ex) abc라는 폴더를 aaa.tar로 압축하고자 한다면

    tar -cvf aaa.tar abc

    2. tar 압축 풀기

    > tar -xvf [파일명.tar]

    ex) aaa.tar라는 tar파일 압축을 풀고자 한다면

    tar -xvf aaa.tar

    3. tar.gz로 압축하기

    > tar -zcvf [파일명.tar.gz] [폴더명]

    ex) abc라는 폴더를 aaa.tar.gz로 압축하고자 한다면

    tar -zcvf aaa.tar.gz abc

    4. tar.gz 압축 풀기

    > tar -zxvf [파일명.tar.gz]

    ex) aaa.tar.gz라는 tar.gz파일 압축을 풀고자 한다면

    tar -zxvf aaa.tar.gz

    -c 파일을 tar로 묶음
    -p 파일 권한을 저장
    -v 묶거나 파일을 풀 때 과정을 화면으로 출력
    -f 파일 이름을 지정
    -C 경로를 지정
    -x tar 압축을 품
    -z gzip으로 압축하거나 해제함

  • 리눅스 물리 디스크 확인 ssacli

    IDC의 서버 장비를 업그레이드 할일이 생겼다

    하지만 난 서버에 디스크가 어떻게 설치되어 있는지 알지 못하는 상태라 원격으로 리눅스 명령어로 알아볼 수 밖에 없었다.

    하지만 ssd는 4개나 꽂혀있었고 모두 raid1로 2개씩 묶여 있었다.

    뭐가뭔지 알수가 있어야지…

    1단계. 인터넷 연결 확인

    먼저 HPE 저장소 접속이 가능한지 확인합니다.

    curl-I <https://downloads.linux.hpe.com>
    

    또는

    wget--spider <https://downloads.linux.hpe.com>
    

    정상이라면 HTTP/1.1 200 OK 또는 연결 성공이 나옵니다.


    2단계. RPM 다운로드

    작업 디렉터리로 이동합니다.

    cd /tmp
    

    다운로드

    wget <https://downloads.linux.hpe.com/SDR/repo/mcp/centos/7/x86_64/current/ssacli-5.10-44.0.x86_64.rpm>
    

    또는 최신 MCP 저장소에서도 동일한 패키지를 받을 수 있습니다.

    다운로드 확인

    ls -lh ssacli-*.rpm
    

    3단계. 설치

    sudo yum localinstall-y ssacli-5.10-44.0.x86_64.rpm
    

    또는

    sudo rpm -ivh ssacli-5.10-44.0.x86_64.rpm
    

    yum localinstall을 권장합니다. 필요한 의존성을 함께 처리해 줍니다.


    4단계. 설치 확인

    ssacli version
    

    또는

    which ssacli
    

    5단계. RAID 및 물리 디스크 조회

    RAID 전체 구성

    ssacli ctrl all show config
    

    물리 디스크 목록

    ssacli ctrl slot=0 pd all show
    

    물리 디스크 상세 정보 (추천)

    ssacli ctrl slot=0 pd all show detail
    

  • 리눅스 용량 확인(df/du)

    자주쓰는 명령

    #전체 하드 용량 확인 
    df -h --total
    
    #하위 폴더 용량 확인
    du -sh *

    요약하면

    df(Disk Free)= 스토리지 전체가 얼마나 찼는가

    du(Disk Usage) = 스토리지 안에서 각 디렉토리가 얼마나 공간을 차지하는가

    DF

    df : 디스크의 남은 용량을 확인

    df -k : 킬로바이트 단위로 현재 남은 용량을 확인

    df -m : 메가바이트 단위로 남은 용량을 왁인

    df -h : 보기 좋게 보여줌

    df . : 현재 디렉토리가 포함된 파티션의 남은 용량을 확인

    DU

    du : 현재 디렉토리에서 서브디렉토리까지의 사용량을 확인

    du -a : 현재 디렉토리의 사용량을 파일단위 출력

    du -s : 총 사용량을 확인

    du -h : 보기 좋게 바꿔줌

    du -sh * : 한단계 서브디렉토리 기준으로 보여준다.

  • Lightsail VHOST SSL

    비용을 아껴보려고 lightsail을 사용해보려고 한때가 있었다

    당연하게도 인증서도 저렴하게 쓸 생각이었고

    bitnami 가 기본 설치되어 있었으니 그걸 최대한 활용

    1. 인증서만 발급

    **하기전에 DNS에 해당 도메인 a레코드를 등록해야한다(www, non-www 둘다)

    LEGO ->

    sudo /opt/bitnami/ctlscript.sh stop
    
    //sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" run
    sudo /opt/bitnami/letsencrypt/lego --tls --email="mail@mail.kr" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" run
    
    sudo /opt/bitnami/ctlscript.sh start
    

    → 이후

    /opt/bitnami/apache/conf/extra/httpd-vhost.conf

    ex)
    <VirtualHost *:80>
        DocumentRoot "/opt/bitnami/apache/htdocs"
        ServerName DOMAIN
        ServerAlias www.DOMAIN
        #https로 리다이렉트
        RewriteEngine On
    	RewriteCond %{HTTPS} !on
    	RewriteCond %{HTTP_HOST} ^www\. [NC]
    	RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    	RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=permanent]
    	RewriteCond %{HTTPS} !on
    	RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [L,NE,R=permanent]
    </VirtualHost>
    

    /opt/bitnami/apache/conf/bitnami/bitnami-ssl.conf

    ex)
    <VirtualHost *:443>
      DocumentRoot "/opt/bitnami/apache/htdocs"
      ServerName DOMAIN:443
      ServerAlias www.DOMAIN
      SSLEngine on
      SSLCertificateFile "/opt/bitnami/letsencrypt/certificates/DOMAIN.crt"
      SSLCertificateKeyFile "/opt/bitnami/letsencrypt/certificates/DOMAIN.key"
    
      # BEGIN: Configuration for letsencrypt
      Include "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
      # END: Configuration for letsencrypt
      
      #www -> non-www redirect
      RewriteEngine On
    	RewriteCond %{HTTP_HOST} ^www\. [NC]
    	RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    	RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=permanent]
    
      ErrorLog "logs/DOMAIN-error_log"
      CustomLog "logs/DOMAIN-access_log" common
    </VirtualHost>
    

    의 파일 적절히 수정

    2**. 자동갱신 크론탭**

    /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

    #!/bin/bash
    sudo /opt/bitnami/ctlscript.sh stop apache
    sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
    sudo /opt/bitnami/ctlscript.sh start apache

    해당 도메인 추가 입력

    → 저 파일을 반복 실행하도록 크론탭 등록해뒀음,(매달 1일 새벽 5시 실행)

  • PHP cURL(GET,POST)

    cURL이란?

    다양한 프로토콜로 데이터 전송이 가능한 Command Line Tool이다.

    cURL 사용법

    1) GET 방식

    $data = array(
        'test' => 'test'
    );
    
    $url = "<https://www.naver.com>" . "?" , http_build_query($data, '', );
    
    $ch = curl_init();                                 //curl 초기화
    curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      //connection timeout 10초 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //원격 서버의 인증서가 유효한지 검사 안함
     
    $response = curl_exec($ch);
    curl_close($ch);
     
    return $response;
    

    2) POST 방식

    $data = array(
        'test' => 'test'
    );
     
    $url = "<https://www.naver.com>";
     
    $ch = curl_init();                                 //curl 초기화
    curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      //connection timeout 10초 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //원격 서버의 인증서가 유효한지 검사 안함
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);       //POST data
    curl_setopt($ch, CURLOPT_POST, true);              //true시 post 전송 
     
    $response = curl_exec($ch);
    curl_close($ch);
     
    return $response;
    

    3) 결과 값 및 오류 확인

    $response = curl_exec ($ch);
     
    var_dump($response);        //결과 값 출력
    print_r(curl_getinfo($ch)); //모든 정보 출력
    echo curl_errno($ch);       //에러 정보 출력
    echo curl_error($ch);       //에러 정보 출력
    
    
  • apache cli 아파치 명령어

    요즘은 nginx를 많이 쓰다보니 거의 까먹고 있었는데

    아파치 기본 명령어들 정리해보았다

    기본은 systemctl, httpd 또는 apachectl 중 하나를 사용.

    os 에 따라선 apache2 를 사용하기도 한다.

    service apache2 restart 이런식으로 말이다

    Apache 상태 확인

    # systemctl status httpd
    
    # service httpd status

    apache start

    # systemctl start httpd
    
    # service httpd start
    
    # apachectl start

    apache stop

    # systemctl stop httpd
    
    # service httpd stop
    
    # apachectl stop

    apache restart

    # systemctl restart httpd
    
    # service httpd restart
    
    # apachectl restart
  • DDNS – duckdns

    시놀로지 나스를 사용하면서 ddns의 존재를 알게되었지만

    일반적으로 사용 할 일이 없었다

    서버는 대체로 고정IP를 쓰고 있으니…

    하지만 유동환경인 경우도 있고 이 서버를 바라보는 어떤것을 만들때 유용할 것이다.

    아래 내용은 참고 블로그에서 긁어옴

    https://jimnong.tistory.com/788

    통상적으로 DDNS는 공유기 내장 기능으로 설정하시지요? 그런데 저전력 홈서버(24시간 켜져있는 PC)를 쓰고 계신다면 DDNS 정도는 홈서버에 넘겨버릴 수 있습니다. 무료 DDNS 서비스인 DuckDNS를 이용하면 되는데, DuckDNS가 리눅스, 윈도우, 맥OS, 안드로이드, 라즈베리파이, OpenWrt, 시놀로지 등등 다양한 OS와 하드웨어를 지원하기 때문에… 홈서버가 아니더라도 남아도는 스마트폰으로 DDNS를 설정할 수 있기도 합니다(항상 켜놓고 와이파이 연결해 놔야겠죠).

    이번 글에서는 우분투에서 DuckDNS로 DDNS를 설정하는 과정을 설명하겠습니다.

    https://www.duckdns.org

    ▲ DuckDNS 사이트 회원가입 필요합니다. 링크 타고 들어가세요.

    ▲ 현재 가입은 소셜계정으로만 받고 있습니다(개인정보 자체 수집 없음). 가지고 계신 SNS 계정으로 가입+로그인하세요.

    ▼ DuckDNS는 본인이 생성한 DDNS 주소와 token 값을 우분투에 입력해서 설정하게 됩니다. 그러니까 로그인 후 나오는 화면에 token 값이 안 보이면 token을 create하거나 recreate해서 우리 눈에 보이도록 해야 합니다(그래야 우리가 복사+붙여넣기 할 수 있음.). recreate token은 우측 상단 ||| 버튼을 누르면 나타납니다.

    나중에라도 DDNS 쓰다가 토큰이 불특정 다수에게 노출돼서 단도리를 해야 되는 상황이 오면 recreate token 누르고 본인의 DDNS 설정도 바꿔주면 되겠죠?

    ▲ 토큰 생성을 마쳤다면 sub domain 이름을 정하고 add domain 버튼을 눌러서 본인만의 DDNS 주소를 만들어주세요. 아마 자동으로 current ip에 현재 회선의 외부 IP가 입력되었을 겁니다. 나중에 DDNS 주소의 IP를 바꾸고 싶다면 https://www.findip.kr/ 사이트에 가서 외부IP 주소를 알아내어 바꿔주면 됩니다.

    DuckDNS 서버측 세팅은 이것으로 끝난 거예요. 웹브라우저 주소창에 (본인 IP주소 대신) XXXX.duckdns.com 형식으로 입력하면 본인 컴퓨터에 접근할 수 있게 된 것인데, 공유기 방화벽이나 우분투(리눅스) 방화벽을 쓰고 있다면 XXXX.duckdns.com 이라고 치더라도 접근이 안될 겁니다. 방화벽을 해제하거나(비추천) 원하는 포트를 열어주세요(공유기 포트포워딩 기능 등으로 – 추천). 테스트 차원에서 공유기 관리자페이지 접근용 포트만 열어두는 것도 방법이 될 수 있겠죠?

    ※ 공유기 관리자페이지 접근용 포트를 여는 것은 개념만 익히면 공유기 브랜드에 상관없이 적용할 수 있습니다. 참고용 포스팅들을 적어둘게요.

    Dlink 디링크 DIR-615 공유기 DDNS 설정 방법

    DuckDNS(무료 DDNS) 가입, 설정, 공유기 세팅(Padavan 펌웨어)

    각설하고, 우분투 홈서버 쪽을 세팅해봅시다.

    사실 DuckDNS 사이트에 로그인한 다음 install 탭을 눌러보면 설명이 자세하게 나옵니다.

    (직링크 : https://www.duckdns.org/install.jsp )

    저는 그 설명에 나온 과정을 스크린샷을 보태서 쉽게(?) 설명하는 것 뿐입니다.

    ▲ 위 스샷처럼 로그인한 다음 install 탭을 클릭하고 OS나 Router(공유기)들 중에서 본인의 환경을 선택하면 설명이 나오는 겁니다.

    ▲ 본인이 생성한 DDNS 주소를 고르면…

    ▼ 아래처럼 자세한 설명이 나오는데… 복잡하게 느껴지더군요.

    그래도 따라해야 합니다. 하나씩 설명을 해볼게요.

    ▲ 중간쯤에 있는 “echo url=블라블라” 형태의 초록색 글씨를 복사(Ctrl+C)해두면 좋습니다.

    ▼ 터미널 창에서

    ps -ef | grep cr[o]n

    curl

    이라고 쳐서 cron과 curl이 구동되고 있는지 확인합니다. 아래 스샷처럼 나오면 되는 거예요.

    ▼ duckdns라는 디렉토리를 만들고, 그 디렉토리에 duck.sh 파일을 만들면서 에디터(nano, gedit 등)로 엽니다.

    ▲ 저는 루트 계정으로 진행하고 싶어서 최상위 경로(/)로 이동 후 sudo 명령어를 붙여 진행했습니다. 만약 본인 계정명으로 진행하고 싶다면 /home/계정명 경로(cd ~ 라고 입력)로 이동한 다음 그 위치에서 (sudo 명령어 안 붙이고) 일련의 과정을 처리하면 됩니다.

    참! 디렉토리 경로를 기억해두세요! (저는 /duckdns 네요.)

    ▼ 조금 전, 위에서 “echo url=블라블라” 형태의 초록색 글씨를 복사(Ctrl+C)해두면 좋다고 했었죠? duck.sh 의 내용을 그것으로 채우고 저장+빠져나옵니다.

    ▲ 이 때 로그파일(duck.log)의 경로 주의! 초록색 텍스트에는 ~/duckdns/라고 적혀 있는데, duck.sh 파일이 있는 곳의 경로와 일치시키는 것이 좋습니다. 위에서 붉은 글씨로 디렉토리 경로를 기억해두라고 써놨었잖아요? 이 부분 때문에 그랬던 겁니다.

    ▲ chmod 700 duck.sh 이라고 치면 소유자(user)에게는 duck.sh 파일을 읽고+쓰고+실행할 수 있는 권한을 주고, 그룹(group)과 기타 사용자(others)에게는 duck.sh에 대한 어떠한 권한도 주지 않게 됩니다. 소유자가 duck.sh 파일을 실행할 수 있게끔 하는 것이 이 작업의 핵심이고요,

    duck.sh 스크립트 파일을 일정 시간마다 자동 실행되게끔 하기 위해 crontab에 등록하는 과정이 필요합니다. crontab -e 라고 치면 현재 로그인한 계정의 크론탭 설정을 편집할 수 있는데, 저는 루트 계정으로 DDNS를 작동시킬 거라 명령어 앞에 sudo를 붙였습니다(sudo gedit /var/spool/cron/crontabs/root 처럼 입력해도 됩니다. /var/spool/cron/crontabs/ 경로에 우분투 계정 이름으로 계정별 crontab 파일이 있거든요.).

    ▲ 붉게 밑줄친 것처럼 입력하면 15분에 한 번씩 duck.sh 파일을 실행하게 됩니다. IP주소 변동을 체크하게 되겠죠? DuckDNS 사이트의 가이드에는 5분마다 실행하도록 권장하는데, 저는 그정도까지는 필요 없다고 생각해서 시간 간격을 늘렸습니다. 입력이 끝났다면 저장하고 빠져나옵니다.

    참고로 크론탭은

            • 수행할 명령어

    이런 형식으로 구성하면 되는데, * * * * * 의 각 자릿값은 “분(0~59) / 시(0~23) / 일(1~31) / 월(1~12) / 요일(0~6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일)” 을 뜻합니다.

    만약 리눅스에 익숙치 않아서 Crontab 구성이 어렵게 느껴지면 https://crontab.guru/ 사이트에서 제공하는 GUI를 통해 극복해보세요

    ▲ GUI로 봐도 복잡하군요. @.@;;

    참고로 터미널 창에서 sudo crontab -l 이라고 입력하면 루트 계정의 크론탭 작업목록을 확인할 수 있고, “sudo crontab -l -u 계정명” 처럼 입력하면 우분투 계정별 크론탭 작업목록을 확인할 수 있습니다.

    ▲ 이제 duck.sh 스크립트 파일 실행 테스트. 터미널 창에서 “duckdns 디렉토리 경로/duck.sh” 형식으로 입력하면 위 스샷처럼 나올 겁니다. “duckdns 디렉토리 경로/cat duck.log” 형식으로 입력했을 때 OK라는 메세지가 나오면 정상적으로 돌아가고 있다는 뜻이고, KO라고 뜨면 잘못된 것이니 duck.sh 파일을 편집하여 DDNS 주소와 토큰을 정정해줍니다. => 엄청난 실수를 저지르지 않는 한 OK 메세지를 보게 되실 거예요.

    세팅 끝!

    따라오느라 고생 많으셨습니다.

  • AWS 설정 정리

    AWS 구축 리스트

    AMI – EC2 (Amazon Linux AMI 2018.03.0 (HVM) 기준)

    • LAMP 설치 (PHP 용)
      — DB(mysql 등) : 보안설정하면 외부에서 접속가능 / 다른 인스턴스 끼리 디비접속하여 사용 가능
    • EBS(스토리지) : EC2에 기본 스토리지, 8g 기본 30g 까지가 프리티어
    • *보안그룹 – HTTP(80) HTTPS(443) SSH(22) MYSQL/Aurora(3306) <<– 인스턴스 생성시 보안설정 유의
    • 기본적으로 EC2 인스턴스에 접속하려면 key 파일이 필요함(비번대신, 처음 인스턴스 만들떄 생성) 하나로 돌려쓰기 가능
    • user는 이미 정해져 있음
      Amazon Linux AMI의 경우 사용자 이름은 ec2-user <<– 이거사용
      RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root
      Ubuntu AMI의 경우 사용자 이름은 ubuntu 또는 root
      Centos AMI의 경우 사용자 이름은 centos
      Fedora AMI의 경우 사용자 이름은 ec2-user
      SUSE의 경우 사용자 이름은 ec2-user 또는 root

    putty(SSH) 접속방법

    • puttygen으로 key(pem)파일을 ppk파일로 변환후 Connection > SSH > Auth 에서 파일 경로지정, HOST에 ec2-user@퍼블릭DNS 로 접속한다
    • mac 에서는 키파일 퍼미션 에러가 발생 → chmod 400 key.pem 명령어로 권한 제한을 건다

    파일질라(sftp) 접속방법

    • 프로토콜 : sftp / HOST : 퍼블릭DNS / 로그온유형 : 키파일 / 사용자 : ec2-user / 키파일 : pem 파일 경로지정

    HeidiSQL(DB) 접속방법

    • 설정 탭 : 네트워크유형 : MariaDB or MySQL (SSH tunnel) / 호스트 : 127.0.0.1 / 사용자 : root / 암호 : 암호
    • SSH 터널 탭 : Plink.exe 경로설정 / SSH호스트 + 포트 : 퍼블릭 IP / 사용자 : ec2-user / 개인키파일 : ppk 파일 경로 설정

    이미지

    • AMI : 인스턴스의 이미지를 생성후 그걸로 똑같은 인스턴스 생성가능

    탄력적IP

    • 공인IP : 원하는 인스턴스에 연결하여 사용가능, 1개는 프리티어

    보안자격증명

    • 액세스 키와 시크릿 키가 있다
    • 모든 권한을 가진 root의 키를 만들거나 사용자를 따로 만들어 해당 기능 권한을 주고 키를 만들 수있다.
    • root : 내 보안 자격 증명
    • 액세스 관리 > 사용자 : 사용자 생성 및 키 생성가능

    S3 (스토리지전용 서비스) : 5G 까지 프리티어

    • 버킷을 만들고 퍼블릭 액세스 설정, 웹상에서 파일관리 가능
    • java 프로젝트와 연동하려면 해당 기능 개발해야함
    • 사용자(보안자격증명 설정), 액세스키, 시크릿키 필요

    RDS(DB전용 서비스)

    • 퍼블릭 액세스, 보안그룹설정으로 접속가능
    • 보안그룹은 인스턴스간, 퍼브릭 액세스 등의 인바운드 규칙을 설정 (ip,port,보안그룹 등 설정)
    • 스냅샷, 자동백업 가능
    • 생성시 루트유저와 비번 설정
    • 엔드포인트가 기존의 호스트 역할(접속주소)

    로드밸런싱

    • 가용영역(서브넷) 2개 이상 설정
    • 보안그룹 설정
    • 대상그룹에 인스턴스, ip, 람다함수 등 등록
    • 생성후 대상 그룹 탭에서 사용가능한 인스턴스 -> 타겟으로 옮겨줘야 함

    Route 53 (DNS) : 도메인 구매 및 연결

    *S3 활용 방안 → 클라우드 프론트 혹은 IMGX

    *로드밸런서 → 세션 유지는 디비로