dehio3’s diary

仕事、生活、趣味のメモ

CircleCI実践入門でちょとつまずいたのでメモ

はじめに Firebase Test Labとは 無料プラン(Spark)の制限 Test Labの準備 サービスアカウントへ設定するロール 課金の有効化 おわりに はじめに 9/14にCircleCI実践入門が発売されました。 amzn.to ここ一年くらい業務で利用していなかったので、再入門す…

CNDT2020での各社の取組から学ぶコンテナセキュリティ

はじめに まず確認すべきはNIST SP 800-190 Yahoo! JAPAN 製品選定に際し目指していた業務フロー 振舞い検知 構成チェック 脆弱性検知 製品選定 体制と役割 システム構成 ZOZOテクノロジー コンテナイメージ脆弱性検知 freee 外部から受ける攻撃の対策 イメ…

lambdaで「No module named 'numpy.core._multiarray_umath'」の対応したメモ

事象 前提条件 調査 ローカル Lambda 対応 ローカルのPythonバージョンを変更 serverless-python-requirements設定を変更 slimオプションを試す まとめ 事象 ローカル環境で動作確認したPythonをLambdaで動かしたら以下のエラーが発生 START RequestId: 8fad…

GitHubAPIをRESTからGraphQLに変えたら処理速度が4分16秒から7秒に改善した

はじめに 改善結果 REST API / 256s (4分16秒) GraphQL / 7s 取得するデータ コード RESR API GraphQL まとめ はじめに GitHubの運用にてアカウント一覧を作成する必要があり、GitHubAPI v3(REST API)を使って実装したのですが、アカウント数の増加ととも…

API Gatewayチュートリアルをserverless frameworkを使って構築してみた

はじめに Code serverless.yml Deploy Test serverless framework の用に作成されるリソース IAM Role S3 Cloud Formation まとめ はじめに API Gateway + LambdaのREST API環境をserverless frameworkで作成しました。 作成した環境は以下のAPI Gatewayチュ…

AWS Amplify オンラインハンズオンのコストについて

はじめに 実施内容 期間 作成した環境 かかったコスト まとめ はじめに GWにAWSのAmplifyオンラインハンズオンをやってみました。 aws.amazon.com Amplifyは全くの未経験でしたが、ハンズオンの資料も分かりやすく、動画も提供されているので、詰まることな…

「JavaScript(ES6)/Vue.js/TypeScript フロントエンド技術入門」のメモアプリをGitHub ActionsでGitHub Pagesにデプロイしてみた。

はじめに 作業 GitHubにnotepadプロジェクトを上げる vue.config.jsを追加する vue.config.js GitHub Actionsを作成する .github/workflows/vue-deploy.yml GitHub Pagesを設定する まとめ はじめに Stay HomeのGWということで、今年こそは何かしらの勉強を…

GitHub Actionsのself-hosted runnersがOrgantizationに対応したのでubuntu 16.04で検証してみた

はじめに 使用するホスト ホストの作成 dockerのインストール dockerグループにubuntuユーザーを追加 self-hosted runnersの設定 ジョブを実行 ランナーのサービス登録 まとめ はじめに Organizationレベルでのself-hosted runnersの設定がアナウンスされま…

Github ActionsでAssumeRoleする方法

はじめに ローカルでのデプロイ方法 ~/.aws/credentials AssumeRoleの実行方法 GitHub Actionsの設定 .github/workflows/deploy.yml GitHub Actionsの実行 原因 対応 はじめに ローカル端末から実施していたServerless FrameworkでのLambdaのdeployをGitHubA…

serverless CI/CDを試してみた

はじめに デプロイ手順 1.サインアップ 2.appの設定 3.profileの設定 4.デプロイ 修正箇所 package.jsonをリポジトリにあげる requirements.txtを作成する python3.6→3.7に変更 オプションの渡し方を変更 おわり はじめに serverlessからCI/CDの一般提供がア…

GitHub Actions で terraform plan/apply をCI/CDしてみた

はじめに 前提条件 作業手順 workflowの作成(plan) AWSアクセスキーの設定について(追記) Secretsを登録 アクションを実行(plan) workflowの作成(apply) アクションを実行(apply) まとめ はじめに 11/13 の GitHub Univers にて GitHub Actions が一般公開…

CircleCIのビルドデータを収集する仕組みを作った

はじめに 目的 機能概要 SaaS版との違い Dynamodbでの対応1(重複排除) Dynamodbでの対応2(グローバルセカンダリインデックス) ソースコード おわり はじめに 前回のCircleCI ユーザーコミュニティミートアップ にて「CircleCI Serverの利用状況を可視…

pythonで取得したタイムゾーン付きのデータからタイムゾーンを削除する

now time >>> now_time_utc = datetime.now(timezone('UTC')) >>> now_time_utc datetime.datetime(2019, 9, 19, 7, 14, 37, 136303, tzinfo=<UTC>) now time to JST >>> one_hour_ago_time_jst = now_time_utc.astimezone(timezone('Asia/Tokyo')) >>> one_hour_</utc>…

ディーカレットからau PAYにチャージしてみた

はじめに チャージの流れ おわりに はじめに 8/21からディーカレットで電子マネーチャージサービスが開始されました。 www.decurret.com 自分はauユーザーなのですが、対象ブランドに「au wallet」があったので、早速チャージを試してみました〜 アプリから…

リゾナーレ八ヶ岳に宿泊して北杜市サンフラワーフェスに行ってきた

はじめに リゾナーレ八ヶ岳 → サンフラワーフェス 1.リゾナーレ八ヶ岳(12:35) → 小渕沢駅(13:05) 無料 2.小淵沢駅(13:08) → 穴山駅(13:26) ¥324 3.穴山駅(13:28) → メイン会場(13:50) ¥3,250 サンフラワーフェス サンフラワーフェス → リゾナーレ八ヶ岳 ハイ…

チーム内でのansibleリポジトリの管理方法

はじめに 考慮した事 対応 pipenvで実行環境を合わせる Ansible Galaxyからのroleを一括で取得 構成ファイル ./Pipfile ./requirements.yml 作業手順 はじめに ansibleをリポジトリで管理してる時に、チーム内で挙動を合わせる為の対応メモ 考慮した事 ansib…

terraformingの代わりになるかも知れないのでterraformerを早速試した

はじめに インストール 構成情報の取得 事前設定 importを試す 全リソースをimportする terraformingの課題解決できる? はじめに クラスメソッドさんが以下の記事を書いていた dev.classmethod.jp AWS環境管理の為に、同じようなterraformingというツール使…

docker版Rundeckのヘルスチェク設定の確認

はじめに RundeckをEC2からECSへ移行する際に、task_definitionへのヘルスチェックの設定が必要かどうか検討するために、公式のイメージがヘルスチェックが設定されているか確認する。 docs.aws.amazon.com 検証 最新のイメージを取得 # docker pull rundeck…

docker版RundeckのデフォルトのUUIDについて

はじめに 調査 実際の設定値 uuidの設定箇所 結論 はじめに Rundeck(version:3.0.22)のdocker版を冗長構成で利用しようとしたところ、全てのコンテナのUUIDが同じで、再起動しても毎回同じ値になるので設定箇所を調査した。 調査 実際の設定値 コンテナに入…

terraformコマンドのコンテナイメージにtfnotifyを追加した

はじめに imageの取得 コンテナ作成&起動 tfnotifyのインストール circleciのconfig.yml (追記)terraformのバージョン次第で、goのバージョンが違うので注意 hashicorp/terraform:0.10.8 hashicorp/terraform:0.11.11 はじめに CIツールでterraformを実行す…

CircleCI Enterpriseでnomadの状態をWebUIでみたかったけどダメだった

はじめに 作業 ポートフォワードの設定 ブラウザからアクセス WebUIの対応バージョン確認 CircleCI Enterpriseのnomadバージョン確認 コマンドでの確認方法 はじめに CircleCI Enterpriseの運用で調べてたら以下のサイトを発見! blog.1q77.com Nomad の Web…

Github Enterpriseでユーザー一覧をAPIで取得する

はじめに 対応 はじめに オンプレにてGitHubでアカウントの一覧を取得する方法 APIあるけど一回のリクエストで取得できる件数の上限が100なので面倒だった。。 developer.github.com per_pageで1ページの表示数を100に設定する pageでページ数増やしてもユー…

athenaでcreate table のサポート型で対応してない形式の日付データを扱う

はじめに 対応 TIMESTAMP型で定義 STRING型で定義し、date_parse関数を使用 from_iso8601_timestamp関数を使用 (追記)表示形式を指定 (追記)各関数利用時のtype はじめに athenaにてS3に保存したJSONファイルの以下の項目を日付形式で扱う方法 "queued_at": …

Alexaに西武バスの到着時刻を読み上げさせる

はじめに 特徴 コード はじめに 最寄りがバス通勤なのですが、毎朝妻にバスの時刻を調べさせられるのが面倒で、Alexaが教えてくれるスキルを開発しました。 完全に個人用で、読み上げてくれる経路のハードコードされている為、オープンなスキルではないです…

OpenLDAP Serverの起動が失敗する

環境 事象 調査 定義ファイルを確認 TLS_CACERTDIR TLS_CACERTDIRを無効化 check-configの実行 /etc/openldap/slapd.dを確認 対応 結論 環境 OS : AmazonLinux2 (ami-0148288598227344a #amzn2-ami-hvm-2.0.20181114-x86_64-ebs) 事象 OpenLDAPサーバをイン…

docker-composeの拡張フィールドについて

はじめに docker-compose.yml x-で始まる定義がある サービス定義でアスタリスクで始まる定義がある 調査結果 はじめに redashのdocker-compose.ymlを見てたら、知らない形式があったので確認 docker-compose.yml https://github.com/getredash/redash/blob/…

redashにdatadogを実行したらredashが起動しなくなった

事象 環境 調査 ポート5000がすでに使われている 5000番を使ってるのだれ? 対応 事象 datadog-agentのインストール後、redashを起動しようとしたら以下のエラーが発生 root@redash:/opt/redash# docker-compose up -d Creating network "redash_default" wi…

redashの設定を別のサーバへリストアする

はじめに 環境 対応 バックアップ(検証環境) リストア(本番環境) redash停止 postgresサービスの設定を確認 postgresのみを起動 コンテナの IPアドレスを取得 postgresに接続 database確認 database再作成 バックアップデータをコンテナ内にコピー リスト…

redashのamiにssh-ldap-pubkey-wrapperをインストールする

はじめに OSの認証方法をLDAPで、公開鍵認証にするため、LDAPクライアントを設定にsshd_configを設定しようとしたけど、ssh-ldap-pubkey-wrapperがないのでインストールする 環境 ami : "ami-0c7d9b740e997aa69" #redash-5.0.2-b5486-build2-ap-northeast-1 …

athenaでS3のJSONデータを参照する

はじめに JSONデータ データ参照するまでの流れ テーブル作成 テーブル作成段階でのデータの参照 配列をフラット化したデータの参照 参照 月毎にデータを集計 期間を指定してデータを集計 はじめに athenaにてJSON形式のデータを参照する時に理解に苦しんだ…