kakakakakku blog

Weekly Tech Blog: Keep on Learning!

docker の検索結果:

Moto: AWS アカウントなしで Terraform のチュートリアル「Manage similar resources with count」を実施する

…すれば OK👌 $ docker run --rm -p 5000:5000 --name moto motoserver/moto また Amazon EC2 インスタンスが依存する AMI (Amazon Machine Image) は amzn2-ami-hvm-*-x86_64-gp2 というフィルタ条件を使っている.Moto にもともと登録されている AMI 情報でフィルタ条件を満たせるため,Moto に独自の AMI を登録する仕組みは使わなくて大丈夫だった. …

2025年(1-6月)のプルリクエストを振り返る

2016年から毎年送ったプルリクエストを振り返る記事を書いている📅 2025年(1-6月)は「計17件」だった❗️ プルリクエストを振り返るための検索 プルリクエストを振り返るために GitHub の検索条件を使う. 今回は「2025年(1-6月)」に限定するため created:2025-01-01..2025-06-30 とする. is:pr is:public author:kakakakakku -user:kakakakakku created:2025-01-01…

Moto: AWS アカウントなしで Terraform のチュートリアル「Use configuration to move resources」を実施する

…すれば OK👌 $ docker run --rm -p 5000:5000 \ --name moto \ -v ~/amis.json:/moto/amis.json \ -e MOTO_AMIS_PATH=/moto/amis.json \ motoserver/moto 👾 main.tf 次に GitHub リポジトリ hashicorp-education/learn-terraform-move を clone する. github.com そして main.t…

MOTO_IAM_LOAD_MANAGED_POLICIES: Moto で IAM マネージドポリシーを読み込む

…になっている. $ docker run --rm -p 5000:5000 --name moto motoserver/moto $ aws iam list-policies --endpoint-url http://localhost:5000 { "Policies": [] } ドキュメントには以下のように書いてある📝(翻訳付き) Moto comes bundled with all Managed Policies that AWS exposes, whi…

MOTO_AMIS_PATH: Moto に独自の AMI を登録する

…録されている. $ docker run --rm -p 5000:5000 --name moto motoserver/moto # バージニア北部 (us-east-1) リージョン $ aws ec2 describe-images --endpoint-url http://localhost:5000 \ --filters "Name=name,Values=al2023-ami-2023.7.20250512.0-kernel-6.1-x86_64" \ --…

listen tcp 0.0.0.0:5000: bind: address already in use. と出たら AirPlay レシーバーを OFF にする

Mac

…ia を使っていて,Docker で「ポート番号 5000」のコンテナを起動しようとしたら以下のエラーが出た🔥 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5000 -> 0.0.0.0:0: listen tcp 0.0.0.0:5000: bind: address already in use. 以下の設定から「AirPlay レシーバー」を…

AWS に Dify をデプロイして入門できる「Dify での生成 AI アプリケーション構築ワークショップ」

…ョしながら最終的に Docker Compose を起動しているところは「なるほど〜」という感じ💡 UserData: Fn::Base64: | #!/bin/bash max_attempts=5 attempt_num=1 success=false while [ $success = false ] && [ $attempt_num -le $max_attempts ]; do sudo dnf install -y git docker if [ $? -eq…

3年振りにアップデート📊 Redash v25.1.0 を試せる「Redash ハンズオン資料」

…追加 環境 最新の Docker Compose に沿って YAML ファイル名・コマンドを更新 world データベースを MySQL 8.4 にバージョンアップ まとめ 今から新しく Redash を導入するっていう機会は減っているかもしれないけど,昔から Redash を使い続けている現場はあるし,Redash の機能を試したいな〜っていうときに redash-hands-on を活用してもらえればと👌 Happy querying :) Redash に入門できる r…

Moto を使って Cognito の cognito-idp API をローカル環境で試す

… into and Dockerized RDS-installations that you can connect to. docs.getmoto.org Moto: Server Mode Moto は Python ライブラリとして使えるように実装されているけど,実は Server Mode という機能もあって LocalStack とほとんど同じ体験で使えるため,個人的には Moto の Server Mode が使いやすいかな〜と思う \( 'ω')/ docs…

Testcontainers for Python と Moto を組み合わせて Boto3 を使った Python コードをテストする

…メージを起動できる DockerContainer があって,試してみることにした.結果的にイメージ通りに Testcontainers for Python と Moto を組み合わせることができた❗️ testcontainers-python.readthedocs.io サンプルコード 👾 src/mymodel.py 今回はサンプルとして Moto のドキュメントに載っていた MyModel クラスを少し修正してテスト対象にする.save() 関数を実行すると Am…

Lambda 関数(コンテナ)をテストできる testcontainers-python v4.8.0 の新機能「AWSLambdaContainer」

…リ構成 . ├── Dockerfile ├── requirements-test.txt ├── src │ └── app.py └── tests └── test_app.py 👾 Dockerfile まず Dockerfile を作る.Python ベースイメージを使えば AWS Lambda RIC (Runtime Interface Clients) と AWS Lambda RIE (Runtime Interface Emulator) をセットアップ…

AWS Lambda 関数で Amazon ECR のイメージタグを上書きしたら AWS Lambda 関数を更新する

…n 1') さらに Dockerfile は以下のようにした.Python ベースイメージを使えば AWS Lambda RIC (Runtime Interface Clients) をセットアップしなくて OK👌 FROM public.ecr.aws/lambda/python:3.12 COPY lambda_function.py ${LAMBDA_TASK_ROOT} CMD [ "lambda_function.handler" ] コンテナイメージをビルドして…

Zenn Book で「LocalStack 実践入門」を公開しました

…2・AWS CLI・Docker・GitHub CLI を含んだ環境を起動するようにしています. { "name": "aws-application-workshop-using-localstack", "image": "mcr.microsoft.com/devcontainers/python:1-3.12-bullseye", "features": { "ghcr.io/devcontainers/features/aws-cli:1": {}, "ghcr.i…

LocalStack を使って Amazon Transcribe をローカル環境で操作する

Amazon Transcribe で Speech-to-Text を実現するときに,LocalStack を使えば Amazon Transcribe を「AWS アカウントを使わずにローカル環境で」動かせる👌LocalStack 自体は仕事でもプライベートでも使ってるけど,Amazon Transcribe は今まで試したことがなくて,今回試してみた❗️ Amazon Transcribe API のサポート状況 もちろん LocalStack がすべての Amazon…

CodeBuild の GitHub Actions ランナーサポートを Lambda 実行環境で試した

…かれていて,例えば Docker ビルド・VPC 接続はできず,もちろん実行時間の上限もある.そして,今回試した実行環境の設定を上書きすることも現状ではできなさそうだった.制約をうまく活用できるかがポイントになりそう. docs.aws.amazon.com あとは Webhook のイベントタイプ WORKFLOW_JOB_QUEUED を現状 AWS CDK / Terraform で設定できないところも気になるけど,AWS CloudFormation では既にサポート…

AWS CDK で AWS Step Functions から Amazon SageMaker Processing を .sync で実行する

…ecrdeploy.DockerImageName('hello-world'), dest: new ecrdeploy.DockerImageName(repository.repositoryUriForTag('latest')), }) const sageMakerRole = new aws_iam.Role(this, 'SageMakerRole', { roleName: 'sandbox-sagemaker-role', assumedBy: new a…

AWS CDK の DockerImageAsset と cdk-ecr-deployment でビルドしたイメージを Amazon ECR に保存する

AWS CDK で「Dockerfile をビルドして Amazon ECR リポジトリにイメージを保存する」選択肢として DockerImageAsset と cdklabs/cdk-ecr-deployment を紹介する❗️ aws_ecr_assets.DockerImageAsset を使う まず,1番簡単なのは aws_ecr_assets.DockerImageAsset を使うという選択肢だと思う. docs.aws.amazon.com 👾 sandbox-…

Terraform で「最新の」Amazon ECS タスク定義を追跡できる aws_ecs_task_definition の track_latest オプション

Terraform で Amazon ECS タスク定義を作りつつ,アプリケーションのライフサイクルとして GitHub Actions などの「Terraform 以外で」イメージタグを差し替えて Amazon ECS タスク定義を更新(正確には更新ではなくリビジョン追加)する運用を選択することがあると思う.さらにデプロイを繰り返すと使わなくなった Amazon ECS タスク定義が増えるため,定期的に「登録解除 (INACTIVE)」をすることもあると思う.ちなみに202…

AWS Lambda 関数 (Python) の import 時間を計測しよう / -X importtime オプション or 環境変数 PYTHONPROFILEIMPORTTIME

…Metadata: Dockerfile: Dockerfile DockerContext: ./src DockerTag: python3.12-v1 👾 Dockerfile FROM public.ecr.aws/lambda/python:3.12 COPY app.py requirements.txt ./ RUN python3.12 -m pip install -r requirements.txt -t . CMD ["app.lambda_handl…

AWS CDK で Amazon EventBridge Pipes(SQS ソース・Lambda エンリッチメント・ECS ターゲット)を設定する

AWS CDK で Amazon EventBridge Pipes を設定する場合,AWS CloudFormation に沿った L1 Construct の CfnPipeを使う必要がある.今回はソース(Amazon SQS キュー)・エンリッチメント(AWS Lambda 関数)・ターゲット(Amazon ECS タスク)で Amazon EventBridge Pipes を構成する👌 docs.aws.amazon.com AWS CDK で試す L1 Const…

Amazon S3 のマルチパートアップロード・署名付き URL・Transfer Acceleration を組み合わせてファイルをアップロードするソリューション

…っていた例を参考に Docker Desktop の Docker.dmg (536.4 MB) をアップロードする.今回は以下のように2パターンを試して,アップロード速度の変化を確認した. アップロード1回目 パートを分割せず,Transfer Acceleration も活用せずにアップロードすると 142.1087999999523 sec という結果だった(もちろん環境・タイミングによっても異なる). Step 2 - Choose part size (MB): 6…

リモートスキーマ・アクション・イベントを体験できる!Hasura のチュートリアル「Backend Tutorial (Python)」

…(Python)」 を実施した.ビジネスロジックを拡張する仕組みとして覚えておく❗️手順だけではうまく動かずハマりどころも多かったけど,ポイントをまとめたので参考になればなーと🙏 ちなみに今回は Hasura Cloud を使いつつ,バックエンドはローカル環境に実装したけど,Hasura も含めてローカル環境に構築する場合は GitHub に公開されてる backend-stack/source-code/python の docker-compose.yml も参考になる👏

Terraform Plugin Framework を使ったカスタムプロバイダの実装に入門できる Terraform チュートリアル「Custom Framework Providers」

…組みもある💡実装や Docker Compose ファイルは GitHub の hashicorp-demoapp/product-api-go リポジトリにある. github.com 試しに Hashicups API を Docker Compose で起動して,API 操作を簡単に紹介する❗️ POST /signup $ curl -X POST -s localhost:19090/signup -d '{"username":"education", "pass…

FireLens の init プロセスで [MULTILINE_PARSER] を使う

…p-image を Docker Hub / Amazon ECR などに登録しておく.実装としては test.log に Java のスタックトレースを記載しておいて,Python からファイルをそのまま標準出力する.parsers_multiline.conf の正規表現をテストするときは test.log を書き換えれば良くてあると便利なデモアプリだったりする💡 📝 Dockerfile FROM public.ecr.aws/amazonlinux/amazonlin…

Trivy の VM image scanning で AMI / EBS スナップショットのセキュリティスキャンをしよう

Trivy の「VM image scanning」を使うと AWS の Amazon Machine Image (AMI) や Amazon Elastic Block Store (Amazon EBS) スナップショットに対してセキュリティスキャンを実行できる❗️サーバーにエージェントをセットアップする必要がなく(エージェントレス),スキャンのために Amazon EC2 インスタンスを一時的に起動する必要もなく,便利だ〜 \( 'ω')/ ドキュメントにも書いてある…

Trivy の Misconfiguration Scanning で Dockerfile の設定ミスを検出しよう

…ning」を使うと Dockerfile の設定ミス(セキュリティ課題やベストプラクティス乖離など)を検出できる❗️今回は Trivy を活用した Dockerfile のスキャンを試した作業ログをまとめる📝 aquasecurity.github.io ちなみに Trivy の Misconfiguration Scanning は Terraform, AWS CloudFormation など複数のスキャンをサポートしている.Trivy x Terraform を試した…

Trivy の Misconfiguration Scanning で Terraform の設定ミスを検出しよう

Trivy の「Misconfiguration Scanning」は Terraform をサポートしていて(AWS CloudFormation もサポートしている👏),Terraform コードのセキュリティ課題や設定ミスを検出できる❗️Trivy を活用した Terraform のスキャンを試した作業ログをまとめる📝 aquasecurity.github.io tfsec から Trivy へ 🔜 tfsec は現在も使えるけど,今後は Trivy に移行する流れと…

ALB の設定項目 routing.http.drop_invalid_header_fields.enabled を有効化する

Application Load Balancer (ALB) の設定項目 routing.http.drop_invalid_header_fields.enabled を有効化すると不正な HTTP ヘッダーをターゲットに転送せず ALB で自動的に削除できるようになる💡 HTTP ヘッダー名は正規表現 [-A-Za-z0-9]+ で表現する必要があって,例えば _ を HTTP ヘッダー名に使うと不正と見なされて削除対象になる.試してみる❗️ ちなみに設定項目 rout…

コンテナイメージの zstd 圧縮を試してみた

… BuildKit(docker buildx コマンド)で zstd 圧縮をする.zstd 自体の詳細は以下のドキュメントなどを読むと良さそう👀 docs.docker.com github.com サンプル Dockerfile 今回はサンプルとして Build Your Own Radar (BYOR) の Dockerfile を使う.zstd とは全然関係ないけど,今年 BYOR を試したときに(記事1/記事2)イメージサイズが大きいなぁー💨という印象があって,今回…

EventBridge Scheduler から ECS Task を実行する構成を Terraform で構築する

Amazon EventBridge Scheduler から Amazon ECS Task を定期的に実行する構成を Terraform で構築する機会があったのでまとめておく❗️Amazon EventBridge Scheduler とても便利 \( 'ω')/ tf ファイル 最初に完成形の tf ファイルを載せておく❗️今回は Amazon EventBridge Scheduler にフォーカスするために Amazon VPC 関連(サブネットやセキュリティグル…