なになれ

IT系のことを記録していきます。

DynamoDBにおけるCRUD操作の色々なやり方をまとめた

DynamoDBをよく触るようになったもののDynamoDBヘのCRUD操作は色々なやり方があって、 毎度ググっては実行してというのを繰り返してました。 そのやり方をまとめていちいちググらないようにしたいと思います。 この記事について 色々なやり方があるDynamoDB…

KubernetesでLoad BalancerとしてEnvoyを試した

こちらでEnvoyを一通り学習しました。 www.katacoda.com 理解できているかの確認のために、KubernetesでEnvoyを使ってみます。 KubernetesでEnvoyを使う場合、EnvoyをSidecarプロキシにすることで各Podの通信をコントロールする構成が知られています。 サー…

Kubernetes環境での開発のTips

Kubernetes環境で開発する場合のTipsを紹介します。 Kubernetes環境での開発について Tipsを紹介する前にKubernetes環境での開発について説明します。 Kubernetes環境で開発したサービスを動かすには、実際に動かすプログラムの他にマニフェストファイルが必…

Horizontal Pod AutoscalerのメトリクスにCloudWatchを使用する

KubernetesのHorizontal Pod Autoscaler(HPA)を使用することで、CPUやメモリの使用状況に応じてPodをスケールアウトすることができます。 また、HPAではカスタムメトリクスを使うことで、CPUやメモリ以外のメトリクスを活用できます。 AWSでは、CloudWatchの…

client-goを使ってKubernetesのAPIに触れた

client-goとは KubernetesのAPIを実行するためのgoのモジュールです。 github.com Kubernetesの拡張にも使われてます。 ゼロから始めるKubernetes Controller / Under the Kubernetes Controller - Speaker Deck これ以降は実際に使ってみた内容です。 筆者…

JAWS-UGコンテナ支部 #16〜EKS on Fargateローンチ記念!EKS祭りだワッショイ 参加レポート

JAWS-UGコンテナ支部 #16〜EKS on Fargateローンチ記念!EKS祭りだワッショイの参加レポートです。 jawsug-container.connpass.com イベント名のとおり、AWSのサービスであるAmazon EKSやそのベースとなるKubernetesについての発表が数多く行われたイベント…

KubernetesでResource requestsとlimitsを最適な値にする方法

Kubernetesでは、ContainerのCPUやMemoryの使用量を設定するためのResource requestsとlimitsの機能があります。 これらの値をどのように決めるかはなかなか難しいのではないかと思います。 ただKubernetesの運用において、Resource requestsとlimitsの設定…

2019年で学んだ技術

2019年を振り返る内容です。 半年過ぎたころからAWSメインのインフラ業務が多くなってきたので、そのあたりで学ぶことが変わったりしました。 AWS 基本的な理解 Udemyのコース「手を動かしながら2週間で学ぶ AWS 基本から応用まで」 ※こちらは現在新規での受…

Kubernetesでエラーを返さずにPodを更新するにはwaitするのが解決策だった

Kubernetesでエラーを返さずにPodを更新するにはどうすれば良いか色々検証しました。 結論はPodが終了する直前にwaitするです。 以下、試したことを書きます。 結論だけ知りたい方はこちらからどうぞ。 今回はNode.jsで検証しましたが 、そのほか全般的に当…

Kubernetes Operatorを試した

試したものはPrometheusのOperatorです。 github.com Kubernetes Operatorとは OperatorはKubernetesに特化したアプリケーションです。Custom Controllerとして実装されています。 Operatorはアプリケーションのデプロイとスケーリングのノウハウをカプセル…

KubernetesのCustom Resourceを試した

KubernetesのCustom ResourceはKubernetesをユーザが拡張するためのものです。 Kubernetesの標準にあるDeploymentのようなリソースをユーザが独自に作成し、リソースの定義に応じて、Kubernetes上のリソースをコントロールすることが可能です。 Controllerと…

Kubernetesでカナリアリリースを試す

Kubernetesではコンテナイメージを実行するのにDeploymentが使われます。 ただこのDeploymentではカナリアリリースを実現することはできません。 そこでArgo Rolloutsを使って、カナリアリリースを試します。 argoproj.github.io 以下に試した内容を示します…

AnsibleとVagrantでKubernetesをセットアップする

以下を試してみた内容です。 kubernetes.io 2019年9月25日現在、この内容を試すとうまく動作しない部分があるので、直しつつ進めました。 なお、ローカルのOSはmacOS 10.14.6になります。 以下、Stepごとに修正点を補記します。 Step 1: Creating a Vagrantf…

ISUCONに初参加しました

ISUCON9の予選が9/7,8の日程で開催されました。 会社の同僚と一緒にチームを組んで、初めてISUCONに参加しました。 isucon.net 2人チームでチーム名は「isuconなにもわからない」です。仕事ではNode.jsを使っているのでNode.jsで挑戦しました。 利用言語の比…

AWSでKubernetes環境を構築する際のIngressについて

Ingressはアプリケーションレイヤのロードバランサに当たるリソースでSSL化などが可能になります。 Ingressの実装は様々なIngress Controllerに依存します。 例えば、Nginxを利用したNginx Ingress ControllerやGKEに含まれているGKE Ingress Controllerなど…

AngularにおけるLazyLoadingの実現方法

前提条件 Angular8 LazyLoadingとは 通常のSingle Page ApplicationだとJavaScriptファイルなどのアセットを初回ロード時に全て読み込みます。 初回ロード時の読み込み時間を軽減するために、モジュール毎に分割して必要な時に読み込むのがLazyLoadingと呼ば…

AWS IAMポリシーの作成と確認方法

複雑なIAMポリシーの作成と確認を行った時にそれなりに苦労したので情報を整理したいと思います。 概要 IAMポリシーとはAWSリソースのアクセス管理を定義するものです。 IAMポリシーを定義する際に実際にAWSリソースのアクセス管理が適切にできているか確認…

DynamoDBのスキーマ設計について学んだこと

DynamoDBのスキーマ設計について公式ドキュメントのベストプラクティスなどを見ながら学んだ記録です。 スキーマ設計の考え方 DynamoDBのスキーマ設計はRDBとは異なり、以下の考え方を採用します。 テーブルを分けずに1つのテーブルを使う PartitionKeyとSo…

Jestを使ってJavaScriptで快適にテストする

Jestとは JavaScriptのテストフレームワークです。 フロントエンド向けのテストフレームワークで注目されました。 ただJest自体はフロントエンドに限定されずに有用なテストフレームワークです。 jestjs.io Jestのメリット テストを書き始めるまでが簡単 Mat…

SIerとWeb系の差分

現職で働き始めて1ヶ月ほど経過して色々わかってきたので前職との差分についてまとめたいと思います。 前提事項 ここでのSIer(前職)とは大企業に分類される情報サービス業の会社です。受託開発やR&Dなどの業務を行っていました。 大企業 - Wikipedia ここで…

GitHubを雰囲気で使っている(pull request)

GitHubでチーム開発を実施するようになり、pull requestの時には色々気をつけることがあるなと思い、整理したいと思います。 要約 レビューイ時 pull requestの内容を分かりやすく レビュアーからコードレビューを受ける checksでの設定項目をクリアする mas…

GitHubを雰囲気で使っている(remote URL)

GitHubでcloneするときに公式的にはHTTPSが推奨なのを知りませんでした。 help.github.com 認証が毎回必要なのでは?と思いましたが、保存できるので1回済ませたら以降は不要なようです。 help.github.com HTTPSならプロキシ環境下でも問題ないのが推奨ポイ…

メモを共有するWebアプリを作った

メモを共有するWebアプリを作りました。 kollecton.hi1280.com ほぼWikiみたいなものです。 ここでは、どのように作ったのかの概要、製作の感想を紹介したいと思います。 Webアプリのコンセプト決め まずはWebアプリのコンセプトを決めました。 個人的に知識…

Angular+AWS Amplifyを試した

AWS AmplifyとはAWSのリソースをクライアントアプリから直接操作することができるライブラリ群です。 これによって、サーバレスなバックエンドにすることができます。 aws-amplify.github.io 似たものではFirebaseがあります。 今回はAngular製のWebアプリで…

エンジニアのキャリアを語るMeetUp【しがないラジオ×kiitok】に参加しました

エンジニアのキャリアを語るMeetUp【しがないラジオ×kiitok】に参加しました。 trackrecords.connpass.com SIerからWeb系に転職したパーソナリティの二人がキャリアの話やTechの話をするポッドキャスト「しがないラジオ」と、転職を前提とせずに現役エンジニ…

Chrome拡張機能を作る過程で学んだReactのこと

以前にChrome拡張機能を作りました。UI部分はReactで実装しました。 hi1280.hatenablog.com 今回はこのChrome拡張機能を作る際にどのようにReactを使ったのかを紹介します。 Option Page Chrome拡張機能の設定画面です。 Material-UI 今回は以下のReact用の…

React+TypeScriptでChrome拡張機能を作った

作ったもの Chrome拡張機能を開発するのに辛い点 コールバック前提 DOMの操作 開発環境整備 React+TypeScript React(Webフロントエンド向けライブラリ)の良い点 Webpack デモ まとめ 参考 作ったもの WebページをOCRしてコピペできるChrome拡張機能を作りま…

StorybookをAngularで試した

Storybookが気になったので、Angularを使って試しました。 以下の内容をそのまま試していきましたが、Angularの場合、うまく動作しないところがありました。 修正しながら一通り試したので、その内容を残しておきます。 ページに掲載されているコードに記載…

基本から理解したくてAWSを学習した

AWS

今まで雰囲気でAWSを使ってきました。 基本的なことの理解が危ういと感じたので、基本からの理解のために以下のUdemyレクチャーを実施しました。 手を動かしながら2週間で学ぶ AWS 基本から応用まで 感想を書きます。 良かったこと VPCの説明が充実していま…

GraphQL(Backend)を試した

TypeScriptで作ってみるシリーズの作業ログです。 今回はGraphQLを試してみます。 前回まではこちらです。Backendの処理のWeb化まで行なっています。 hi1280.hatenablog.com とりあえずGraphQLを試す まずはGraphQLに慣れるため、簡易なGraphQL serverをNode…