2020-01-01から1年間の記事一覧

AWS Lambda(Go) で Lambda レイヤーを活用する

Serverless Framework を使い、AWS の Lambda(Go) で Lambdaレイヤーを活用する方法を調べてみました。

Terraform で ECS 環境を構築する④ 〜DynamoDB, SQS, ECR, CodePipeline 編〜

このシリーズの一旦の完結編です。 前回構築した ECS にデプロイする仕組みを構築します。 また、コンテナアプリから利用する DynamoDB と SQS も Terraform で構築します。 blog.linkode.co.jp blog.linkode.co.jp blog.linkode.co.jp

API Gateway から Lambda 関数を非同期で呼び出す

Serverless Framework を使い、AWS の API Gateway から Lambda 関数を非同期で呼び出す方法を調べてみました。

Terraform で ECS 環境を構築する③ 〜ECS on Fargate 編〜

前回、前々回の続きで、Terraform で ECS 環境の構築を行います。 今回は、ECS の部分を構築します。 blog.linkode.co.jp blog.linkode.co.jp

Terraform で ECS 環境を構築する② 〜ドメイン設定・ALB編〜

前回の記事から、Terraform で ECS 環境の構築に取り組んでいました。 今回は、ドメインの設定とロードバランサの設定を行い、HTTPS で外部からのリクエストを受けられるようにします。 blog.linkode.co.jp

Terraform で ECS 環境を構築する① 〜ネットワーク編〜

以前の記事で、Terraform の基本的な使い方を紹介しました。ここから何回かに分けて、ECS を使ってアプリを動かす環境を Terraform で構築する方法を紹介していきます。 blog.linkode.co.jp

Word2VecでElasticsearchのSynonymを生成する

Elasticsearchには、あらかじめ設定されたSynonym(シノニム/同義語/類義語)で検索を行える機能があります。 今回は、このSynonymの設定を自動的に生成した手順を紹介します。

Terraform を使って IaC を始める

はじめに AWS をはじめとした各種クラウドサービスのインフラを安全かつ効率的に管理するためのツールである Terraform を導入します。 実際に、いくつかの AWS のリソースを Terraform で作成してみます。 Terraform を導入するにあたって IaC (Infrastruct…

Amazon ECR で Docker イメージを保管する

コンテナ開発において作成した Docker イメージを保管するコンテナレジストリとして、 AWS で提供されている Amazon ECR (Elastic Container Registry) を利用してみます。

Istio を Amazon EKS で利用する

前の記事で、サービスメッシュを実現する Istio をローカル環境で利用してみましたが、今回は Amazon EKS で利用してみます。 blog.linkode.co.jp

Developpers Summit 2020 Summer に参加してきました

2020年7月21日に開催された「Developper Summit 2020(デブサミ2020夏)」に参加しました。 今回は、初のオンライン開催で開催されました。 関連資料等についてはこちらにまとめられておりますが、私が参加したセッションの内容のレポートを書いておこうと思…

Helm を使って Kubernetes のアプリケーションをデプロイする

ここまで、Kubernetes(K8s)クラスタのアプリケーションをデプロイする際には、アプリケーションの設定内容を記述したマニフェストファイルを作成し、 kubectl コマンドで適用していました。しかしながら、設定ファイルごとに kubectl コマンドを実行するた…

Elasticsearch のアナライザをカスタマイズする

この記事は Elasticsearch で検索を行った際にバックエンドとして動作しているアナライザの仕組みとそのカスタマイズ方法についてまとめたものです。 確認している環境は Elasticsearch 7.6.2、Kibana 7.6.2 です。

サービスメッシュと Istio の基本を理解する

この記事では、マイクロサービスやクラウドコンピューティング、DevOps の文脈で登場する サービスメッシュ について解説します。登場した背景や概念を見た後、サービスメッシュを実現するための OSS である Istio についても解説し、実際にサンプルアプリケ…

Kubernetes でサイドカーパターンを試す

コンテナを用いたシステムのアーキテクチャパターンはいくつか提唱されています。今回はその中で、分散システムのデザインパターンであるサイドカーパターンを取り上げます。サイドカーパターンは、マイクロサービスの課題を解決するために生まれたサービス…

Kubernetes のデプロイメントを利用した高可用性構成を試す

はじめに 本記事では、Kubernetes(K8s)においてポッド数の管理をするデプロイメントの具体的動作を確認していきます。 デプロイメントを利用した高可用性構成(HA 構成)を Amazon EKS 上で試行出来るようになることを目標とします。

EKS で永続ボリュームを利用する

はじめに Kubernetes(K8s) クラスタ上のアプリケーションのデータの保全性を確保するために利用するのが永続ボリューム(Persistent Volume = PV)です。 外部ストレージシステムと連携することで、データの損失、破損、想定外の変更などからデータ資産を…

Elasticsearch と Kibana のセキュリティを設定する

この記事は Elasticsearch のベーシックライセンス(デフォルトの配布)で、Elastic Stack 6.8 および 7.1 から一部無料になったセキュリティ機能の設定を調査、実施した内容をまとめたものです。

Amazon EKS のロードバランサーで ALB を使う

はじめに 以前の記事で Amazon EKS で LoadBalancer に設定されたサービスを作成すると、Elastic Load Balancing (ELB) が自動的に生成され、EKS のサービスが外部に公開できることを試しましたが、EKS で利用できるロードバランサーについてもう少し深く調…

Elasticsearchのスコア計算を紐解く

この記事は Elasticsearchで検索を行った際の結果のランク付けのもとになっている、スコアの計算がどのようにおこなわれているのかと、スコア計算のパラメータを調整する方法を調査してまとめたものです。

Amazon EKS on Amazon Fargate を試す

はじめに 以前の記事で AWS EKS (Elastic Kubernetes Service) ワーカーノードを EC2 上に作成しました。 EC2 のインスタンス上で実行されるワーカーノードを作成した場合、その EC2 インスタンスのリソースタイプをどうするか、スケールアウトをどうするか…

Amazon EKS を触りながら Kubernetes に入門する

はじめに OSS活用による開発生産性向上とアプリケーションの安定動作の両立が求められる中、「アプリケーションのコンテナ化」は不可欠なものになりつつあります。しかしながら、コンテナ化されたアプリケーションを合理的に運用するには、種々の問題があり…

Elasticsearch で天気予報の質疑応答システムを作ってみた

この記事は Elasticsearchを用いて、自然言語で天気予報の問い合わせができる質疑応答システム(Slackの Botアプリ)を作成する方法を調査してまとめたものです。

go-elasticsearch で Amazon Elasticsearch Service へアクセスする

この記事は Elastic 社公式の Go で実装された Elasticsearch クライアント go-elasticsearch を使って AWS Lambda から Amazon Elasticsearch Service(Amazon ES)へアクセスする方法をまとめたものです。

Lambda から別の Lambda 関数を非同期で呼び出す

AWS Lambda 関数から別の Lambda 関数を呼び出す処理を実装します。 事情があって、非同期で呼び出す方法を調べてみました。

AWS CloudWatch Logs で上がったアラームを検知して、Lambda 経由で Slack にエラーログを投稿する

CloudWatch Logs 収集対象のログ監視をしてアラームが上がってきた場合、SNS で通知することは可能ですが、エラーログの内容までは通知されません。そこで、SNS からの通知を基に、エラーログの内容を取得し、更に、その内容を Slack に投稿するようにしてみ…

Go + AWS Lambda で Slack Bot を作る

AWS Lambda で動く Slack Bot を Go 言語で実装してみました。

Amazon Cognito と 各種アカウントを連携させる

概要 AWS が提供する認証・認可基盤である Amazon Cognito と各種ソーシャルアカウントの連携を試してみました。 今回は、 Google アカウント、LINE、Slack を試してみました。

JavaScript: forループの中で配列にループ変数扱う関数(クロージャ)を埋め込みたい

forループの中で配列にループ変数扱う関数を埋め込みたいが… // sample1.js var funcs = []; for (var i = 0; i < 3; i++) { funcs[i] = function() { console.log("My value: " + i); }; } for (var j = 0; j < 3; j++) { funcs[j](); } 以下の通り出力する…

Javaのクラスファイルの中身を知る ConstantPoolテーブル

はじめに Javaのプログラムがどうやって動いているのかを知りたい。 手始めに、javaのクラスファイルの中身がどうなっているか、特にプログラム中の各種名前(クラス/関数/フィールドなど)や固定値をどうやって格納しどうやってそれを参照しているかについて…