Carpe Diem

備忘録

ConsulのACLでアクセス制御

概要

ConsulにはACL(Access Control List)といって、AWSのIAMに似たアクセスコントロールの仕組みがあります。
今回はそれの設定方法を説明します。

環境

  • Consul v1.4.0

Consul ACL

ACL System

大きく分けて

というコンポーネントがあります。

続きを読む

TerraformでECSのService Discoveryを使う

概要

少し前にECSのサービスディスカバリが東京リージョンにも登場しました。

Amazon ECS Service Discovery がフランクフルト、ロンドン、東京、シドニー、シンガポールの各リージョンで利用可能に

今回Terraformでの使い方を説明します。

環境

  • Terraform v0.11.10
  • terraform-provider-aws v1.50.0

設定

Namespaceの設定

まずnamespaceを用意します。実行するとRoute53のドメインとして登録されます
今回ECSで使う=内部アクセスのみなのでaws_service_discovery_private_dns_namespaceを利用します。
これはVPC内部からしDNSクエリを叩けません。

resource "aws_vpc" "example" {
  cidr_block = "10.10.0.0/16"
}

resource "aws_service_discovery_private_dns_namespace" "example_internal" {
  name        = "example.internal"
  description = "example"
  vpc         = "${aws_vpc.example.id}"
}

AWS: aws_service_discovery_private_dns_namespace - Terraform by HashiCorp

続きを読む

VPNで特定のサーバに繋がらない

概要

先日VPNサーバを再起動したところ、基本的に内部ネットワークに接続できるものの特定のサーバに対し

  • 疎通(ncコマンド)自体はできる
  • 3 way handshakeもできる
  • Webページは見れない
  • 会社からのアクセスだとWebページも見れる

という状況に陥ったのでその対処を書きます。

環境

  • Pritunl Server v1.6.752.82
  • Wireshark v2.6.3
マシン IP
自宅PC xxx.xxx.xxx.20
接続したいサーバ xxx.xxx.xxx.116
続きを読む

Go言語の良いところ

概要

Goの良いところってなんだろう?と思ってまとめます。
多分新しいことを知ったら追記していきます。

よく言われるところ

コンパイルが速い

JavaC++に比べてかなり高速です。

メモリ安全

GoはC言語に近いですが、C言語で問題になっていたメモリ周りは言語側でちゃんとカバーして使う側が意識する必要がなくなってます。

型安全性

LL言語に比べれば。

続きを読む

goroutineはなぜ軽量なのか

概要

以前の記事で

christina04.hatenablog.com

Goはスレッドよりはるかに軽量なgoroutineでC10K問題を解決する、という話をしましたが、goroutineが軽量なのはなぜか?という理由を深掘りしたことがなかったのでしてみました。

環境

軽量と呼ばれる理由は2つ

大きく分けると以下の2つのポイントがあります

  • スレッドに比べてメモリ使用量が低い
  • スイッチングコストが低い

それぞれ説明していきます。

続きを読む

Goのpprofの使い方【メモリ編】

概要

前回

christina04.hatenablog.com

にてpprofのコマンドラインツールの使い方を説明しました。

今回はメモリについて

といったところの調査方法を説明します。

環境

続きを読む