Logo

dev-resources.site

for different kinds of informations.

AWS Fargateを利用した時刻固定したシステムテストの方法について

Published at
5/1/2024
Categories
fargate
faketime
japanese
Author
matyuda
Categories
3 categories in total
fargate
open
faketime
open
japanese
open
Author
7 person written this
matyuda
open
AWS Fargateを利用した時刻固定したシステムテストの方法について

この記事は先日英語版で投稿したHow to system test with fixed time on Fargateの日本語訳です。

AWS Fargateでの時刻を固定したシステムテストをどのように実現していますか?

aws ecs execute-commandを使用してコンテナにログインし、dateコマンドを使用して時刻を変更しようとしても、AWS Fargateでは特権コンテナがサポートされていないため、次のエラーが発生して変更することができません。

date: cannot set date: Operation not permitted

ところが、libfaketime を使用するとシステム時刻を調整することができます。
バージョンは古いですが、Keycloak 19.0.2のイメージで検証したDockerfileを以下に示します。

FROM quay.io/keycloak/keycloak:19.0.2 AS builder

USER root

RUN microdnf install -y git make gcc
RUN git clone https://github.com/wolfcw/libfaketime.git
WORKDIR /libfaketime/src
RUN make install
ENV LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1

ENV FAKETIME="2025-04-24 10:30:00"
RUN date

WORKDIR /opt/keycloak

ENTRYPOINT [ "/opt/keycloak/bin/kc.sh" ]
Enter fullscreen mode Exit fullscreen mode

上記で作成されたイメージから実行されたコンテナに以下のように入ってdateコマンドを実行すると、FAKETIME変数で指定した値が固定されていることがわかります。

% aws ecs execute-command --cluster _clustername_ --task _taskID_ --interactive --command "/bin/bash"

The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.

Starting session with SessionId: ecs-execute-command-xxxxxxxxx
[root@ip-NNN-NNN-NNN-NNN keycloak]# date
Thu Apr 24 10:30:00 UTC 2025
Enter fullscreen mode Exit fullscreen mode

ぜひ試してみてください。

japanese Article's
30 articles in total
Favicon
re:Invent 2023に参加してから1年たってみて
Favicon
re:Invent 2023 day1
Favicon
IIS環境でのパス制御を考える
Favicon
ホストベースルーティングを活用してALBを集約した際のデメリットを検討する
Favicon
AWS Summit Japan 2024体験記
Favicon
AWS Step Functionsに入門する
Favicon
AWS Community Buildersになって変わったこと
Favicon
GenAI Use Cases JPを試してみた
Favicon
RDS for MySQLでスロークエリログの出力を有効化する
Favicon
AWS Fargateを利用した時刻固定したシステムテストの方法について
Favicon
ランブックを活用したWindows Serverインプレースアップグレードのススメ
Favicon
DocumentDBでマルチバイト検索を実現する場合の留意事項について
Favicon
JAWS DAYS 2024参加体験記
Favicon
OCR + SwiftUI + Japanese. Quite a training project! 😅
Favicon
Lambdaで.NET 7のカスタムランタイムを実行する
Favicon
$0.005 per In-use public IPv4 address per hour の明細が高額になる場合の対応を考える
Favicon
Ryuu - a Japanese dragon
Favicon
事務局長を2年やってみて感じたこと
Favicon
Mechanically Detecting Accessibility Violations
Favicon
Hello back! Sharing some projects
Favicon
Making Font Loading More Efficient with React Content Font
Favicon
How to Avoid Japanese Characters in Your Code!
Favicon
AI 基礎 Part 00 -- stable-diffusion / ChilloutMix を使って日本人美女の画像を作る
Favicon
Next 基礎 Part 02 -- axios で API を叩けるようにする。No 'Access-Control-Allow-Origin' エラーの解決。
Favicon
Next 基礎 Part 01 -- プロジェクト作成
Favicon
AWS 基礎 Part 0 -- EC2 などの AWS サービスと用途の整理
Favicon
Android 基礎 -- Part 00 Android Studio のインストールと Hello World
Favicon
Web エンジニアリング基礎 -- Part02 TS のメリットとブラウザのレンダリング詳細
Favicon
Web エンジニアリング基礎 -- Part01 同期 or 非同期の処理のコールスタックとタスクキュー
Favicon
Ubuntu Settings -- US キーで Mac のように ctrl space の英かな切り替えと ctrl h などでの削除ができるようにする。

Featured ones: