Skip to content

Instantly share code, notes, and snippets.

Avatar
🎐
Humility, Kindness, Bonds

Yuya Takeyama yuya-takeyama

🎐
Humility, Kindness, Bonds
View GitHub Profile
@yuya-takeyama
yuya-takeyama / README.md
Created Jan 29, 2022
Example of sending an HTTP request from Step Functions via API Gateway
@yuya-takeyama
yuya-takeyama / README.md
Created Jan 29, 2022
Example of a Terraform module that creates an API Gateway to send requests to an arbitrary API
@yuya-takeyama
yuya-takeyama / README.md
Last active Nov 5, 2021
金の Architecture Diagram
View README.md

Diagram

  • 夫婦の共同口座、あおぞら銀行、コインチェックへの入金は口座振込を行なっているが、いずれも手数料は無料
  • 口座振込はいずれも楽天銀行の毎月おまかせ振込予約で自動化
    • 夫婦の共同口座からの家賃の支払いも、以前は SBI ネット銀行の定額自動入金で自動化していたが、今の家はマンション指定のクレジットカードで自動引落してくれるようになったので不要になった
  • 口座への振込は 1 日に行う
    • 給与振込は 24 日または土日祝の場合はその前の平日
  • 楽天銀行のハッピープログラムの会員ステージは 25 日終了時点での残高を元に決まるので、そのタイミングではお金を減らさないでおきたい
View terraform-aws.yaml
name: terraform-aws
on:
push:
branches:
- main
paths:
- .github/workflows/terraform-aws.yaml
- actions/**
- environments/aws/**
View github-ations-with-oidc.tf
resource "aws_iam_openid_connect_provider" "github" {
url = "https://vstoken.actions.githubusercontent.com"
client_id_list = ["sigstore"]
thumbprint_list = ["a031c46782e6e6c662c2c87c76da9aa62ccabd8e"]
}
data "aws_iam_policy_document" "oidc-assume-role-with-web-identity" {
statement {
actions = ["sts:AssumeRoleWithWebIdentity"]
@yuya-takeyama
yuya-takeyama / README.md
Last active Jul 25, 2022
Mono Repo のための GitHub Actions の Tips 集
View README.md

paths フィルターを活用する

https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths

Mono Repo では package や service をディレクトリとして表現するので、特定のディレクトリが変更された時だけ実行したい Workflow があると思います。 典型的にはテストやビルドでしょう。

foo ディレクトリ内のファイルに変更があったときのみトリガーするには以下のうに指定します。

@yuya-takeyama
yuya-takeyama / mirror_kubernetes_images.sh
Last active May 26, 2020
Mirror images used in Kubernetes cluster into ECR
View mirror_kubernetes_images.sh
#!/bin/bash
set -eu
set -o pipefail
aws_profile="$1"
aws_region="$2"
function mirror-ecr-images() {
set -e
@yuya-takeyama
yuya-takeyama / README.md
Last active Jul 7, 2022
DevOps な組織で Monorepo から Argo CD を使って Kubernetes にデプロイする仕組みの草案
View README.md

概要

image

前提条件

  • アプリケーションは Mono Repo 上にサブディレクトリとして数十ほど存在
  • 各アプリケーションは独立してリリース可能とする
    • そのためにリリースブランチ等には */release といった形でそのアプリケーションの名前を持つ
  • 開発チームは self-contained な DevOps チームへの変化を目指している
View README.md

モチベーション

  • とりあえずは gRPC のロードバランシングさえできればそれでよし
    • 現状 gRPC は新規サービス含めトラフィックの少ないサービスでしか使われてない
    • とはいえそれらのサービスの成長だったり、トラフィックの大きいサービスで使うときに当然困ることになるので
  • Circuit Breaker 的な仕組みが社内で運用できていないので、その辺にも使っていけたらと思ってる (そのうち検証する)
    • 現状は @ujihisa さんが作った Dark Launch で手動で落とすとかしている
    • そもそも現状は partial outage 可能なマイクロサービス化された部分が限定的だし、特に問題も起きていないのでそれがないことで日々障害が起きている!なんてこともない
  • ゆくゆくは AWS App Mesh なり Istio なりでサービスメッシュしたいと思っているが、いきなりそこに行くのはリスクが大きいのでまずは Envoy 単体に慣れたい
View ec2-ip2id
#!/bin/bash
ip_map=$(jq --raw-input . | jq --slurp . | jq 'to_entries | map({key: .value, value: true}) | from_entries' --compact-output)
aws --profile aya ec2 describe-instances | \
jq -r --argjson ipMap "${ip_map}" \
'.Reservations[].Instances[] | select(.PrivateIpAddress | in($ipMap)) | .InstanceId'