OpenShift

OpenShift CI/CD を使ってみよう サービスメッシュを使ってみよう Jaeger https://www.jaegertracing.io/ マイクロサービスの各サービス間の通信を専用のソフトウェアに仲介させることで、マイクロサービス特有の課題を解決する CI/CD Jenkins(従来型) -> Tekton/ArgoCD(クラウドネイティブ) Tekton https://tekton.dev/ ArgoCD 第 7 章 OpenShift Container Platform での ArgoCD の使用

2024年2月9日 · 1 分

AWS: Bedrock: GenAI

AWS: Bedrock: GenAI Amazon Bedrock とは 【速報】AWS の生成 AI サービスである Amazon Bedrock がリリースされたので朝イチで触ってみた Amazon Bedrock “Claude 2” と、ChatGPT “GPT-4” を比較してみる AWS による生成 AI の新サービス「Amazon Bedrock」の可能性を考察する Amazon Bedrock でモデルごとに画像を生成してみた Bedrock のはじめかた Amazon Bedrock の導入効果をレビューでご紹介(KDDI アジャイル開発センター株式会社-みのるん) Build generative AI chatbots using prompt engineering with Amazon Redshift and Amazon Bedrock GPT 連携アプリ開発時の必須知識、RAG をゼロから解説する。概要&Python コード例 Amazon Bedrock の Knowledge base で簡単に RAG を構築 Github: Query structured data with natural language using Amazon Bedrock https://github.com/aws-samples/amazon-bedrock-workshop https://github.com/aws-samples/promptus API: Boto3: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock.html モデル Titan FMs Claude 2 Jurassic-2 (Python SDK) Stable Diffusion Claude 2 生成 AI の最新モデル「Claude2」とは?使い方や ChatGPT との違いについても解説 クライアント SDK GPT-4 と Claude 2 を比較してみました 【Claude 2.1】ChatGPT 超え AI の日本語での使い方や API の使用方法、GPT-4 との比較を解説 Anthropic、「Claude 2.1」をリリース–15 万ワードに対応、幻覚も半減 Jurassi-2 日本語対応していない AWS の"推しの AI" 「Jurassic-2」を使ってみた!!Bedrock ローンチ前に使えるんやん!

2024年2月6日 · 1 分

AWS: Glue: ETL

Glue AWS Glue の概要 ETL(抽出、変換、ロード) パイプラインを視覚的に作成/実行 AWS データサービス連携: Athena: S3 上のデータに対して、クエリ(SQL)を利用してデータの分析を行うことができるサービス EMR:(Elastic MapReduce): Hadoop, Spart の実行 Redshift Spectrum(スペクトル): ReadShift から S3 をクエリ 主要機能 データの検出と整理 複数のデータストアを統合して検索 データを自動的に検出 スキーマとアクセス許可を管理 さまざまなデータソースに接続 分析用データの変換、準備、クリーニング データを視覚的に変換 シンプルなジョブスケジューリングで複雑な ETL パイプラインを構築 転送中のストリーミングデータのクリーニングと変換 組み込みの機械学習によるデータの重複排除とクリーニング(FindMatch) 組み込みのジョブノートブック ETL コードの編集、デバッグ、テスト 機密データの定義、検出、修正 データパイプラインの構築とモニタリング 自動スケーリング(ワークロードに基づく) ジョブ自動化(イベントトリガー) ジョブの実行とモニタリング(Spark, Ray, CloudTail) ETL と統合アクティビティのワークフローを定義 コンポーネント コンソール Data Catalog クローラおよび分類子 ETL オペレーション ストリーミング ETL ジョブシステム ビジュアル ETL コンポーネント ジョブ実行エンジン Spark (AWS Glue ETL) PySpark Overview Ray (AWS Glue for Ray) Ray Ray Data: Scalable Datasets for ML AWS Glue での Ray ジョブの使用 AWS Glue Studio と AWS Glue でのノートブックの使用 AWS Glue for Ray のインタラクティブセッション (プレビュー) の開始方法 【プレビュー】AWS Glue で Ray が利用できるようになりました!#reinvent AWS Glue on Ray ではじめるデータ分析とそのパフォーマンス

2024年2月5日 · 1 分

生成AI(ジェネレーティブAI)

生成 AI(ジェネレーティブ AI/GenAI) Softbank データマネジメントと生成 AI Snowflake の製品管理担当幹部が考える「生成 AI×DWH」の新たな可能性 AI 活用で目指すべきは“脱 DWH” データレイクと DWH のデータを統合管理する真の“データ活用”時代の「レイクハウス」 生成 AI の開発力強化に向けたプロジェクト「GENIAC」を開始します (Generative AI Accelerator Challenge) Microsoft がデータ分析基盤「Fabric」発表、DWH・AI・ストリーム分析を統合 プログラミングコード生成 AI GitHub Copilot Amazon CodeWhisperer BigQuery 総合職の新卒 1 年目が、自社のデータ構造に合わせた SQL 生成 AI を作ってみた BigQuery からデータを抽出して生成 AI に分析してもらうまでが SQL で完結する手順 Amazon Redshift/Amazon Q generative SQL 自然言語から SQL のクエリ生成ができる Amazon Q generative SQL を触ってみた(プレビュー) [速報] Amazon Redshift クエリエディタが Amazon Q generative SQL の新機能が発表されました(プレビュー) #AWSreInvent Amazon Bedrock LLM: Claude 2 アンソロピックのクロード 2 Vs GPT-4(徹底比較) OpenAI の GPT シリーズと Bedrock の Claude をコスト比較してみた PingCAP/TiDB ChatGPT を搭載した革新的な SQL ジェネレータ「Chat2Query」とは ChatGPT × MySQL Shell:SQL を AI に考えてもらうプラグイン Azure Azure Open AI Service で SQL を生成するプロンプト例 日本語プロンプト指示で SQL 文を生成できるデータベース開発支援ツール - システムインテグレータ Fabric Microsoft Fabric とは Microsoft Fabric のデータ ウェアハウスとは Microsoft Fabric の組み込みの AI モデルで自然言語に対する解析・分析をしてみる Snowflake Gen AI と LLM をデータに導入しよう AI 機能を使って、SQL なしで Snowflake のデータを分析する方法 Snowpark Container Services:Snowflake で洗練された生成 AI とフルスタック アプリを安全に展開して実行する Snowflake Cortex で AI を数秒で使用 Snowflake Cortex ML ベースの関数 Snowflake Cortex について調べてたら凄いワクワクしてきた! Morph https://www.morphdb.io/ データのための、Notion や Figma のようなツールをつくりたい Figma や Miro のように直感的なデータ分析体験を!Canvas 機能のご紹介

2024年2月2日 · 1 分

AWS: SES

AWS: SES: スパム In a move to safeguard user inboxes, Gmail [1] and Yahoo Mail [2] announced a new set of requirements for senders. Effective February 2024, the new requirements affect email senders who distribute over 5,000 bulk messages per day or have >0.3% of messages reported as spam. Failure to comply with new requirements may result in Gmail and Yahoo rejecting message delivery to their customers. Your account has at least one email address identity sending email without a matching verified domain identity. This may result in reduced ability to send to some email recipients. ...

2024年1月31日 · 1 分

Windows: クラウド利用

Windows クラウド利用 「Azure は AWS より安い」は本当か Windows Server と SQL Server 向けでは、AWS は Azure と比べて 5 倍のコストがかかります

2024年1月15日 · 1 分

ECS: aws-cli

ECS: aws-cli curl, unzip は入っていること 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ARG BASE_IMAGE=myimage-cicd-appbase ARG TAG=latest FROM ${BASE_IMAGE}:${TAG} as server ARG USERNAME=ubuntu ARG GROUPNAME=ubuntu ARG PASSWORD=ubuntu ARG UID=1000 ARG GID=1000 ENV APP_BASE=/usr/src/app \ LIB_BASE=/usr/src/lib \ POETRY_VERSION=1.0.10 \ PATH="/root/.poetry/bin:$PATH" RUN mkdir -p /var/run/gunicorn && mkdir -p /storage RUN apt-get update && apt-get install -y sudo RUN groupadd -g ${GID} ${GROUPNAME} && \ useradd -m -s /bin/bash -u ${UID} -g ${GID} -G sudo ${USERNAME} --home-dir ${APP_BASE} && \ echo ${USERNAME}:${PASSWORD} | chpasswd && \ echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # aws-cli RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" RUN unzip awscliv2.zip RUN sudo ./aws/install # Application COPY . ${APP_BASE} WORKDIR ${APP_BASE} RUN pip install pip poetry urllib3==1.26.15 -U && \ poetry config virtualenvs.create false && \ poetry install && pip install urllib3==1.26.15 pyOpenSSL -U RUN chown -R ${USERNAME}:${GROUPNAME} ${APP_BASE} RUN chmod 777 /run/gunicorn USER ${USERNAME} CMD ["/usr/src/app/docker/codebuild/entry_web.sh", "/usr/src/app"]

2024年1月7日 · 1 分

Terraform: Import

Terrafrom Import ドメイン認証 1 # env $(cat ../.env|xargs) terraform -chdir=prod import 'module.ses.aws_route53_record.domain_identity["yourdomain.com"]' Z01825913VYOI2NNQZL0A__amazonses.yourdomain.com_TXT S3 1 2 3 export RES=module.s3_backup.aws_s3_bucket.this export BUCKET=mybucket-prod env $(cat ../.env|xargs) terraform -chdir=prod import $RES $BUKET

2024年1月7日 · 1 分

AWS: EFS: バックアップ

EFS バックアップ AWS Backup https://github.com/hdknr/awsform/blob/main/terraform/modules/backups/main.tf AWS DataSync AWS DataSync を使って S3 から EFS へデータを転送する!

2024年1月5日 · 1 分

django-redis: lock

djanog-redis: cache.lock lock https://github.com/jazzband/django-redis/blob/d94a7f9644b96cc37743914fce899cca942c032a/django_redis/cache.py#L177 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class RedisCache(BaseCache): ... @omit_exception def lock(self, *args, **kwargs): return self.client.lock(*args, **kwargs) def __init__(self, server: str, params: Dict[str, Any]) -> None: ... self._client_cls = options.get( "CLIENT_CLASS", "django_redis.client.DefaultClient" ) self._client_cls = import_string(self._client_cls) self._client = None ... DefaultClient https://github.com/jazzband/django-redis/blob/d94a7f9644b96cc37743914fce899cca942c032a/django_redis/client/default.py#L29 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 from redis import Redis class DefaultClient: def __init__(self, server, params: Dict[str, Any], backend: BaseCache) -> None: ... self._clients: List[Optional[Redis]] = [None] * len(self._server) ... def lock( self, key: KeyT, version: Optional[int] = None, timeout: Optional[float] = None, sleep: float = 0.1, blocking_timeout: Optional[float] = None, client: Optional[Redis] = None, thread_local: bool = True, ): if client is None: client = self.get_client(write=True) key = self.make_key(key, version=version) return client.lock( key, timeout=timeout, sleep=sleep, blocking_timeout=blocking_timeout, thread_local=thread_local, ) def get_client( self, write: bool = True, tried: Optional[List[int]] = None, ) -> Redis: """ Method used for obtain a raw redis client. This function is used by almost all cache backend operations for obtain a native redis client/connection instance. """ index = self.get_next_client_index(write=write, tried=tried) if self._clients[index] is None: self._clients[index] = self.connect(index) return self._clients[index] # type:ignore Redis https://github.com/redis/redis-py/blob/6d77c6d715430c30f22147f8c572659d77380a9f/redis/client.py#L88 lock: https://github.com/redis/redis-py/blob/6d77c6d715430c30f22147f8c572659d77380a9f/redis/client.py#L439C1-L511C10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 class Redis(RedisModuleCommands, CoreCommands, SentinelCommands): def lock( self, name: str, timeout: Optional[float] = None, sleep: float = 0.1, blocking: bool = True, blocking_timeout: Optional[float] = None, lock_class: Union[None, Any] = None, thread_local: bool = True, ): """ Return a new Lock object using key ``name`` that mimics the behavior of threading.Lock. If specified, ``timeout`` indicates a maximum life for the lock. By default, it will remain locked until release() is called. ``sleep`` indicates the amount of time to sleep per loop iteration when the lock is in blocking mode and another client is currently holding the lock. ``blocking`` indicates whether calling ``acquire`` should block until the lock has been acquired or to fail immediately, causing ``acquire`` to return False and the lock not being acquired. Defaults to True. Note this value can be overridden by passing a ``blocking`` argument to ``acquire``. ``blocking_timeout`` indicates the maximum amount of time in seconds to spend trying to acquire the lock. A value of ``None`` indicates continue trying forever. ``blocking_timeout`` can be specified as a float or integer, both representing the number of seconds to wait. ``lock_class`` forces the specified lock implementation. Note that as of redis-py 3.0, the only lock class we implement is ``Lock`` (which is a Lua-based lock). So, it's unlikely you'll need this parameter, unless you have created your own custom lock class. ``thread_local`` indicates whether the lock token is placed in thread-local storage. By default, the token is placed in thread local storage so that a thread only sees its token, not a token set by another thread. Consider the following timeline: time: 0, thread-1 acquires `my-lock`, with a timeout of 5 seconds. thread-1 sets the token to "abc" time: 1, thread-2 blocks trying to acquire `my-lock` using the Lock instance. time: 5, thread-1 has not yet completed. redis expires the lock key. time: 5, thread-2 acquired `my-lock` now that it's available. thread-2 sets the token to "xyz" time: 6, thread-1 finishes its work and calls release(). if the token is *not* stored in thread local storage, then thread-1 would see the token value as "xyz" and would be able to successfully release the thread-2's lock. In some use cases it's necessary to disable thread local storage. For example, if you have code where one thread acquires a lock and passes that lock instance to a worker thread to release later. If thread local storage isn't disabled in this case, the worker thread won't see the token set by the thread that acquired the lock. Our assumption is that these cases aren't common and as such default to using thread local storage.""" if lock_class is None: lock_class = Lock return lock_class( self, name, timeout=timeout, sleep=sleep, blocking=blocking, blocking_timeout=blocking_timeout, thread_local=thread_local, )

2024年1月5日 · 4 分