[컴][웹] AWS 트래픽 줄이는 방법

aws 에서 비용 줄이는 방법 / aws traffic 감소 / 아마존 웹 서비스 트래픽 감소 / 트래픽 줄이는 방법 / 아마존 저렴하게 이용하는 방법 / 감소 방법 / 감소시키는 방법

AWS 트래픽 줄이는 방법

ref. 1 의 gameanaytics 라는 곳에서 자신들이 aws 의 traffic 을 줄인 방법을 소개했다. 여기서는 대략적인 내용만 적으려 한다. 자세한 이야기는 ref. 1을 읽어보도록 하자.
  1. http header 크기 줄이기

    // 줄이기전 header
    HTTP/1.1 200 OK
    Connection: Keep-Alive
    Content-Length: 15
    Content-Type: application/json
    accept-encoding: gzip
    Access-Control-Allow-Origin: *
    X-GA-Service: collect
    Access-Control-Allow-Methods: GET, POST, OPTIONS
    Access-Control-Allow-Headers: Authorization, X-Requested-With, Content-Type, Content-Encoding
    
    // 줄인 후 header
    HTTP/1.1 200 OK
    Connection: Keep-Alive
    Content-Length: 15
    Content-Type: application/json
    

  2. TLS handshake 횟수를 줄이기
    • TLS handshake 에서 가장 큰 크기는 certificate 의 trust chain 이었다.
    • 만약 client 가 2번째 service 에 접속하는 거면, server 에게 이전에 사용한 TLS session 을 요청한다.
    • 그래서 AWS Load balancer 에서 cache size 등을 조절해 보려했지만, 못찾았다.
    • 그래서 close connection 하는 시간을 10분으로 늘렸다.(기본 세팅은 60초)
  3. 인증서(certificate) 의 크기 줄이기
    • 인증서가 TLS handshake 할 때 certificate 교환을 하기에, certificate size 가 작아야 유리.
    • AWS 에서 무료로 제공하는 certificate 에는 trust chain 에는 intermediate certificate 이 3개나 있어서, size 가 더 컸다.
    • root certificate 만 있으면 되기에, Digicert 에서 따로 구매해서 사용했다.

References

  1. Three ways to reduce the costs of your HTTP(S) API on AWS - GameAnalytics, 2019-12-13

[컴][용어] SSD 관련 용어

용어 / ssd 사기전 알아두면 좋은 용어 / 하드웨어 용어 / 하드 / 플래시메모리 드라이브 / hdd /



SSD 관련 용어

  • SATA
    • 연결 유형(connectivity type)과 전송 프로토콜을 모두 나타낸다.
    • 2.5 인치 및 3.5 인치 하드 드라이브와 SSD를 PC에 연결하는 데 사용
    • SATA III 속도는 약 600MBps
    • 요즘 나오는 대부분의 SSD는 600 MBps 이상을 사용 
  • PCI-E
    • 이 인터페이스는 컴퓨터의 PCIe 레인 4개를 이용
    • PCIe gen. 3 는 4Gbps
    • 고급 NVMe SSD 드라이브 에 사용
    • M.2 드라이브를 PCIe 레인에 끼울 수 있게 해주는 어댑터도 있다.
  • NVMe
    • 비휘발성 메모리 익스프레스 기술(Non-Volatile Memory Express)의 약자
    • 이 기술이 적용된 SSD 드라이브를 제대로 이용하려면 PCIe 의 대역폭이 필수
  • M.2
    • M.2는 폼팩터(모양)
    • 대부분의 M.2 SSD는 NVMe 기술을 사용
    • 일부는 여전히 SATA를 이용 
  • U.2 및 mSATA
    • 오늘날 시장에서는 거의 이용되지 않는 인터페이스
    • 일부 구형 울트라북의 경우 M.2 대신 mSATA를 내장한 경우가 있다. 

References

  1. 2TB 용량이 200달러 이하 진입··· SSD 구매 체크포인트는? - CIO Korea, 2019-11-29



[컴][책] Data Architecture Solution

Data Architecture Solution / 데이터 구조

ITA Information Technology architecture (정보기술구조)

ITA 는 아래 3가지로 구성
  1. Enterprise architecture(전사적 구조)
    • Business Architecture
      • Business Process
      • Information Flows and Relationships : 정보의 흐름, 어디서 생성, 언제 업데이트 언제 폐기 되는 등의 관리 기준, 방법, 절차 등.
    • Data Architecture
      • Data Descriptions and Relationships : 무엇이 데이터이고, 그 데이터간의 관계는 어떻고 등의 이야기. 하지만 요즘의 시대에는 Information 이 곧 data 가 되는 사회라서, 과연 이것을 분리하는 것이 의미가 있는지 모르겠다.
    • Application Architecture
      • Applications : 실질적으로 data 를 이용하고, business 를 수행하는 주체이다. 구체적인 어플리케이션은 변동이 있을 수 있어, 그보다 상위의 application 의 기능에 대한 이야기 들을 주로 정립하는 것이라 보면 된다.
    • Technical Architecture
      • Technology Infrastructure : 물리적 계층 이라고 볼 수 있다. 실질적으로 사용하게 될 기술들에 대한 이야기를 적는다.
  2. Technical Reference Model(기술참조 모델)
  3. Standards Profile(표준 프로파일) : 기술참조모델 을 구현하기 위한 IT 표준들
ITA 에서 Enterprise architecture 를 만들기 위해 기술적인 부분이 정의돼야 하는데, 그것과 관련해서 참고해서 사용하는 것이 Technical Reference Model 이다. 즉 Technical Reference Model 에서는 기능에 대해 구체적인 동작? 을 적는다고 보면 된다. 이러이러한 기능이 가능해야 한다. 등 이 Model 을 좀 더 구체적으로 구현하기 위해서 현재의 기술들 중에 적합한 것을 선정할 것이고, 그 기술들에 대한 스펙 같은 것(profile) 을 모아 놓은 것이 Standard Profile 이 된다.
ITA 는 다음 5가지 를 충족할 수 있도록
  • 구조적
  • 시스템화
  • 구체적
  • 데이터화
  • 전문화
요약하면 시스템을 잘 만들어서, 전문화 하자. 인데, 이것을 위한 상위단계인 설계부분(architecture 를 설계하는) 부분도 포함하는 이야기를 하는 것.

Zachman 쟈크만 프레임워크, ITA framework

  1. Scope(Contextual), Planner
    • 먼저 아주 개괄적인 기획
    • 대략적으로 특정 business 에 대해서 구분 짓는다. ‘상품’, ‘사람’, 등
  2. Enterprise Model(Conceptual), Owner
    • 그 다음 기업에서 사용할 모델, 여기까지는 컨셉이다.
    • Contextual 에서 찾은 것을 이제 여러 entity 로 구체화한다. ‘사람’ 에 해당하는 ‘사원’, ‘고객’ 등에 대해서 어떤 종류의 사원이 있는지, 고객이 있는지 등에 대해 정의한다.
    • 여기부터는 DB modeling 이라고 여기면 될 듯 하다.
    • 다만 좀 더 핵심적인 entity 에 집중한다.
  3. System Model(Logical), Designer
    • 기업모델을 좀 더 세밀하게 논리적으로 표현
    • 각 entity 의 속성등을 표현. 특정 사람이 어떤 속성을 가져야 위에서 정의한 Conceptual 을 표현할 수 있는지 고려하고, 그에 맞게 속성, 관계등을 정의하면 된다. 이부분은 db table 의 column 을 정의하고, relationship 등을 정의하는 것등을 생각하면 될 듯 하다.
  4. Technology Model(Physical), Builder
    • 기술적 모델, 시스템 모델을 구현
    • 실질적으로 logical 에서 정의한 내용들을 RDBMS 등에서 table, index, key 등을 이용해서 정의한다.
  5. Detailed Representaions(Out of Context), sub contractor
    • 실질적인 구현, 흔히 프로그래머등이 액션하는 부분
프로그래머들이 어떻게 만들것인가 를 설계하는 과정에는 Enterprise Model, System Model, Technology Model 이 함께 고민된다고 보면 될 듯 싶다.
이미 data 가 존재하고 있는 상황에서는 ITA framework 를 revese engineering 을 통해 현재의 model 을 알아낸다. 그후에 이것을 다시 수정해 나간다.

Data architecture

이 책에서 설명하는 Data Architecture 는 위에서 이야기한 ITA framework 인 ‘쟈크만 프레임워크’ 의 구조를 그대로 가져온다.

Contextual Model

  • 4가지
    • 데이터 영역(Data Area)
    • 데이터 클래스(Data Class)
    • 인터렉션(Interaction)
    • 아티클 (Article) : data object 가 갖는 속성의 set
  • 데이터 영역을 구체화 한것이 Data Class
  • Interaction 도 Data Area 가 될 수 있다.
    • ‘계약’ 같은 데이터는 interaction 이면서 data 이다.
    • 어렵게 생각치 않아도 된다. 그저 db 에 저장할 만한 일인가를 판단하면 된다.
  • 개괄적인 개념이라서, 하위개념에 존재하는 모든 것들에 대한 추상화가 되어 있지 않아도 괜찮다.
    • (me: 하지만, 추후에 하위개념에서 추상적개념이 없던 것이 발생한다면, 관련된 추상화를 찾아서 추가하는 것도 고려해 보는 것도 좋을듯 싶다.)

Conceptual Model

  • Logical Modeling 과 비슷하다. 다만 대상을 핵심 entity 로 제한한다.

Logical Model

  • 데이터 모델링 이라고 보면 된다.
  • 본질적 내용을 중심으로 ‘형상화’, ‘체계화’
  • entity, relationship, attribute 를 정의하는 것
  • ERD 를 통해 표현할 수 있다.

Physical Model

  • ERD 등으로 표현되어진 ‘데이터 모델링’ 의 내용을 구체화 하는 단계다.
  • 예를 들면 RDBMS 등의 table 등의 schema 등을 만드는 것 처럼 구체적으로 구현한다.

Out-of-Context

  • 모델링에 대한 상세한 내역, description 등을 적는다.

계층간 Alignment

  • 현재 계층의 entity 가 상위 계층의 어느 부분을 구현한 것인가, 어떻게 상위 element 가 align 되었는지를 나타내는 것.

See Also

References

  1. Data Architecture Solution

[컴] 그리는 과정을 기록해 주는 앱

그리는 과정 녹화 / 앱 / 애플 / 아이패드 에서 그림 그리는 과정 녹화

그리는 과정을 기록해 주는 앱


  1. 아이패드 앱: 프로크리에이트 ProCreator

See Also


  1. 27 Procreate Alternatives & Similar Software – Top Best Alternatives

References


  1. 그림 그리는 과정 화면을 녹화? : 클리앙, 2019-07-19

[컴] AWS RDS 추가 계정 생성

aws rds instance 계정 생성 방법 / 추가 계정생성 방법 / aws db instance 계정생성 방법 / grant sql /



AWS RDS 추가 계정 생성 


grant 를 해줄 때 SELECT 만을 주면 안된다. EXECUTE 도 줘야 접속이 가능하다.

CREATE USER 'reader'@'222.111.99.55' IDENTIFIED BY 'mypassword';
DROP USER 'reader'@'222.111.99.55';



GRANT SELECT, EXECUTE
ON *.*
TO 'reader'@'222.111.99.55' WITH GRANT OPTION;

-- 모든 권한
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'all-round-user'@'%' WITH GRANT OPTION;

-- 권한확인
SHOW GRANTS FOR 'bob'@'localhost';
SHOW GRANTS FOR CURRENT_USER;

-- 특정 db 에 대한 모든 권한을 주는 법
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, EVENT, TRIGGER, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON mydatabase.* TO 'siteuser'@'%';
FLUSH PRIVILEGES;

아래처럼 주소를 변경할 수 있다.
RENAME USER 'reader'@'222.111.99.55' TO 'reader'@'222.111.99.%';

References

  1. RDS MySQL에서 마스터 사용자 권한이 있는 다른 사용자 생성
  2. Show Privileges in MySQL/MariaDB using SHOW GRANTS, With Examples
  3. mysql - AWS RDS - Access denied to admin user when using GRANT ALL PRIVILEGES ON the_db.* TO 'the_user'@'%' - Stack Overflow 

[컴][웹] 현재 사용하고 있는 DNS server 대신에 AWS 의 Route 53 을 사용하려 할 때

route 53 사용하기 / DNS 서버 설정 / AWS 에서 DNS 설정


현재 사용하고 있는 DNS server 대신에 AWS 의 Route 53 을 사용하려 할 때

AWS .com 등록 비용

옮기기

  1. 기존의 등록된 내용 확인
  2. hosted zone 생성
  3. record 생성하기
  4. TTL
  5. 현재 사용중인 DNS name server 의 NS record 에 AWS ns 를 추가
  6. 도메인 등록 에서 NS 를 AWS 의 NS 로 변경
  7. TTL 을 원래대로 돌려놓는다.

1. 기존의 등록된 내용 확인

c:\> nslookup -debug cocktailfunding.com

2. hosted zone 생성

  • 자신이 소유한 domain 인만 가능하다.
  • 자신의 domain 에 대해 Route 53 에게 어떻게 route 을 할 것인가 에 대해 알려주기 위해 생성해야 한다.
  • domain name 으로 zone 의 이름으로 해서 생성한다.
  • 이 hosted zone 내에서 record 를 생성하게 된다.
hosted zone 을 생성하면 Route 53 가 자동으로 아래 2개 record 를 생성한다. - NS record - 생성된 hosted zone 과 연관된 4개의 name server 들 이 기록된다. --> 여기 name server 를 도메인등록(registration for the domain) 한 곳에 가서 넣어주면 된다. - SOA record : SOA 관한 설명
이 2개의 record 는 지우면 안된다. 그리고 다른 NS, SOA record 를 생성해도 안된다고 되어 있다.

3. record 생성하기

4. TTL

  • NS record 에 대한 TTL 은 보통 2일(172800 초) 정도 이다. 그래서 이것을 임시적으로 낮춰서 빠르게 새로운 NS 로 update 를 시켜줄 필요가 있다.
  • ref.1 에서의 추천은 다음 2곳의 TTL 을 모두 변경하는 것이다. 60초 ~ 900초 수준으로 변경하면 된다.
    • 현재 사용중인 DNS server 의 NS record TTL
    • 위의 “hosted zone 생성” 에서 생성된 NS record 의 TTL
  • 보통 DNS resolvers 가 현재의 DNS service provider 가 제공하는 name server 들의 이름을 caching 하고 있다. 만약 방금 그 내역을 가져왔다면, 2일동안은 계속 그 이름을 기억할 것이다.

5. 현재 사용중인 DNS name server 의 NS record 에 AWS ns 를 추가

이렇게 해서 제대로 동작하는지 확인을 1차적으로 할 수 있다.

개인적인 생각은 도메인 등록기관(registrar) 의 NS 등록에 추가하는 것도 괜찮을 듯 하다.

6. 도메인 등록 에서 NS 를 AWS 의 NS 로 변경

도메인 등록기관(registrar) 에서 domain 에 대한 NS 를 설정하게 하는데, 그곳에 가서 NS 를 Rout53 으로 변경해 주자.

7. TTL 을 원래대로 돌려놓는다.

See Also

  1. Amazon Route 53 pricing - Amazon Web Services

References

  1. Making Route 53 the DNS Service for a Domain That’s in Use - Amazon Route 53