kakakakakku blog

Weekly Tech Blog: Keep on Learning!

docker の検索結果:

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 関連(サブネットやセキュリティグル…

Fargate でも使える!FireLens の init プロセスを活用して設定ファイルを S3 から読み込む

…を作る必要がある. Dockerfile サンプル 以下に Dockerfile のサンプルを載せる. FROM public.ecr.aws/aws-observability/aws-for-fluent-bit:2.28.5 COPY ./extra.conf /fluent-bit/etc/extra.conf extra.conf サンプル 以下に Fluent Bit の設定ファイル extra.conf のサンプルを載せる.今回は Apache HTTP Ser…

LocalStack を使って SSM Parameter Store をローカル環境で操作する

…ト参照で📝最近だと Docker Desktop の Extensions にも対応していて,1番簡単かも👌今回は Extensions を使った. docs.localstack.cloud AWS Systems Manager Parameter Store API LocalStack では AWS Systems Manager Parameter Store 関連の API がほとんどサポートされている❗️ DeleteParameter DeleteParame…

Dockerfile の ARG を使って FROM を変数化する

…メージを作るときに Dockerfile の FROM に指定する「イメージ名」や「タグ名」をビルドごとに変えて設定したく,Dockerfile の ARG を使って実現できた.試しながら学んだポイントをまとめる❗️ Dockerfile 例 例えば,以下の Dockerfile では ARG を使って VERSION を変数化していて,docker build コマンドを実行するときに --build-arg オプションを使うと変数に値を挿入できる.もし --build-a…

Build Your Own Radar で「自分だけの」Technology Radar を構築しよう

…で起動する 今度は Docker を使って Build Your Own Radar サービスをコンテナで起動する.コンテナイメージは Docker Hub に公開されていて,すぐに試せる.macOS / Windows など「ローカル環境で」動かせるのはメリットだと思う❗️ wwwthoughtworks/build-your-own-radar - Docker Hub Build Your Own Radar の実装は GitHub で確認できる. github.com…

Docker Desktop の Extensions を実装してみよう

…月にリリースされた Docker Desktop v4.16.0 (release notes) で GA になった「Docker Extensions」の Extensions は段々と種類が増えてきて,Disk Usage / Aqua Trivy / LocalStack など,最近使う機会もあったりする.今回は "Quickstart" ドキュメントを読みながら Docker Extensions の実装に入門してみた❗️ \( 'ω')/ オレオレ Docker E…

act: GitHub Actions のワークフローをローカル環境で実行する

… 0.2.40 と Docker Desktop 4.16.1 を使う. $ brew install act $ act --version act version 0.2.40 act コマンドには多くのオプションがある.以下に載せておく. $ act --help Run GitHub actions locally by specifying the event name (e.g. `push`) or an action name directly. Usage:…

2022年の振り返りと2023年の抱負

…Airflow : Docker で検証環境を構築して画面と CLI と REST API で操作する - kakakakakku blog Airflow : Tutorial を使って Python で実装された DAG の基礎を学ぶ - kakakakakku blog Airflow : PythonOperator と BranchPythonOperator に入門する - kakakakakku blog Airflow : SlackAPIPostOperat…

多くのデータベースに対応したマイグレーションツール migrate を MySQL で試した

… にしておく. $ docker run --name mysql57 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p 3306:3306 -d mysql:5.7 $ docker exec -it mysql57 mysql -e 'CREATE DATABASE world' 最後にマイグレーションファイルを保存する db/migrate ディレクトリも作っておく. $ mkdir -p db/migrate 🧩 マイグレーション : 1 回目…

CKS 対策にもおすすめ /「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」を読んだ

…の理解を深めるため「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」を読んだ.実は本書は 2021年7月頃 に1度読み終わっていたけど,実際に気になった部分を試したり,CKS (Certified Kubernetes Security Specialist) を受験 しながら読み直していたら書評記事をまとめるのが遅れてしまった (;・∀・) 本書を読んで1番良かったと感じるのは「セキュリティに関して "知らなかったことに気付けた"」ことだと思う…

CKS (Certified Kubernetes Security Specialist) に合格した : 勉強方法をまとめる

…A-2. 書籍 : Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド 並行して書籍「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」も読んだ.CKS 対策本ではないけど,学べる技術トピックは近く,何よりも日本語で読めるのは素晴らしかった.今度書評記事も書く予定! Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド (Compass Booksシリーズ)作者:須田 瑛大,五十嵐 綾,宇佐美 友也マ…