AWS
aws-cli のドキュメントをもとに一つずつ見ていく。 create-stack — AWS CLI 1.18.78 Command Reference --stack-name スタック名。必須。 英数字またはハイフンのみ。 最大128文字で、先頭は英文字でなければならない。 また、リージョン内でユニークという…
あるスタックを作成するケースを考える SQSのキューを1つだけ作るテンプレートを用意する。 # sample.cf.yml AWSTemplateFormatVersion: "2010-09-09" Resources: SampleQueue: Type: AWS::SQS::Queue とあるIAMユーザーのプロファイルを指定してcreate-stac…
完成イメージ $ abc lambda stats | RUNTIME | COUNT | |--------------------------|-------| | nodejs12.x | 2 | | nodejs8.10(Deprecated) | 1 | | python3.6 | 2 | | ruby2.5 | 8 | | ruby2.7 | 2 | --verboseオプションで関数名も表示 $ abc lambda s…
できない ECR単体の削除であれば、例えばCLIだったらecr delete-repository --forceとすればイメージごとリポジトリを削除できるのだが、Cloudformationのスタックとして作成されている場合、イメージが残っているとスタックの削除に失敗する。このケースに…
開発中のCLIツールのテストで、AWS API の呼び出しをモックする仕組みを試行錯誤したのでメモ。 github.com ツールでは aws-sdk-go を用いてAPIを呼び出している。 例として、CloudFormation の ListStacks API をモックする。 サービスクライアントを差し替…
Redashが落ちてたのでその時の調査と対応の記録。 前提 EC2で運用 冗長化はしていない 公式のAMIを使用(つまりdocker-composeで動かすスタイル) 事象 ブラウザでRedashの固定IPアドレスを叩くと画面が真っ白。 原因のあたりをつける 真っ白な画面は返って…
概要 これまで CodeDeploy と連携させて実現していた ECS の Blue/Green デプロイが CloudFormation にインテグレートされて、Externalなデプロイメントコントローラーとして使用できるようになりました。これによって、一連のデプロイパイプラインをテンプ…
概要 この記事で作ったCLIツールの裏側の話です。 bluepixel.hatenablog.com OSSとしてバイナリの配布も始めました。 github.com GoでCLIツールを作る手段 いくつか候補が見つかったんですが、何分 Go に入門したばかりなのでPros/Consが判断できず。 とりあ…
言わずと知れたAWS製のLinuxマシンイメージですが、 結構頻繁にアップデートされるので、最新のIDを追う必要があります。 特にIaCが当たり前のいまでは、CloudFormationでもTerraformでもAMI IDをあらかじめ変数化しておくことが多いと思いますが、ついつい…
アベイラビリティゾーンについて学ぶ 東京リージョンap-northeast-1 では4つの利用可能なAZ(アベイラビリティゾーン)が提供されている。 ap-northeast-1a ap-northeast-1b ap-northeast-1c ap-northeast-1d これらは実体として1つずつの独立したデータセンタ…
普段はcli, Ruby, Node.jsなどでAWSと戯れていますが、今回初めてaws-sdk-goを使ってみたので所感をしたためておきます。 ▼題材はこれです。 bluepixel.hatenablog.com Rubyで書いた40行ほどのスクリプトをGo実装で焼き直してみました。 rezept/main.go at m…
先日S3のイベント駆動でLambdaをトリガーする記事を書きましたが、今回はSQSのイベントをトリガーにします。 bluepixel.hatenablog.com LambdaのイベントソースにSQSが指定できるようになったのは意外にだいぶ遅めで、2018年4月です。FIFOキューはさらにその…
CloudFormationにおいてスタック間で値を受け渡したいときに、参照される側で出力値をエクスポートして、参照する側でFn::ImportValueで読み込む方法があります。 docs.aws.amazon.com エクスポートされている値は各スタック詳細の出力や[エクスポート]から…
概要 今回はS3のイベント通知に関して掘り下げます。 よくあるユースケースとしては、S3に画像が置かれたのをトリガーにLambdaを起動してサムネイル画像を作成するとかでしょうか。 アーキテクチャはこんな感じ。 ターゲット イベントの送信先として指定でき…
続きです。 bluepixel.hatenablog.com 自前のGithub Actionを作っていきます。 ワークフローの内容 CloudFormationで作成したスタックを更新する際、変更セットというものを作る必要があります。 この変更セットには、どのリソースの何が変更されるのが、置…
この記事を書いた時に、プラットフォームの発展に結構可能性を感じたので自分でも作ってみる。 bluepixel.hatenablog.com 何を作るかはさておき、まずは作り方を一通り調べてみる。 ドキュメントはここから。 help.github.com 基本的な仕様 About actions - …
経緯 フルリモート体制になっているので、sshの接続元などにオフィス以外の任意のIPアドレスを追加する必要が出てきた。 メンバーの自宅はIPが固定されていないため、IPアドレスが変わるたびにインフラ担当に作業を依頼する必要がある。 作業の手間とヒュー…
やること pumaサーバーのアプリをFargateにデプロイする。 リクエストはNginxで受ける。 Nginxとpumaの通信はソケットを用いて行う。 pumaとNginxは同じFargateタスクの別コンテナとして扱う。 こちらの記事にある下図の右側の部分のイメージです。 bluepixe…
Github Actions github.co.jp これまではCodePipeline上に構築することが多かったんですが、もう少しサクッと作れないかなーと思い試してみました。 環境 Ruby製のアプリケーション 。 コンテナは、pumaを動かすアプリケーションとNginxの2台構成。 ECS Serv…
すでに作成済みのタスク定義を指定して、CLIから任意のタスクを実行する環境を整えます。 IAMポリシーのセットアップ タスク実行に必要な ecs:RunTask の他に、タスク定義を参照するための ecs:DescribeTasksや、 CloudWatchへのログ出力のためのポリシーが…
AWS SQS Amazon Simple Queue Service とは デフォルト 全部デフォルトでいいならこれだけのテンプレートでキューが作成できる。 AWSTemplateFormatVersion: "2010-09-09" Resources: SampleQueue: Type: AWS::SQS::Queue 名前すら指定する必要はない。 名前…
とは 2017年7月17日に正式リリースされたサービス。 Lambda@Edge の一般提供を開始 AWS Lambda にコードをアップロードし、Amazon CloudFront イベント (ビューワーリクエスト、ビューワーレスポンス、オリジンリクエスト、オリジンリクエストなど) によって…
概要 サービスディスカバリーとは、マイクロサービスなんかを作るときには必須となるあれである。 AWSにおいては、各種リソース間で通信を行う際に、相手先のエンドポイントを解決する仕組みが用意されている。 外向き、つまり対インターネットに対しては、…
CloudWatchへのストリーミング マネジメントコンソールからダウンロードしてgrepかけるのはしんどいので、 基本的にはCloudWatchに流したい。 [設定] => [ソフトウェアの変更] で、CloudWatch Logs へのインスタンスログのストリーミング を有効化できる。 …
前提 S3をオリジンとしたCloudFrontディストリビューションを作成している HTMLや画像ファイルをCloudFront経由で配信したい 独自ドメインのCNAMEを登録している CloudFrontのドメイン、またはCNAMEで登録している独自ドメインにアクセスすると以下のような…