Foreverly

メモ帳

Terraform0.13へのUpgrade

Terraform0.13にUpgradeの手順と詰まったPointをメモ 事前準備 こんなアドバイスを受けていたので、先にproviderのバージョンをあげます。 古い環境からterraform v0.13.0+aws providerv3に一気に上げるとtfstateが不整合っぽいエラーでまくるので、 terrafo…

CNDT2020で発表してきた

CloudNativeDays2020で以下のタイトルで発表してきました。 Amebaアフィリエイト基盤のGKEアーキテクチャとマイクロサービス | CloudNative Days Tokyo 2020 会社のスポンサー枠ということで40分の発表枠を頂きました。 無論40分話せる自信がないので、サー…

sendgridのeventdataをS3に送るやつです

構成 SendGridのエラーをS3に格納するfunctionを実行する構成です。 各サービスの役割とポイントとなる設定についてみていきましょう。 S3→Lambda→APIGateway→SendGridの順にみていきましょう〜〜〜 S3 eventdataの保存先にS3を使用します。bucketを用意して…

datadogのアラート通知先を環境毎に変えたい

環境毎にアラート項目を作り分けてて面倒くさかったので、一つの監視で複数環境を監視できるようにした。 環境毎に閾値を変えたいという要望は捨て置く。 datadogでタグを使って1モニターから複数の通知先を出し分け設定する こちらを参考にした。 ここでの…

EKS環境に対してlocust podをskaffoldでデプロイして負荷試験準備した

EKSは別に関係ないです。 負荷試験環境を用意した時、skaffoldでlocust環境を用意したので、そのメモ。 事前準備 docker daemonの起動とskaffoldのインストール ecrにimageを置くためのリポジトリを用意 Description Projectのlocustを動かすmanifestとシナ…

Leetcodeやっていき(無料Easy編)

とりあえず無料のEasyをすべて解くのを目指す。 ちゃんとテストも書いていく。 771. Jewels and Stones 与えられた文字列の中から、対象の文字列が何個あるか数える問題。 forで一文字ずつcount()を使用して確認していく。 for文も通常の書き方より、リスト…

Envoy Meetup Tokyo #1でLTしてきた

Envoy Meetup Tokyo #1で、 「本番環境でEnvoyを導入するためにやったこと」というタイトルでLTしてきました。 発表資料はこちら 自分はCotrolPlaneを特に用意していないので、Envoyを気軽に導入したい人には参考になるかと思います。 Decksetで発表しようと…

terraformerを使ってコード化対応

手動で管理していたCloudDNSをコード管理したかったので、terraformerを使ってコード化しました。 Installation brew install terraformer 事前準備 コマンド実行したら以下エラーが出たので、ディレクトリにpluginをinstall Copy your Terraform provider's…

GoでTravis-CIを使ってのテストとデプロイ

Goで何か書いた時にCIの設定をまとめてみた。 もっといい方法がありそうなので、ブラッシュアップしていきたい。 golangci-lint でsyntaxチェックして goreleaser でdeployの流れ。 .travis.yml travisの設定は以下の用にする。 branches: ciの設定(ブランチ…

Terraformの基本

terraformの基本事項についてaws providerを使用して確認していく。 terraformコマンドで構築する前にクレデンシャル情報を環境変数に渡しておくのを忘れずに。 export AWS_ACCESS_KEY_ID=hogehoge export AWS_SECRET_ACCESS_KEY=hogehoge export AWS_DEFAUL…

GKE + datadogの監視の仕組みをhelmfileを使っての下準備

GKE + datadogの監視をするのにhelmfileを使ってdatadog-agentを入れるのと、 helmfileをCircle CIで回してパッケージ管理の準備までしてしまおうというもの。 Integrationの有効化 Datadogなので、まずはintegrationの有効化 必要に応じてだけど、代替以下 …

Creating multi master cluster with kubeadm(ver1.14以上)

前回kubeadmでマルチマスターのクラスタ構築をしたが、kubeadm1.14で証明書の発行と配布がされるようになったので試してみた。 document https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/setup/independent/crea…

Terraform and CORS-Enabled AWS API Gateway and AWS WAF

この記事はAWS WAF と API Gateway endpoint で CORS を有効化について。 以下にsampleを載せてあります。 REST API リソースが API 独自のドメイン以外のドメインからリクエストを受け取る場合、 リソースの選択されたメソッドで Cross-Origin Resource Sha…

AWS構築[Cloudfront+ELB+WEB+DB+S3]

AWSなれるために2018年ごろに手でポチポチ構築したときのメモ なので今は設定画面とか変わっているものがありそう [Cloudfront+ELB+WEB+DB+S3] 構成。 ほとんどの場合、Terraformで構築すると思うけど、 その前のAWS入門として一応残しておきます。 仕様と構…

podのCrashLoopBackOff原因およびNodeのNot Readyフラッピング問題調査

これは何? とあるPodがCrashLoopBackOffのステータスになりあがってくれず、 それにあわせてNodeのstatusがNot Readyでフラッピングしている。 調査しつつ周辺技術(kubelet, CRI,CNIとか)についても調べて自信ニキになりたい。 事象 fluentdのpodがCrashLoop…

kubeadmでHA構成のetcdクラスタ構築

最新手順はこちら Kubeadmは、コントロールプレーンノード上のkubeletによって管理される静的ポッドで単一メンバーのetcdクラスタをデフォルトで実行する。 etcdクラスターに含まれるメンバーは1つだけで、メンバーが使用不可になっても持続できないため、こ…

Creating multi master cluster with kubeadm(ver1.13以下)

document https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ kubeadmのトラブルシューティング 始める前に 以下のいずれかを実行している1台以上のマシンを用意 Ubuntu…

unshareコマンドでLinuxのNamespaceに入門

Namespaceはコンテナで使われている技術の一つで、コンテナを理解深めるために知っておくとよいので調べてみた。 どんな使われ方をしているかというと、 例えばPID namespaceはPIDの number spaceを隔離する。 これは同じホスト上で実行されている2つのプロ…

2018年読んだ本

2018年の読書メーター読んだ本の数:15読んだページ数:4818ナイス数:70アシュリーの戦争 -米軍特殊部隊を最前線で支えた、知られざる「女性部隊」の記録の感想15時間ほどで読めた。CST(文化支援部隊)という女性メンバーだけの特殊部隊を追ったノンフィクシ…

Kubernetes Application Update

303-app-updateの内容 Kubernetes Application Update 今回では、Kubernetesクラスタにデプロイされたアプリケーションを使用して更新する方法について説明しデプロイします。 また、アプリケーションのCanary Deploymentについても見ていきます。 Deploymen…

Service Discovery for Microservices with Kubernetes

302-app-discovery Service Discovery for Microservices with Kubernetes ハードコードされたIPアドレスを使用するのではなく、 アプリケーション内のさまざまなマイクロサービスがサービス検出を使用してインフラストラクチャ内で互いにどのように位置付け…

k8sクラスタのアップグレード

203-cluster-upgrades Kubernetesクラスタのアップグレード AWS上のKubernetesクラスタのアップグレードは、kopsで簡単にできます。 今回Kubernetesクラスターを2つの方法でアップグレードする方法を試します。 インプレースアップグレード Kopsを使用すると…

シェルスクリプトでのリトライ処理とロック処理

サーバ運用で手動でApache再起動のような対応は辛いので アラートを検知したら自動でApache再起動を実施し、 メールで知らせてくれるスクリプトを書きたいと思い、 リトライ処理やロック処理をシェルスクリプトでどうやるか調べたのでまとめます。 リトライ…

Linuxサーバをセキュアな環境にする

Linuxサーバでセキュアな設定についてまとめてみました。 OSはCentOS6なので古いですが。。 Wordpress周りはまだ調べられてないので どこかでまとめたい。 アドレススキャン対策 ブロードキャスト宛のICMP Echo Requestに対して回答しない vim /etc/sysctl.c…

pythonでしたいと思ったことまとめ①

print()でカンマ区切りで表示したい print(a, b, c, sep=',') 行末の改行を削除したい string.rstrip() 文字列の末尾部分を除去したコピーを返す。引数 chars は除去される文字集合を指定する文字列。 特定の文字を除去したい 文字列.replace() メソッドを利…

AWS Summit Tokyo 2018の聴いたセッションのメモ

AWS

聞いたセッションのメモ セッションだけ聞くなら会場ではなくストリーミング配信をみるのが快適ということに気がついてしまった。 オペレーションの最適化 ベストプラクティスに基づく準備 適切なモニタリング 適切な運用 Well-Architected framework 課題 A…

# 202-service-mesh

Istioも0.8がリリースされたので、Istioの公式ドキュメントからサンプルアプリケーションを動かしたほうがよいです。 それでは続きをしていきます。 Service Mesh integration with Kubernetes Service MeshコンポーネントをKubernetesクラスタに統合する方…

リソースグラフの見方

cactiとgrafanaのグラフの見方について調べました。 cactiグラフの見方 まずグラフを見るときは長いスパンでの確認と単位に気を付けること サーバステータス・OS系 CPU Utilization コアごとにCPU使用率を表示させる Context Switches サーバ側がカウンタな…

# iptablesについて

iptablesについてまとめてみました。 設定ミスすると思わぬサービス影響が出るのでちゃんと理解したいところです。 オプション オプション 意味 -N 新規チェインの追加 -X ユーザチェインの削除 -A ルールの追加 -D ルールの削除 -L チェインにあるルールの…

今度こそMySQLを覚えたい人のためのMySQL5.6入門

最近、今度こそMySQLを覚えたい!!と思いました。 では今からMySQL覚えるなら何から始めるのが良いでしょうか。MySQLは5.7や8も出てきました。 今回は日本語のドキュメントがある唯一のバージョンの5.6系をCentOS6にインストールします。 MySQL 5.6 リファレ…