エンジニャーリング

技術ときどきネコ

codepipelineの承認をslack上で行う(その4)

AWS

確認してみる デプロイが走るとこのようなメッセージが表示される 「承認」を選んだ場合 「キャンセル」を選んだ場合 続きのデプロイも動くことが確認できた。やったー! この対応を行うとともに、誰でも承認ボタンを押せる状態はよろしくないため、 slackの…

codepipelineの承認をslack上で行う(その3)

AWS

その2までで、slackへの通知ができるようになった。その3ではslackから情報を受け取るところを作る。 4. ApiGatewayとpostのlambdaを作る まずはLambda import json import urllib.request import boto3 def lambda_handler(event, context): client = bot…

codepipelineの承認をslack上で行う(その2)

AWS

その1ではSlackアプリのベースを作った。その2ではそのtokenを使ってLambdaとそれを呼び出すSNSを作っていく。 2. SNSとpauseのLambdaを作る 今回のLambdaはpythonで書いた。 こんな感じ import logging import json import os import boto3 import traceb…

codepipelineの承認をslack上で行う(その1)

AWS

CodePipelineを使うと便利! だけど、変更検知してそのままデプロイまで走って欲しくない時が出てきたから手動承認のステージを追加したところ、デプロイが走るたびにAWSアカウントに2段階認証してサインインしてからの承認がとてもめんどくさい・・・ そこ…

owasp zapをEC2にたててみる

脆弱性確認などを行うにあたっていくつかある検証ツールのうち、owasp zapを使ってみることにした。 複数人で作業できるように、ローカル環境ではなく、クラウドに立てる。 まず、EC2インスタンスを設置(セッションマネージャーを使えるようにしておく) ta…

AmazonLinux2にPHP8.0とphpredisをインストール

PHP7.4のセキュリティサポート期限が来年の11月末、アクティブサポートは今年の11月と聞いたので、新しく提供するサービスのPHPバージョンを上げることにした。 PHP8.0のインストール自体はPHP7.4だったものをPHP8.0に変えるだけの簡単なもの。しかし、必要…

terrafrom の backend の設定に 変数を渡してみた(失敗談)

複数人で触れるように terraform で backend を S3 に設定することがある この時に develop とか staging とか、分けたくなっちゃうことがある CodeBuild 上で実行するため workspace は使えない そんな時は backend に出力する tfstate を分けたらなんとか…

terraform へ渡すパラメータを環境変数渡しにした時にハマったこと

ローカル環境などで terraform を実行する場合、パラメータを.tfvarsファイルにセットして渡しているのですが、gitでは管理したくないので CodeBuild で terraform を使う時に引数渡しをどうするか悩みどころ。 terraform plan -var 'env=dev' のように、-va…

頭を冷やす

頭を触るとすごく暑かったから冷やし中の絵

AWSのACMで作ったプライベート認証局から取得したプライベートキーからパスフレーズを抜く

AWS

通常の ACM (AWS Certificate Manager) で取得した Public な SSL/TLS証明書は、Private Key のダウンロードができません。 そこで、AWS の ACM (AWS Certificate Manager) で PrivateCA をたてて、Private な SSL/TLS証明書を発行し、この PrivateCA で発行…

API Gateway + Lambda で403エラーが出て困った話

API Gateway を private に配置して、VPCエンドポイントからのアクセスを試みた。 タイムアウトした。 うむうむ、エンドポイントに設置したSGだなとインバウンドをセットして接続したところ、今度は403エラーに。 これは権限周りの設定のエラーになるので、r…

sedにはまる

CodeDeployを使っていてhookで動くシェルの中で設定ファイルを作っているところがあるのだが、production環境を設置してみたところ、sedで変な置き換わり方してた。 staging環境では起こらないのに・・・ 例えば・・・ DATABASE_URL="mysql://userA:password…

セッションマネージャーのポートフォワーディング(続編)

AWS

前の記事でポートフォーワーディングについて説明した taiyakikuroann.hatenablog.com のですが、このやり方だと複数アカウントを扱う場合にすごくやりづらい。 悩みの種だったのですが、良さげな解消できそうな方法を見つけた! ポートフォーワーディング自…

猫団子は嫌いなくせに…

. ぬいぐるみには寄り添うんだわ… ツンデレ三毛猫。

wena3 初めての改造

wena3のレザーを持ってます。 が、、、夏はレザーが暑い!ので、ベルト部分を変えてみた。 [材料] wena 爪楊枝 ベルト用に使う布製の幅15mmの帯みたいなやつ(100円ショップで見つけた) 本当は18mmが適切だと思うけどなかった。 [作り方] 帯みたいなやつを…

wena3 を買いました

スマートウォッチ何使ってますか? やっぱりApple Watchですか? 私はwena2 activeを使ってました。 もともとAndroid使ってて(当時良さげな)ペアリングできるスマートウォッチがなかったのと、ヘッド部分が好きなものに交換可能できるのも魅力で愛用し始め…

EC2のAutoScalingと起動テンプレートと

AWS

AWSのAutoScalingの起動設定がAMIの入れ替えがめんどくさくて使いにくいな〜って思っていたところ、 起動テンプレートという機能があって、これが使い勝手が良い! またこの起動テンプレートと組み合わせることで、AutoScalingの設定にもバリエーションが出…

セッションマネージャ+ポートフォワーディングを利用したDB接続

AWS

前回のセッションマネージャー接続の続編。 セッションマネージャーで繋いだEC2を踏み台としてDB接続やるよ。 前提: セッションマネージャーの利用を完了させておくこと EC2にキーペア鍵ファイルを設定しておくこと さあ、やってみよう。 sshポートフォワ…

pythonのエラーハンドリング

pythonでエラーが起こった時にどう対処するか? pythonのエラーハンドリングについての世の中の知見を見て回った。 大きくは2系統。 エラー判定してreturnするタイプと例外を投げてキャッチするケースとあるらしい。 他の言語と一緒ってことで考えて良さげ…

セッションマネージャーが意外と使えた

AWS

EC2への接続はSSHで接続してましたが、セッションマネージャーを使えばIAMベース簡単に接続できた。 セッションマネージャーの利点 IAMで管理可能 22番ポートを開けなくて良い privateなEC2インスタンスにも接続可能 踏み台がいらないんじゃない? これはDB…

pythonの正解って?

最近Python書いてみてます。 良い感じで自由。でもルールづけしないと統一性が保てなさそう。 型をきちんと定義しないのはCとかJavaやってた頃と違うなぁと思う。 多少の気持ち悪さはあってもなんとなくで書けちゃう。 け ど ね ! 正しく書けてない気がする…

技術者がすなるといふ技術ブログといふものをしてみんとてするなり

はじめてみました。 つい1ヶ月前にやったことをさっぱり忘れてしまうという今日この頃。 人間忘れないと新しいことが入ってこないのです。その点ではなんだかPCと似てますね。 数ヶ月の自分のため、同じことで悩む仲間のためになんとかなればいいな。