일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 후기
- gcp
- cloud function
- github
- VAGRANT
- terraform
- Clean Code
- 우테캠
- Uptime Check
- direnv
- kubernetes
- 자격증
- Python
- cloud
- vpc peering
- cloud armor
- cicd
- Terraform Cloud
- docker
- MIG
- vm
- IAM
- Google Cloud Platform
- devops
- CentOS
- pub/sub
- AWS
- 보안 규칙
- Java
- interconnect
- Today
- Total
목록전체보기 (96)
EMD Blog
GCP의 KMS 사용 시 알아두면 좋을 내용들 정리 해보았음. 계층 구조 먼저 KMS 사용전 GCP KMS 리소스의 계층 구조에 대해 알고 있어야 함. GCP KMS의 계층 구조는 organization > folder > project> keyring > key로 구성 되어 있으며, 어느 수준에서 역할을 부여하느냐에 따라 사용 가능한 key 범위가 달라진다. 예를 들면 organization 계층에서 역할을 부여하면 organization내의 모든 key를 사용 할 수 있는 것이고 keyring 계층에서 역할을 부여하면 keyring 내 key만을 사용 할 수 있는 것이다. Key Key는 대칭 암호화, 비대칭 서명, 비대칭 암호화, MAC 서명 용도로 사용 되며 리소스 계층 구조에 따라 하나의 키 링..
Terraform state에 관해서 꼭 알아야 할 부분들 정리해보았음. Terraform은 현재 구성에 대한 정보를 tfstate 파일에 저장한다. tfstate 파일에는 생성한 리소스와의 바인딩 정보가 저장되어 있기 때문에 인프라를 변경 할 경우 이 tfstate 파일을 참고해 리소스를 생성 할 지, 삭제 할지 등을 판단하게 된다. Terraform의 동작 방식은 아래와 같다. (apply 시) terraform refresh 후 계획 생성(plan) 계획에 맞게 리소스 생성 (apply) terraform refresh terraform refresh는 현재 tfstate의 바인딩 정보와 실제 생성된 리소스를 비교 후 tfstate 파일에 반영하는 작업이다. 중요한 것은 tfstate에 기록된 바인..
특정 서비스를 사용 할 때 Slack으로 알림을 받고 싶다면 수신 Webhook을 만들어 사용하면 된다. 매니페스트를 사용한 App 생성 수신 Webhook을 사용하려면 App을 생성해야 한다. App 생성은 이 페이지로 가서 UI로 생성해도 되지만 Slack의 매니페스트(Slack App 전용 YAML or Json 형식의 구성)를 사용해 생성 할 수도 있다. 매니페스트를 사용하더라도 UI로 등록 할 수 있으며 아래 예시는 API를 사용해 진행한다. API를 사용해 매니페스트를 적용하려면 token이 필요하다. token은 API로 발급 받을 수 없기 때문에 아래 URL로 접근해서 직접 생성해줘야 한다. https://api.slack.com/apps?new_app=1 이 토큰은 12시간 마다 만료되며..
모니터링 알림을 받기 위해서는 알림 채널을 설정해 알림을 전달 받을 수 있다. 주로 사용되는 Gmail이나 Slack 같은 경우는 쉽게 가공된 알림 데이터를 전달 받을 수 있지만 Google Chat은 알림 채널로 지원하고 있지 않아 Pub/Sub을 알림 채널로 사용해 Pub/Sub -> Cloud Functions → Webhook → Google Chat 흐름을 직접 구성해야한다. 큰 순서는 다음과 같다. 모니터링 알림 채널로 사용할 Pub/Sub 주제를 생성 모니터링 알림 채널로 방금 생성한 주제 지정 생성한 주제를 트리거로 하는 Cloud Functions를 생성 or Cloud Functions를 생성하고 인증된 호출을 하도록 구독을 수동으로 생성 알림을 받을 Google Chat Space를 ..
외부 IP를 사용해 Uptime Check하는 것은 간단하지만 내부 IP를 사용해 Uptime Check를 할 경우 추가 작업이 필요하다. 내부 IP를 사용해 Uptime Check를 한다는 것은 트래픽이 비공개 네트워크에 액세스 할 수 있어야 한다는 뜻이 된다. 이를 위해서는 VPC 네트워크, Service Directory Project, Google Cloud 서비스 프로젝트를 구성해야 한다. 먼저 Uptime Check 대상인 VM에게 35.199.192.0/19 IP 대역(GCP Cloud DNS IP대역)의 TCP Ingress를 허용해 주어야 한다. 포트는 Uptime Check에 사용 할 포트를 지정해주면 된다. gcloud compute firewall-rules create \\ --n..
Terraform Workspace에 대한 내용 중 읽고 넘어가면 좋을 부분들 정리 Terraform을 로컬머신에서 실행할 경우 Terraform은 인프라 관련 구성들을 로컬에서 관리하게 된다. 하지만 Terraform Cloud를 사용하면 Workspace에서 모든 인프라 관련 구성들을 관리하게 된다. Terraform Cloud의 Workspace를 사용하느냐 Terraform 로컬 디렉토리를 사용하느냐에 따라서 데이터 관리 방식이 달라지는데 그 차이는 아래와 같다. 요소 Local Terraform Terraform Cloud 테라폼 구성 로컬 디스크 VCS 또는 API/CLi를 통해 주기적 업로드 변수 값 .tfvars 파일, CLI 인수, Shell 환경 Workspace > Variavles ..
로컬 개발 pc에 AWS account 설정 direnv 설정 aws key를 AWS_PROFILE 형태로 관리를 하면 한곳에서 AWS key를 관리할 수 있는 이점이 있고 사용시에도 편리하다. direnv 에서도 간단하게 사용할 AWS_PROFILE을 설정할 수 있다. .envrc 를 git에 올라가지 않도록 설정할 수 있기는 하지만 실수하면 올라갈 수 있는 위험이 있는데 AWS_PROFILE 형태로 하면 key가 노출될 위험이 줄어든다. $ cat ~/.aws/config [default] region=ap-northeast-2 output=text ….. [profile gw-dev] region=ap-northeast-2 $ cat ~/.aws/credentials ….. [ldy-dev] aws..
direnv 이용한 디렉토리별 환경설정 direnv 설치 및 설정 : 각 디렉토리별 환경변수 설정을 다르게 할 수 있어 편리함. https://www.44bits.io/ko/post/direnv_for_managing_directory_environment brew install direnv# sudo apt-get install direnv touch ~/.gitignore_global git config --global core.excludesfile ~/.gitignore_global echo '.envrc' > ~/.gitignore_global echo '.direnv' >> ~/.gitignore_global
만약에 버킷에 커스텀 도메인을 지정하고 싶다면 아래 절차를 거쳐야함. [HTTP] 도메인 소유권 확인 Domain-named bucket verification | Cloud Storage | Google Cloud 웹마스터 센터로 이동해 도메인 소유자 추가 인증된 도메인 이름으로 버킷을 만들기 위해서는 도메인 소유자가 되어야 함. 도메인 소유자는 서비스 계정도 가능 여러명 추가 가능 해당 도메인을 이름으로 해서 버킷 생성 DNS에 CNAME 설정 (xxx.example.com → c.storage.googleapis.com. ) 만약에 CNAME을 설정하지 않으면 https://storage.googleapis.com/xxx.example.com/test.png 이런식으로 접근해야한다. (도메인 설정의..
Cloud Functions 사용 전 알고 있으면 좋은 내용들 정리해 보았음. 실행환경 Node.js, Python, Java, .NET, Ruby, PHP 등 다양한 런타임을 제공하고 있다. 각 런타임은 고유 ID를 가지고 있어 SDK나 Terraform 사용시 이 ID를 통해 런타임을 지정할 수 있다. 이 런타임은 자동으로 업데이트 되며, 이외에도 운영체제 및 포함되어 있는 패키지와 같이 실행 환경 내 다른 구성요소도 업데이트 가능하다. 참고로 모든 런타임에는 시스템 패키지 집합을 포함하고 있어 코드 작성 시 참고하는 것이 좋다. 이전 호출에서 설정한 인메모리 상태를 유지하지 않는다. 하지만 종종 성능 최적화를 위해 전역 변수를 사용하여 객체를 재사용할 수 있다. - 도움말 및 유용한 정보 | Clo..