from 30

30歳からwebエンジニアになったけど、思ったよりも苦しいので、その苦闘の記録をば

2021年の目標

[1] 2020年まとめ (1) 仕事関連 1 ~ 3月でAngel Dojo Project参加して、ベストアーキテクト賞を受賞 1月: 不動産系ツール開発プロジェクト(SAM, Lambda(node.js), StepFunctions, CloudWatchEvents, S3) 2 ~ 3月: コーポレートサイトのサーバレス化とIPv6対…

今更ながらDockerについて整理してみる[docker-compose / ネットワーク]

概要 前回・前々回でmac上での操作、Dockerfileの作り方についてまとめた。 Dockerfileもとにdocker buildでコンテナイメージを作成して、docker runコマンドでコンテナを立ち上げているが、docker runコマンドでは、ボリュームやポート番号やユーザーなどな…

今更ながらDockerについて整理してみる[Dockerfile]

経緯 手元のmacで動かすコマンド例については前回まとめました。 で、そこの最後でコンテナの中で実行したlibraryやファイルの操作をdocker commitコマンドでイメージにする方法を記載した。 でも、それだとDockerイメージの構成要素がわからなくなってしま…

今更ながらDockerについて整理してみる[コマンド・基礎]

経緯 今年のre:inventもまあ盛り沢山な内容ですが、例に漏れずサーバレス関連も非常にたくさんのアップデートがあります。 中でも比較的注目されているのが、Lambdaでコンテナイメージがサポートされたことでしょうか。 実行時間やメモリなどはそのままなの…

rasberry piでdocker を使えるようにする

経緯 最近dockerの学習をしている。 --network hostなdocker runを試そうとしているが、 どうやらdocker on macとlinuxだと挙動が違う模様 linuxで試そうと思ったので、兼ねてからlinuxサーバーとして使っているラズパイにdockerを落とそうというわけである…

PytestでStepInやbreakpointを使う

経緯 普段の開発ではpytestを使用して、TDDを行っている。 pythonのテストといえば、python標準のunittestもあるが、テスト結果の表示や制御のしやすさからpytestを選択する人が周りでは多いように思う。 で、pytestを使用しているが、今のプロジェクトではc…

Cloud Watch Logs Insightsの簡単な使い方

経緯 構成図 顧客のSQL Server on RDSのデータを変換して DynamoDBに入れ直すということをしている。 大体上記のようなアーキテクチャでやっており。 cronジョブでLambdaを5分おきに起動。 RDSの最新の変更をクエリ DynamoDBに入るように変換 DynamoDBからは…

Chromeでユーザーを分けてマルチアカウント切替を管理する

経緯 個人の開発とは違って、仕事でAWSを使う時は複数アカウント管理が必須だと思います。 Servereless Daysなんかでマイクロサービスの話を聞くと、マイクロサービスごとにアカウント区切るのがいいみたいな意見も聞きます。 うちの場合は、ステージごとに…

Linuxサーバーとしてラズパイを使ってみる。

経緯 普段の仕事ではLambdaを書いたり、CI/CDを構築したりって感じのことをやっています。 特にCodeBuildでbuildspec.yamlを書くときに感じるのですが、もう少しLinuxについての知識がほしいなと思います。 ということで、ラズパイをLinuxマシンとして使って…

gitでbranch迷子になったcommitをbranchに紐づける。

経緯 最近、新入りの派遣さんのサポートが多い。 自分のタスクに久々に戻ったら、なんだか前回作業が中途半端な状態で終わっていたみたいで、テストが通らない。。。 "TEMP"というコミットメッセージになっているし、一つ戻ってテスト通るかみてみるか。。。…

ubuntu on dockerでC言語のbuildができるように環境整備

経緯 アルゴリズムとデータ構造を学ぶために、C/C++をいじっていたら、 もっと低いレイヤーまで見て行って、最終的に0と1の世界まで実感できるようになりたいと考えるようになった。(絵に描いたような脱線である) 私の普段の仕事において、プログラムを動…

elasticsearchのdateでepoch_secondを使用する

経緯 普段はpythonを使用している。 日付関連は基本的にtimestampを使用している。 pythonのdatetimeモジュールにおけるtimestampは秒単位(10桁)になっている。 一方でelasticsearchのtype: dateはmillisecになっている。 elasticsearchにindexするときに…

【小ネタ】エディタで正規表現をつかって一括でcamelCaseをsnake_caseに変換する

経緯 顧客のRDBをDynamoDBに入るようにモデリングしなおして、データマイグレーションを行っている。 当社のDBのattributeはスネークケース(単語と単語をアンダースコアで結ぶ。例:snake_case)を使用しているが、顧客のDBやソースコードはキャメルケース(…

C++をやってみる

経緯 『プログラマーが知るべき97のこと』を読んでいて、他のパラダイムの言語を習得することで、元の言語の理解も深まる旨記載があった。 目下、目の前の仕事を楽にするにはもっとコーディングがうまくなる必要があると考えている。 コーディングが上手いっ…

Elasticserachでreindexを使ってみる

経緯 Elasticsearhのmappingsは追加はできても変更ができない。 変更したい場合は、indexを削除する必要がある。 でも、結構間違えたりするのでreindexでデータを退避したので その方法を書いておく 流れ reindexする元のsettingsとmappingsを使用して、rein…

Elasticsearchの親子関係のまとめ

概要 現在作成しているシステムにおいて、DBはDynamoDBを採用している。 DynamoDBのLSI, GSIの取り回しだけでは検索に限界があるので、 DynamoDBStream経由でElasticsearchにインデックスして、 Elasticesearchに検索を任せている。 Elasticsearchのドキュメ…

AWS Certified DevOps Engineer Professionalに合格しました

結果 AWS Certified DevOps Engineer Professionalに合格しました。 899点(合格点750点 / 満点1000点 )とでした。 今まで受けた他の認定も含めて最高点でした。 全ての問題を時終わるのに2時間35分。 見直し時間は25分ほどでした。 実務との関連 1. CI/CD…

DatapipelineでDynamoDBを別アカウントのDynamoDBへデータ移行する

別アカウントへDynamoDBのデータをコピーしたい MySQLだとdumpしたデータをexportしたり、RDSならスナップショット機能を使って、 別アカウントへのデータの移行は可能だと思います。 DynamoDBの場合はData Pipelineを使用するのがセオリーのようですが、 ち…

【エラー対処】"graphql/error/GraphQLError" has no exported member 'GraphQLError'. について

状況 aws/codebuild/standard:4.0イメージ で実施されているCodeBuild上で、 $ npm run build した際に、以下のエラーが発生した。 macのlocal上では再現できず解決に手間取った。 [fatal] Nuxt build error ERROR in node_modules/@aws-amplify/api-graphql…

AWS Certified Solution Architect Professionalに合格しました

結果 AWS Certified Solution Architect Professionalに合格しました。 761点(合格点750点 / 満点1000点 )とでした。 あと1問間違えていたら落ちていました。。。 とはいえ合格は合格。一番効率的に合格したといえなくもないのでよしとします。 全ての問題…