데이터 수집 프로세스

1. 필요한 수집 데이터 도출

2. 데이터 목록 작성

3. 데이터 소유기관 파악 및 협의

4. 데이터 유형 분류 및 확인

5. 수집 기술 선정

6. 수집 계획서 작성

7. 수집 주기 결정

8. 데이터 수집 실행

정형 데이터 수집 방식/기술

- ETL : 추출 > 변환 > 적재 => DW, DM

- FTP : TCP/IP 기반, active/passive FTP

- DB to DB : DB간 동기화

- Rsync : 파일과 디렉토리 동기화

- 스쿱 : RDBMS에서 하둡으로 데이터 전송, 전송 병렬화, 프로그래밍 방식의 인터렉션, 벌크 임포트

반정형 데이터 수집 방식/기술

- 센싱

- 스트리밍

- 플럼 : pub/sub 구조, pull 방식, 파일기반 저장방식, 소스/채널/싱크로 구성

- 스크라이브

- 척와 : 분산된 서버의 에이전트 실행 > 컬렉터가 데이터 수집 > 싱크는 임시저장 역할, 청크 단위 전송

비정형 데이터 수집 방식/기술

- 크롤링

- RSS : 새로 게시된 글 공유, XML 기반

- Open API : 실시간 데이터 송수신

- 스크래파이(scrapy) : 파이썬 기반

- 아파치 카프카 : 대용량 실시간 로그 처리, 스트리밍 플랫폼, 생상자/소비자/카프카 클러스터

데이터 속성

- 범주형(질적 변수) : 명목형, 순서형

- 수치형(양적 변수) : 연속형, 이산형

데이터 측정 척도 [명순구비]

- 명목 척도 : 값은 의미만 가짐, 혈액형

- 순위 척도(서열 척도) : 값이 서열을 의미, 맛집 평점

- 구간 척도(등간/간격/거리 척도) : 동일 간격으로 차이 비교, 미세먼지 수치

- 비율 척도 : 절대 영점 있음, 순서와 의미가 모두 있음, 나이/키

데이터 변환 기술

- 평활화 : 잡음을 제거를 위한 이상값 제거, 데이터를 매끄럽게 변환

- 집계 : 그룹 연산 수행

- 일반화 : 스케일링, 범용적 데이터로 변환

- 정규화 : 정해진 구간내로 변환 (최소-최대 정규화, z-스코어 정규화, 소수점 정규화)

- 속성 생성 : 속성이나 특성을 이용해 일반화

데이터 비식별화 처리 기법 [가총범삭마]

- 명처리 : 휴리스틱 익명화, K-익명화, 암호화, 교환(swaping)

- 계처리 : 단순집계, 부분집계, 라운딩(올림,내림), 데이터 재배열

- 주화 : 단순평균, 랜덤 올림/절사, 분포/구간 표현 등

- 제 : 속성값 삭제, 데이터 행 삭제 등

- 스킹 : 임의 잡음값 추가, 공백/대체

데이터 품질 특성

- 유효성 [일정]

> 관성 [일정무] : 치성,합성,결성

> 확성 [필연적사정] : 수성, 관성, 합성, 실성, 확성

- 활용성 [유접적보]

> 용성 : 충분성, 유연성 사용성, 추적성

> 근성

> 시성

> 안성

데이터 변환후 품질 검증 프로세스

- 빅데이터 수집 > 메타 데이터 수집 > 메타 데이터 분석 > 데이터 속성 분석

빅데이터 적재 소프트웨어 아키텍처 정의

- 수집 : 크롤러, ETL, 연계/수집 플랫폼

- 적재 및 저장 : 데이터 구성 플랫폼, RDB, NoSQL, Object 스토리지, 빅데이터 자원관리

- 분석 : 빅데이터 분석 모델, 분석 플랫폼

- 활용 : 데이터 시각화, 데이터 활용 플랫폼, Open API 서비스

데이터 적재 도구

- Fluentd, 플럼, 스크라이브, 로그스태쉬(logstash)

데이터 저장 기술

- 분산 파일 시스템, 데이터베이스 클러스터, NoSQL, 병렬 DBMS, 네트워크 구성 저장 시스템, 클라우드 파일 저장 시스템

구글 파일 시스템(GFS)

- 파일을 청크단위(64MB) 나눠, 여러 복제본을 청크서버에 분산/저장

- 클라이언트(posix 미지원), 마스터, 청크 서버로 구성

- 클라이언트가 GFS 마스터에 파일 요청 > 마스터는 청크의 매핑정보 찾아서 해당 청크 서버에 전송 요청 > 해당 청크 서버는 클라이언트에서 청크 데이터 전송

하둡 분산 파일 시스템(HDFS)

- 블록 구조의 파일시스템

- 1개 네임노드 : 메타데이터 관리, 마스터 역할, 데이트 노드로 하트비트 받아 노드상태/블록상태 체크

- 1개 이상 보조 네임노드 : HDFS 상태 모니터링, 네임노드의 주기적 스냅샷

- N개 데이터 노드 : 슬레이브 노드, 데이터 입출력 처리, 3중 복제 저장

러스터

- 객체 기반 클러스터 파일 시스템

- 계층화된 tcp/ip, 인피니밴드 지원

- 클라이언트 파일 시스템(고속 네트워크 연결), 메타데이터 서버, 객체 저장 서버로 구성

데이터베이스 클러스터

- 공유 디스크 클러스터(ex.RAC), 무공유 클러스터(ex. galera)

NoSQL

- schemaless, 조인연산 x, 수평적 확장 가능, BASE, CAP 이론에서 2개 속성만 만족

- Key-value(redis, dynamoDB), Column Family(cassandra, HBase), Document(mongdb, couchbase), Graph(neo4j, allegroGraph)

BASE

- Basically Available : 언제든 데이터 접근 가능, 분산 시스템이라 가용성 의미

- Soft state : 특정 시점에 일시적 일관성 미보장, 외부 전송된 정보로 노드상태 결정

- Eventaully consistency : 결국 일관성을 마춰짐

CAP 이론

- Consistency(일관성), Availability(가용성), Partition Tolerance(분산 가능) 에서 2가지만 만족

- C + A => RDBMS

- A + P => NoSQL

- C + P => NoSQL

데이터 분석의 하향식 접근 방식

- ★분석 과제가 정해짐 > 해결방안 탐색

분석 역량(Who)
분석기법 및 시스템(How)
구분
확보
미확보
기존 시스템
기존 시스템 개선
역량 확고
신규 도입
고도화
전문업체 소싱

데이터 분석의 상향식 접근 방식

- ★문제 정의가 안된 상태

- 디자인 사고 접근법, 비지도 학습, 프로토타이핑 접근법 사용

빅데이터 분석 기획 유형 [OSID] - ("운영체제 아이디")

분석 대상(what)
분석
방법
(how)
 
known
unknown
known
Optimization
(최적화)
Insight
(통찰)
unknown
Solution
(솔루션)
Discovery
(발견)

데이터분석 우선순위 평가기준

- 난이도 : 투자비용요소(volume, variety, velocity)

- 시급성 : 비즈니스 효과(value)

- 분석과제의 적용 우선순위가 '시급성'이면 3-4-2, '난이도'라면 3-1-2 순으로 의사결정 수행

 
현재 시급성 미래
어려움
난이도
쉬움
1
2
3
4

빅데이터 분석 방법론 계층 [단태스]

- 단계 : 완성된 단계별 산출물 생성, 기준선/버전관리

- 태스크 : 단계를 구성하는 단위 활동

- 스텝 : input/tool/output 으로 구성된 단위 프로세스

빅데이터 분석 방법론의 분석절차

1. 분석 기획 : 비즈니스 이해와 범위 설정, 프로젝트 정의와 계획 수립, 프로젝트 위험 계획 수립

2. 데이터 준비 : 필요 데이터 정의, 데이터 스토어 설계, 데이터 수집 및 정합성 점검

3. 데이터 분석 : 분석용 데이터 준비, 텍스트 분석, 탐색적 분석, 모델링, 모델 평가 및 검증

4. 시스템 구현 : 설계 및 구현, 시스템 테스트 및 운영

5. 평가 및 전개 : 모델 발전 계획 수립, 프로젝트 평가 및 보고

KDD 분석 방법론 (5개 절차)

- 통계적 패턴/지식 찾기 위해 정리한 방법론

1. 데이터 셋 선택 : 도메인 이해, 타겟 데이터 구성

2. 데이터 전처리 : 노이즈 이상치, 결측값 제거

3. 데이터 변환 : 변수 찾고 차원축소

4. 데이터 마이닝 : 알고리즘 선택, 패턴 찾기, 데이터 분류, 예측 작업

5. 결과 평가 : 결과의 해석/평가, 발견된 지식 활용

CRISP-DM 분석 방법론 (4개 구성요소, 6개 절차)

- 데이터 분석 목적의 데이터 마이닝 방법론

- 구성 [단일세프] : 계 > 반화 태스크 > 분화 태스크 > 로세스 실행

1. 업무 이해 : 목적/상황 파악, 데이터 마이닝 목표 설정, 프로젝트 계획 수립

2. 데이터 이해 : 초기 데이터 수집/기술 분석/탐색/품질 확인

3. 데이터 준비 : 분석용 데이터셋 선택, 데이터 정제/통합, 학습/검증 데이터 분리

4. 모델링 : 모델링 기법 선택, 테스트 계획 설계/수행/평가

5. 평가 : 분석/모델링 결과 평가

6. 전개 : 모니터링/유지보수 계획 수립, 산출물 작성성

SEMMA 분석 방법론 (5개)

- 샘플링 > 탐색 > 수정 > 모델링 > 검증

분석 기획 시 고려사항

- 가용 데이터, 유즈케이스, 사전 계획 수립

DIKW 피라미드

- 데이터 : A는 사탕이 100원, B는 사탕이 200원

- 정보 : A가 더 저렴

- 지식 : A에서 구매해야지

- 지혜 : 다른 상품도 A가 저렴할 것이다.

빅데이터 특징

- 규모(volume)

- 다양성(variety)

- 속도(velocity)

- 신뢰성(veracity) / 가치(value) : 5V

- 정확성(validity) / 휘발성(volatility) : 7V

빅데이터 유형

- 정형 : DBMS

- 반정형 : XML, HTML, JSON

- 비정형 : 텍스트 문서, 이진 파일, 이미지, 동영ㅇ상

지식 구분 [내공표연]  ("너의 내공을 잘 표연해봐~")

- 암묵지 : 겉으로 들어나지 않음 (면화, 통화)

- 형식지 : 문서나 메뉴얼로 형상화 (출화, 결화)

빅데이터 가치 산정 어려운 이유

- 데이터 활용방식 다양화 : 데이터 재사용, 재조합

- 기존에 없던 가치 창출

- 저가의 분석기술로 급속 발전

빅데이터의 위기 요인과 통제방안

- 사생활 침해 : 동의에서 책임 강조

- 책임 원칙 훼손 : 결과 기반 책임 원칙 고수

- 데이터 오용 : 알고리즘 접근 허용

데이터 분석 조직 유형

- 집중 구조 : 전담 조직, 우선순위 따라 진행, 일부 현업 부서와 분석 업무가 중복 또는 이원화 가능성

- 기능 구조 : 별도로 분석 조직X, 해당 업무 부서에서 직접 분석

- 분산 구조 : 분석 조직 인력을 현업 부서에 배치, BP 공유 가능, 신속

데이터 사이언티스트에게 요구하는 역량

- 소프트 스킬 : 비판능력, 호기심, 커뮤니케이션, 스토리텔링, 시각화

- 하드 스킬 : 빅데이터 이론지식, 분석기술

조직성과 평가 > 균형 성과표(BCS ; balanced score acre) 관점 [재고내학]

-

-

- 부 프로세스

- 습/성장 : 미래지향

빅데이터 구축 플랫폼

- 구성요소 : 수집, 저장, 분석, 활용

- 플랫폼 SW : R, 우지, 플럼, HBase, Sqoop

- 분산 환경 SW : 맵리듀스, 얀, 아차피 스파크, HDFS, 하둡

하둡 에코 시스템 수집/저장/처리 기술

- 비정형 수집 : 척화, 플럼, 스크라이브

- 정형 수집 : 스쿱, 히호

- 저장 : HDFS

- 처리 : 맵리듀스

- DB : HBase

하둡 에코 시스템 가공/분석 기술

- 가공 : 피그, 하이브

- 데이터 마이닝 : 머하웃(mahout)

- 실시간 질의 : 임팔라

- 워크플로우 : 우지

- 코디네이터 : 주키퍼

빅데이터 개인정보 가이드 라인

- 비식별화

- 개인정보 재식별 시, 파기/비식별 조치

- 민감정보 처리 금지

- 투명성 확보 : 개인정보 취급방침, 수집 출처 고지

- 수집정보의 보호조치

데이터 3법 [개정신]

- 인정보 보호법

- 보통신망법

- 용정보법

개인정보 자기 결정권

- 정보 주체가 자신의 정보가 어떻게 사용되는지 스스로 결정할 수 있는 권리

마이데이터

- 개인 정보를 신용이나 자산관리 등에 능동적으로 활용하는 일련의 과정

- 원칙 : 통제, 제공, 활용

개인정보 비식별 절차

- 사전검토 > 비식별 조치 > 적정성 평가 > 사후 관리

개인정보 비식별 조치 [가총범삭마]

- 명처리

- 계처리

- 주화

-

- 스킹

빅데이터 비유

- 산업혁명의 석탄, 철

- 21세기 원유, 렌즈(구글), 플랫폼

빅데이터의 변화

- 사전처리 > 사후처리

- 표본조사 > 전수조사

- 질 > 양

- 인과관계 > 상관관계

가치 패러다임의 변화

- 디지털, 연결, 에이전시

AWS MFA(Multi Factor Auth.)가 설정된 상태입니다. PC가 바뀌어서 aws console 접속도 안되고, MFA 키값 저장도 안해서 MFA 인증 설정을 할 수 없는 난처한 상황입니다. 그렇지만 EC2 서버 접속은 가능하고, aws configure에 액세스 키와 시크릿 키는 모두 저장된 상태입니다.

​이렇게 난감한 상황에서 바로 MFA 비활성화해서 AWS Console을 로그인하는 방법이 필요합니다. 해결책은 아래에 있습니다.

1. aws configure 확인

 aws ec2 접속한 상태에서 aws 접속 키는 아래와 같이 저장되어 있음을 확인합니다.

ubuntu@ip-100-0-11-89:~$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************2Q6Z shared-credentials-file
secret_key     ****************ufYS shared-credentials-file
    region           ap-northeast-2      config-file    ~/.aws/config
ubuntu@ip-100-0-11-89:~$

2. MFA의 SerialNumber 확인

MFA 비활성화 위해 아래 명령어를 사용해서 이전에 설정한 MFA SerialNumber 값을 확인합니다. 즉, arn:aws:iam::061234567890:mfa/manager 값을 별도로 보관합니다.

ubuntu@ip-100-0-11-89:~/temp$ aws iam list-virtual-mfa-devices
{
    "VirtualMFADevices": [
        {
            "SerialNumber": "arn:aws:iam::061234567890:mfa/manager",
            "User": {
                "Path": "/",
                "UserName": "mspmanager",
                "UserId": "ABCDE5QJOOGZE123QABCD",
                "Arn": "arn:aws:iam::061234567890:user/manager",
                "CreateDate": "2022-02-20T11:10:00Z",
                "PasswordLastUsed": "2022-03-25T05:09:39Z"
            },
            "EnableDate": "2022-03-25T00:22:35Z"
        }
    ]
}

3. aws iam deactivate-mfa-device 구문으로 비활성화

aws iam deactivate-mfa-device 구문을 수행하며 바로 MFA가 비활성화된다. 즉시 id/pw 만으로 aws console 로그인이 가능해진다.

- 구문 : aws iam deactivate-mfa-device --user-name [IAM 유저] --serial-number [시리얼넘버]

ubuntu@ip-100-0-11-89:~$ aws iam deactivate-mfa-device --user-name manager --serial-number arn:aws:iam::061234567890:mfa/manager

MFA 활성화가 되면, AWS Console에 접속하여 아이디와 비밀번호 입력만으로 로그인이 되는지 확인합니다. 위 순서대로 차근차근 수행했다면, 다른 오류없이 정상 로그인이 될 것입니다.

'AWS' 카테고리의 다른 글

[기초] AWS 아키텍처로 서브넷, EC2, RDS 이해하기  (0) 2023.04.08

AWS의 어려운 용어를 이해하기에 앞서, 생활속의 경험들로 개념을 잡아봅니다.

AWS의 일상 비유

아래는 AWS 클라우드 아키텍처 구성도를 우리가 살고 있는 집 또는 아파트에 빗댄 비유입니다. 크게 보면, 우리 아파트는 공원(보도/화단)과 집 안의 거실 그리고 안방으로 구분할 수 있어요. 우리집에 살고 있는 나와 우리 가족들은 출입문을 통해서 거실로 들어가고 냉장고에서 맛있는 음식도 꺼내 먹을 수 있어요. 그러나 우리 집에 살고 있지 않는 친척이나 친구들, 심지어 도둑(사기꾼)은 공식적인 경로를 통해서만 방문을 할 수 있겠죠. 그건 경비실을 통하거나 인터폰을 통해서 우리 집에 방문하게 됩니다.

그러나 고민해야 할 부분이 있습니다. 극단적이긴 하지만, 만약에 냉장고에 불이 났다고 가정하면, 빠르게 옆에 떨어져 있는 독립된 공간인 안방으로 이동시켜주면 됩니다. 그렇다면 우리는 냉장고에서 아이스크림을 꺼내먹는 일을 멈추지 않아도 되겠죠. 이것이 바로 '안방'이라는 공간은 존재하는 이유입니다. 비유가 극단적이어서 완전히 와닿진 않을 수 있지만, 스토리의 흐름은 이렇습니다.

실 AWS 아키텍처

위에서 구구절절 비유을 들어서 하나의 스토리를 가정해보았습니다. 위의 출입문은 EC2 자원으로 구성한 Bastion host이고, 음식을 대접하는 EC2는 중요한 비즈니스 로직을 처리하는 애플리케이션 서버(WAS)라고 이해하면 됩니다. 또한 중요한 정보를 저장하고 조회하는 냉장고는 DB 또는 NoSQL 서버라고 보면 됩니다. 마지막으로 외부의 방문이나 침입을 경비실은 로드밸런서(Loadbalancer) 서비스인 ELB(Elastic LoadBalancer)라고 보면 됩니다. 여기서 외부에서 직접 통신이 필요한 경비실과 출입문은 인터넷 환경에서 직접 접속이 가능한 퍼블릭 서브넷(Public Subnet)이고, 인터넷과 직접 접근이 불가능한 우리집의 거실과 안방은 프라이빗 서브넷(Private Subnet)이라고 보시면 됩니다.

  • 초록색 공간 = 공원/보도/화단 => 퍼블릭 서브넷(Public Subnet)
  • 파란색 공간 = 거실/안방 => 프라이빗 서브넷(Private Subnet)

만약 AWS를 처음 접한 초보자 분께서는 일단은 단순하게 아래와 같은 구성으로 애플리케이션을 만들어보길 권고합니다. 그리고 나서 이중화를 어떻게 해야할지, 가용성을 어떻게 높힐지, AWS 자원사용에 대한 비용은 어떻게 줄일 수 있는지 같이 고민하는 시간을 갖도록 하겠습니다.

비록 아래 그림은 클라우드 자원들이 인터넷과 직접 통신이 가능한 퍼블릭 서브넷(Public Subnet)에 위치하므로, 여러분이 생성한 자원은 미국에서, 태국에서, 영국에서,, 등 전세계예서 노출되어 있는 상태입니다. 

인터넷 환경에 직접 노출된 위험한 상태

일반적으로 안전한 서비스를 구성하기 위해서는 최소한 아래와 같은 구성이 필요하다. 서비스를 주요 수행하는 EC2와 RDS는 임의 접근이 불가능하도록 프라이빗한 공간에 위치시키는게 안전할 것이다.

 

외위 추가적이고, 필수적인 자원들(Security Gruop, NACL, EC2, RDS, ELB 등)은 매우 쉬운 용어로 설명할 예정입니다.​

 

'AWS' 카테고리의 다른 글

[TIP] AWS MFA 비활성화 처리(aws cli)  (0) 2023.04.08

Terraformer 설치 환경은 AWS 클라우드 환경에서 ubuntu 20.04 LTS EC2에서 진행합니다. Ubuntu의 OS 버전은 크게 중요하지 않습니다. (EC2는 사전에 생성하고 EC2 생성과정은 생략함)

그 전에 terrafomer에 대해서 알아봅시다. terraformer는 기존이 이미 존재하는 클라우드 자원을 terraform code로 변환해주는 유틸리티입니다. terraform 도구의 역행하는 reverse engineering 도구로 생각해도 좋을 듯 합니다. terraformer가 공식적인 유틸리티는 아니지만, 구글 내부 오픈소스 프로젝트에서 gcp에서 활용하기 위해 만들어진 도구로서, 기능적으로는 아주 편리합니다.

 

Terraformer(테라포머) 설치 방법

1. 최초 패키지 목록를 업데이트합니다.

$ sudo apt-get update

 2. Terraformer를 설치합니다.

$ export PROVIDER=aws
$ curl -LO https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64
$ chmod +x terraformer-${PROVIDER}-linux-amd64
$ sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer

3. Terraformer 설치후 버전 확인하여 정상여부를 확인합니다.

$ terraformer version
Terraformer v0.8.20


Terraformer(테라포머) 수행 방법

Terraformer를 설치하였다면, AWS 환경에 이미 존재하는 자원을 tf(terraform) 파일로 변환하도록 합시다. 사전에 terraform의 plugin 설치 경로를 디폴트값이 개별 로컬 디렉토리(workspace)였다면, 공통으로 재활용하기 위해 경로로 변경합니다. (참고 URL : https://www.terraform.io/cli/config/config-file그리고 그 경로의 다운로드 받은 플러그인을 활용해서 기존 aws 자원을 tf 파일로 변환할 수 있게 됩니다. 지금 해봅니다.

1. terraform plugin 경로를 공통 위치로 변경합니다.  우분투 홈 디렉토리(/home/ubuntu)에서 .terraformrc 파일을 생성하고, 아래 내용을 작성하여 저장합니다. 파일명이 정확히 .terraformrc 라는 사실에 주의합니다.

$ vi .terraformrc
plugin_cache_dir   = "$HOME/.terraform.d/plugins"
disable_checkpoint = true

이번에는 우분투의 $HOME/.terraform.d 디렉토리에서 plugins 디렉토리를 생성합니다. 이전에 terraform을 수행한 적이 있다면 홈 디렉토리에 .terraform.d 디렉토리가 있을 것이고 mkdir 명령어를 통해서 plugins 디렉토리를 생성합니다.

.terraform.d$ pwd
/home/ubuntu/.terraform.d
.terraform.d$ mkdir plugins

방금 전에 생성한 plugins 파일에는 AWS 프로바이더에 대한 플러그인 파일이 없습니다. 따라서 terraform 파일이 있는 워크스페이스(디렉토리)에서 terraform init 을 수행하거나, terraform 파일이 있는 워크스페이스의 .terraform 내용을 복사(cp) 합니다. 필자는 편의상 아무런 내용이 없는 임시 tf 파일(dummy 파일)을 만들고 terraform init 명령어를 수행하였습니다.

 

2. aws configure 정보에서 profile 정보를 확인합니다. 필자는 단 1개의 aws 계정정보만 저장해놔서, profile이 not set입니다. 만약 2개 이상의 AWS 계정을 사용해서 여러 개의 aws profile(인증정보)이 설정되어 있다면, terraformer이 어떤 prfile에서 수행할지 알고 있어야 합니다.

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************2Q6Z shared-credentials-file
secret_key     ****************ufYS shared-credentials-file
    region           ap-northeast-2      config-file    ~/.aws/config

3. 본격적으로 terraform import 명령어를 수행합니다. 그러면 AWS에 terraform으로 생성했던 vpc, subnet 자원 등이 tf 파일로 변환됩니다. 즉, terraform 코드로 자동 작성됩니다. 나머지 옵션 설정은 본인의 환경에 맞게 설정해도 됩니다. 필자의 경우는 vpc, subnet 자원에 대해서만, 서울 리전에 있는 자원들을 terraform 코드로 만들기 위한 옵션을 설정하였습니다.

$ terraformer import aws --resources=vpc,subnet --connect=true --regions=ap-northeast-2 --profile=default
2022/05/19 05:48:49 aws importing region ap-northeast-2
2022/05/19 05:48:50 aws importing... vpc
2022/05/19 05:48:50 aws done importing vpc
2022/05/19 05:48:50 aws importing... subnet
2022/05/19 05:48:50 aws done importing subnet
2022/05/19 05:48:50 Number of resources for service subnet: 17
2022/05/19 05:48:50 Number of resources for service vpc: 4
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-092b034e17d810921
2022/05/19 05:48:50 Refreshing state... aws_vpc.tfer--vpc-078038c68840cbfbc
2022/05/19 05:48:50 Refreshing state... aws_vpc.tfer--vpc-01a81c0e2144bdd47
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-09f0e4fd5f17a0cc0
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-0aae713476d65fe7b
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-02bd3aaa711a20d00
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-0fcb54046715d93e0
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-028a2aa49de693c15
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-0ca100c38f015c211
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-055a5f1bcbc7694ba
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-04f738ca162f5c2f2
2022/05/19 05:48:50 Refreshing state... aws_vpc.tfer--vpc-03f5e59e172fdbfb2
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-084acb594ef0d1265
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-027888e2e5d2808f5
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-0e00af5c09e91cb25
2022/05/19 05:48:50 Refreshing state... aws_vpc.tfer--vpc-07d137e8fcb98387c
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-057a10c05f348ec0e
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-076766b5c56ebc498
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-0f2cce1af115ea800
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-0779ddd4e0b96d339
2022/05/19 05:48:50 Refreshing state... aws_subnet.tfer--subnet-06d7f3921d21f03ef
2022/05/19 05:48:50 Filtered number of resources for service vpc: 4
2022/05/19 05:48:50 Filtered number of resources for service subnet: 17
2022/05/19 05:48:50 aws Connecting....
2022/05/19 05:48:50 aws save subnet
2022/05/19 05:48:50 aws save tfstate for subnet
2022/05/19 05:48:50 aws save vpc
2022/05/19 05:48:50 aws save tfstate for vpc

4. 이제 최종 변환된 파일을 확인합니다. (편의상 파일 구조를 표현하는 tree 유틸리티를 통해서 결과 확인) generated 디렉토리 하위에 vpc, subnet 으로 분리하여 tf 파일이 잘 생성된 것을 확인할 수 있습니다.

/terraformer$ tree
.
├── generated
    └── aws
        ├── subnet
        │   ├── outputs.tf
        │   ├── provider.tf
        │   ├── subnet.tf
        │   ├── terraform.tfstate
        │   └── variables.tf
        └── vpc
            ├── outputs.tf
            ├── provider.tf
            ├── terraform.tfstate
            └── vpc.tf

+ Recent posts