본문 바로가기

전체326

[AWS 리소스 초기화] aws-nuke in MAC aws-nuke 란? AWS 내의 리소스들을 한꺼번에 날릴 수 있는 오픈소스 https://github.com/rebuy-de/aws-nuke GitHub - rebuy-de/aws-nuke: Nuke a whole AWS account and delete all its resources. Nuke a whole AWS account and delete all its resources. - GitHub - rebuy-de/aws-nuke: Nuke a whole AWS account and delete all its resources. github.com MAC에서 사용하기 여러 방법이 있지만,,,더 편하게 사용하기 위해 MacPorts를 받았다 https://www.macports.org/install.. 2022. 5. 19.
[DataDog] Ingested/Indexed Log + Archiving 정리 우선 Agent단에서 로그를 발생시키면, 무조건 Ingested (인입) 비용이 발생한다 Ingested Log는 Live Tail에 뜨고, 아카이빙이 가능하며, 1GB당 $0.1 이다 그러나 Ingested만 돼서는 Search에서 Filter를 걸어 확인하거나 Dashboard 구성 시 활용할 수 없다 -> Index된 로그들만이 Search(즉 Filtering) 및 Dashboard 활용이 가능해진다 -> Indexed Log는 retention period 기간별로 가격이 다르며, 7일짜리는 로그 1M개당 $1.91이다 자세한 가격 확인 : https://www.datadoghq.com/pricing/?product=log-management#log-management Index는 Logs > .. 2022. 5. 14.
[Terraform] MAC에서 tfenv로 terraform 특정 버전 사용 # tfenv 설치 $ brew install tfenv # terraform 특정 버전 설치 $ tfenv install 1.1.3 # terraform 특정 버전 사용 $ tfenv use 1.1.3 # terraform 버전 확인 $ terraform version Terraform v1.1.3 다른 버전으로 스위칭하는것도 자유롭다 끝 2022. 5. 14.
[boto3/paginator] EC2 Name Tag를 포함한 엑셀 뽑기 boto3 client는 한번에 뽑을 수 있는 양이 정해져 있기 때문에, 모든 값을 한꺼번에 뽑으려면 nextToken 인수를 이용해 반복을 돌려야 한다. -> paginator를 사용하면 자동으로 반복이 돌려지며, 한 page씩 묶음으로 출력된다 따라서 paginator를 사용할 땐 page를 반복시키는 반복문이 필요하다 import boto3 from openpyxl import Workbook from datetime import datetime data_list = [] # profile name 지정 session = boto3.Session(profile_name='') client = session.client('ec2') paginator = client.get_paginator('desc.. 2022. 5. 13.
[DNS] TXT 레코드와 SPF, DMARC TXT (텍스트) 레코드란? https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/ 텍스트 입력 가능 : 원래는 사람이 읽을 수 있는 메모를 위한 레코드였다고 한다 그러나 이젠 기계가 읽을 수 있는 레코드를 같이 추가할 수 있다 -> SPF / DKIM / DMARC 레코드를 추가해 이메일 스팸을 방지할 수 있다 나는 SPF와 DMARC에 대해서만 설명하겠다 SPF (Sender Policy Framework) 레코드 https://www.cloudflare.com/learning/dns/dns-records/dns-spf-record/ 이메일 표준 프로토콜인 SMTP (Simple Mail Transfer Protocol)는 본질적으로 .. 2022. 5. 13.
[Terraform] 다른 backend의 state가 업데이트가 안돼요..?! (terraform_remote_state 불러오는 방식) terraform backend 설정에 관한 글 : [Terraform] 실행 환경 분리와 Backend 설정 (AWS/Terraform Cloud) terraform import에 관한 글 : [Terraform] Terraform import와 terraforming (AWS) 태초에....A 환경과 B 환경이 있었습니다 A와 B는 S3를 backend로 사용하고 있고...서로의 output을 받아오기 위해 data로 remote_state 블럭을 설정해 두었습니다 A 환경에서 실제 리소스들을 잔뜩 import를 해야 하는데, B 환경에서의 output을 사용할 일이 생겨서 아래와 같은 코드들을 추가했습니다 ## a/main.tf locals { test = data.terraform_remote_s.. 2022. 4. 30.
[AWS S3] API Call로 S3 Access Logging 설정 시 유의할 점 (boto3) 상황 : 계정 내의 모든 버킷들에 access log 설정을 해두려고 한다 -> python boto3로 진행 1. 먼저 access log를 받을 버킷을 만든다 => access log는 cross region이 지원되지 않는다 https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html 따라서 계정 내 버킷의 리전 종류가 여러개라면, 각 리전별로 액세스로그용 버킷을 만들어야 한다 2. ACL 설정 ACL 의 S3 로그 전달 그룹에 대해 객체 쓰기/버킷 ACL 읽기 권한을 부여해야 한다 만약 ACL 수정이 불가하다면 위의 객체 소유권을 수정해줘야 한다 3. boto3 활용 1) 계정 내의 모든 버킷 리스트 담아오기 : client.list.. 2022. 2. 23.
[Terraform] map 타입 변수 validation 설정하기 아래와 같은 변수를 사용한다고 생각해보자 variable "subnet_cidrs" { description = "Subnet CIDRs" type = map(string) default = { pub-bastion = "10.0.0.0/24" pri-db = "10.0.1.0/24" pri-glue = "10.0.2.0/24" pri-ecs = "10.0.3.0/24" } } 위 변수를 가지고 for_each를 돌리게 된다면, pub-bastion 과 pri-db 등의 이름들은 모두 each.key 로 분류되고, CIDR들은 모두 each.value로 분류된다 이 때, 각 key들의 이름이 pub 또는 pri로 시작하게 강제하고 싶으므로 validation 구문을 사용해보겠다 Terraform Vali.. 2022. 2. 21.
[Terraform] For Expression을 사용해 for_each문의 output 설정하기 https://www.terraform.io/language/expressions/for For Expressions - Configuration Language | Terraform by HashiCorp For expressions transform complex input values into complex output values. Learn how to filter inputs and how to group results. www.terraform.io 예를 들어, vpc를 여러 개 만든다고 해보자 count를 사용하는 경우 : locals { vpc_cidrs = [ "10.0.0.0/16", "10.1.0.0/16", "10.2.0.0/16" ] } resource "aws_vpc" "thi.. 2022. 2. 18.
[RSS] RSS란? AWS 최신 소식 Slack으로 받아보기 https://aws.amazon.com/ko/new/ AWS의 새로운 소식 – 클라우드 혁신 및 뉴스 AWS는 사용자가 최신 기술을 활용하여 더 빠르게 시험하고 혁신할 수 있도록 지속적으로 새로운 기능을 추가하고 있습니다. 새로운 소식 게시물은 당사가 그러한 업무를 수행하는 방법을 보여주 aws.amazon.com RSS 피드를 통해 구독 이라는 버튼이 있다. 이를 눌러보면 위와 같은 xml 형태의 창이 뜬다 📌 RSS란? Rich Site Summary or Really Simple Syndication (정말 간단한 배급) 뉴스나 블로그 사이트에서 주로 사용하는 콘텐츠 표현 방식이며, 해당 사이트에서 새로운 기사 또는 포스팅을 직접 배달해주는 개념이다 즉, 해당 사이트에서 제공하는 RSS를 구독(리.. 2022. 2. 17.
[IaC] Terraform Associate 합격 후기 Terraform Associate를 땄다 Terraform 자격증이란게 있는지도 몰랐고, 찾아봐도 Associate밖에 없는거 보면 아직 생긴지 오래되진 않은 것 같다 그럼에도 불구하고 딴 이유는 - 내가 요 몇달간 테라폼을 많이 했어서 자신이 있었으며, - Practice Exam 등의 예시 문제를 봤을 때 문제 자체가 쉽게 나오고 있었고, - 연휴동안 할 게 없었기 때문이다. 사실 근데 문제가 있었다..... 원래 연휴동안 후딱 따려고 2월 2일(연휴 마지막 날) 시험을 잡아놨었으나, 여권이 없어서(영어 이름을 증명할 카드가 없어서) ㅋㅋㅋ 시험을 보지 못했다 어찌보면 당연한것 아닌가 싶지만, 그동안 AWS 자격증들은 피어슨 뷰? 아무튼 그거로 봤었고, 이전에 수세 시험을 칠 때 한국 민증만으로도 .. 2022. 2. 4.
[M1 MAC Terraform] The plugin.(*GRPCProvider).ValidateProviderConfig request was cancelled. 에러가 나지 않던 Terraform Code에서 갑자기 plan/apply 시 아래와 같은 에러가 떴다 해결 : https://github.com/hashicorp/terraform-provider-aws/issues/20274 plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled. · Issue #20274 · hashicorp/terraform-provider-aws Community Note Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request Ple.. 2022. 1. 24.
[Python] Python to Slack 2 : Slack Bot Message 보내기 + 쉽게 Formatting하기 (Block Kit Builder) 이전 글 : [Python] Python to Slack 1 : Slack Bot 만들고 설정하기 📌 Slack Python SDK 설치부터! pip install slack_sdk * python3 이상이 있어야 하며, 버전이 여러개 있는 경우 pip 대신 pip3를 사용하자 📌 MAC SSLCertVerificationError: slack_sdk를 사용할 때 자꾸 아래 글에서와 동일한 에러가 났었다 (SSLCertVerificationError) https://blog.minamiland.com/551 Python3 - SSL 문제는 Certificates.command 파일로 해결하세요 #2052 Mac에서 책을 따라 하면서 공부 중인데 SSL 문제에 봉착했었습니다. 스크레이핑을 하는 도중에 생.. 2022. 1. 22.
[Python] Python to Slack 1 : Slack Bot 만들고 설정하기 들어가면서 최근에 Cloud(AWS) SA -> DevOps Engineer로 직무 전환 이직을 했다 그래서...바빴다. 진짜 너무 바빠서 블로그 글도 한 달 넘게 못썼다 그리고 DevOps, 즉 개발자로서의 업무도 꽤 낯설었어서...좀 많이 헤맸다 ㅋㅋ 따라서 가장 처음에 헤매게 됐던 Slack Message Formatting에 대해 글을 쓰려한다...막상 해결하고 나니 굉장히 쉬운건데 왜그렇게 헤맸었는지;; 일단...해보자! 🎯 Slack Bot 만들기 우선 API를 받아서 Message를 보내줄 Bot을 만들어야 한다 -> 참조한 글 : https://wooiljeong.github.io/python/slack-bot/ https://api.slack.com/apps Slack API: Appli.. 2022. 1. 22.
[AWS] Private하게 DataSync 사용하기 AWS DataSync란? https://aws.amazon.com/ko/datasync/ 온라인 데이터 전송 및 마이그레이션—AWS DataSync—Amazon Web Services AWS DataSync는 온프레미스와 AWS 스토리지 서비스 사이에서 데이터 이동을 자동화 및 가속화하는 안전한 온라인 서비스입니다. DataSync는 NFS(Network File System) 공유, SMB(Server Message Block) 공유, Hadoop 분 aws.amazon.com NFS/SMB 등의 파일 시스템 + AWS S3/EFS/FSx 들 간의 데이터 마이그레이션 서비스이다 https://docs.aws.amazon.com/ko_kr/datasync/latest/userguide/datasync-.. 2021. 12. 11.