まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

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

Proxy Protocolを知りました

Proxy ProtocolはL4におけるx-forwarded-forみたいなもの 2010年ごろからあるみたいだったけどお恥ずかしながら知らずに生きてきた。 HTTPヘッダが覗けるロードバランサー(L7ロードバランサー)ならx-forwarded-forとかx-real-ipとかにIPを追記していくこと…

Deis/routerでwhitelistでIP制限する方法

Security Considerations - Deis Workflow Documentationで公式にIP制限する方法が紹介されてるが、403が出る。 なんで403になっちゃうのかをここを調べてみた。 公式通りにやっても403 公式ページにもあっさりこうすればできると書いてあるが、確かに403に…

deis-routerなしでKubernetesのIngressでDeisを動かす

Clusterを作る時にデフォルトでついてくるLBを外す gloucd container clusters createをするときに、--disable-addons "HttpLoadBalancing"をつける。これをしないとGLBCがIngress Controllerとなってしまうため。コマンドラインからしか外せない。 cluster…

GKEだとデフォルトでIngress Controller(=GLBC)がいる

おまえ、そこにいたのか kubernetesでIngressでやる場合、Ingress Controllerが必要なんだけど、GKEの場合はマスターノード、つまりGCPのマネージドな領域でクラスター作成時に一緒に作られるようになってた。 で、これをGLBC(GCE Load-Balancer Controller)…

Deis Workflow v2.13.0でKubernetesのIngressがサポートされた件

Deisがverupした 本日、Deis Workflowがverupしたんですが、Changelogを見てるとIngressというものがなんか導入されてDeis/routerなくてもいけるみたいなことが。 そもそもWhat is Ingress? Kubernetesのたくさんあるリソースのタイプのうちの一つのIngress…

【AWSしかやったことない人向け】AWSとGCPのネットワークの違いを理解してみよう

AWS

背景 AWSでVPC作ったりしたことあるけど、GCPやったことないって人は色々違いに戸惑う アカウントの関係性、ネットワークの概念の違いなどを理解したのでまとめた AWSとGCPのアカウントの考え方の違い AWSの場合、ある人間に対して色々なAWSアカウントが付与…

Kubernetsに出てくる用語:PVCとは?

PVCとは? KubernetesのPersistentVolumeClaimsの略である。 https://kubernetes.io/docs/user-guide/persistent-volumes/#persistentvolumeclaims A persistentVolumeClaim volume is used to mount a PersistentVolume into a pod. PersistentVolumes are …

Deisのpostgresをoff-clusterにする(postgresql on GCEを利用)

やること mpon.hatenablog.com 前回はCloud SQLを使ったが、Cloud SQLはデフォルトネットワーク外にあるので、Cloud SQL Proxyをたてて通信するか、外部IPを許可するしかなかった。Deisの場合だと、proxyたてるパターンを使えず、外部IPを許可する方法にした…

Deisのpostgresをoff-clusterにする(Cloud SQLを利用)

やること postgresをoff-clusterする。 で、そのpostgresをどこに立てるかというとGCEにたてるかGCPのmangaedなCloud SQL(RDSみたいなやつ)があるので、どっちにするかということで、今回はCloud SQLを使ってみた。 Cloud SQL PostgreSQL beta Cloud SQLのポ…

deisでminioを置き換えるだけをやってみる

公式ページを参考に Configuring Object Storage 本当にここを変えただけ。bucketはGCSであらかじめ作っておく。権限とかもなんもしてない。 diff --git a/values.yml b/values.yml index c25cfb2..1d94aca 100644 --- a/values.yml +++ b/values.yml @@ -7,…

Deisをproduction運用するための設定の仕方調査

背景 Deisはhelmコマンドでインストールすれば簡単に入るけど、そのままだとデータ保存先がephemeralなものになってしまうのでダメ。他にもproduction運用のためにした方が設定があるのでまとめる。 調べ方 ほとんどdeisの公式ページに書いてあった installi…

Terraform0.9.0からremote configがdeprecatedになる

remote configがdeprecatedになる terraform0.9.0からterraformコマンド実行するとdeprecated warningがでてきます。 3行 remote configコマンドがなくなってinitコマンドが導入される backendという概念が導入されterraform.tfstateファイルを保存する設定…

terraform0.9.1からplanレベルでsecurity_groupのcidr_blocksのvalidateが入るようになった

0.9.1 changlog :tada: https://github.com/hashicorp/terraform/blob/master/CHANGELOG.md#091-march-17-2017 provider/aws: Validate CIDR Blocks in SG and SG rule resources (#12765) planで未然に防げる つい間違ってcidr_blocksの方にsecurity_group…

terraform consoleっていうREPLみたいなやつがあるの知らなかった

v0.8から導入された模様。俗に言うREPL。今のtfstateをもとにsyntaxを試すことができる。planやapplyなどを発行することはできないので安全。単にこういう時はterraformではどう書くんだろう??みたいなのを試したいときに便利。 例1: moduleのoutputを呼び…

H/A とは

H/Aとかよく出てくるけどうまくググれなかったので。 多分 High Availability(高可用性)の略 高可用性 - Wikipedia

自分で立てたdeisにアプリをdeployするまで

quickstartのConfigure DNSとregister an admin user and deploy your first app.をやっただけ。 ロードバランサーの確認 $ kubectl --namespace=deis describe svc deis-router | grep LoadBalancer Type: LoadBalancer LoadBalancer Ingress: 104.198.90.1…

Google Cloud Platformの環境をterraformで作る

そもそもGoogle Cloud Platformとは Googleが出してるAWS的なやつ。GCPと略す。だいたいの比較表。 dev.classmethod.jp なんでAWS使わないの? コンテナでぽんぽんアプリケーションをdeployしたいんだけどそれをAWSでやろうとすると、ECSというサービスを使…

teeコマンドの使いどころ

sh

標準入力を標準出力とファイルに出力する というコマンドです。 なんか使いどころが分からないなーって思ってたけど、コマンドの結果をファイルに書き出してそれを別のコマンドに渡すってのをcircle ci上でやってて、あー、画面上でもこのファイルの中身見た…

terraformでif文的なものを使ったユースケース例

usecase EC2インスタンス、ELB、security_groupあたりがまとまったmoduleがあるんだけど、特定の役割のインスタンスにだけiam_roleにSNSFullAccessをつけたい。 設定内容 allow_sns_full_accessっていう変数宣言しとく。 variable "allow_sns_full_access" {…

AWSのロードバランサーあたりのセキュリティーグループ制限がさくっと緩和できなかった

AWS

http://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html#limits_elastic_load_balancer ロードバランサーあたりのセキュリティグループ 5 ご担当者様 平素よりお世話になっております。 AWSカスタマーサービスの藁品でございます。 折…

あれれ、terraform0.8から条件書けるようになってるぞ

🎉 https://www.hashicorp.com/blog/terraform-0-8.html#conditional

terraformでsecurity groupをmodule化するときに気をつけること

IPアドレスを定義した共通のsecurity groupを作りたい あるプロジェクトで外部のIPアドレスなどをまとめたものをsecurity groupとしてmodule化している。このアイディア自体はいいんだけど、環境ごとにこれを利用しようとした場合に失敗する。 例えば、こん…

awsのsecurity groupにはルールの上限がある

AWS

IPアドレスをたくさん追加しようとしたら:scream: 各拠点のIPアドレスを追加してほしいという依頼で、terraform planで問題なかったので、applyしたらエラーが出た。 * aws_security_group.elb_app: Error authorizing security group ingress rules: RulesP…

aws_security_groupのdescriptionはupdateできない

AWS

descriptionを気軽な名前で作ってしまって、あとでちょこっと変更したいなーと思って terraform planするとforce new resourceになってしまう。 ドキュメントにも書いてあった。 AWS: aws_security_group - Terraform by HashiCorp description - (Optional,…

今日覚えたやつメモ 2017/1/27

rubyとかrailsとかRSpecのこと class << self Rubyist Magazine - Ruby 初級者のための class << self の話 (または特異クラスとメタクラス) class << selfで定義したクラスメソッドがmoduleがincludeしたときに呼べない。 moduleなんかscalaのtraitとかswif…

ECSでの動的なネットワークポートマッピングとfluentd

AWS

固定ポートだとインスタンスの数以上にコンテナが増やせない ECS上でfluentdを複数コンテナで動かして集約サーバーとして動かそうとしている。 最初だから試しにautoscaling groupで1つのインスタンスだけ立ち上げて、コンテナを2つ(desired count = 2)なサ…

fluent-plugin-s3でなかなかs3にアップロードされない

AWS

github.com time_slice_formatの値をexampleに従って、%Y%m%d-%Hにしたんだけど、なかなかs3にアップされない。 buffered_pathには吐かれてるんだけどなかなかS3には上がってこない。 instanceのpoliciyかなーとかs3のbucketのpoliciyかなーとか色々迷ってて…

terraformのecs_registry.repository_urlにhttpsがついてるのを消す

バグだったようだ。mergeされたのでそのうち修正版がリリースされるはず。それまでは"${replace(aws_ecr_repository.test.repository_url, "https://", "")}"でしのぐ。 github.com 追記 terraform v0.8.5 で取り込まれた。

ECS(Amazon EC2 Container Service)がなんなのかやっと理解できてきた

AWS

いざ自分で一から作ってみると・・・ 今まで人が作ったECS上でサービスの作成とか更新とか、タスクの更新とかやってきてなんとなく使えてたけど、 いざ自分で一から作ってみるとそれぞれの要素がどうなってるのか何も分かってないことに気づいた。 今まではE…

terraformで作るときに参考にするもの

社内のプロジェクトのを参考にできる恵まれた環境なのでまずはそれを見る。 他にもterraform公式リポジトリにあるexampleも参考になった。 terraform/examples at master · hashicorp/terraform · GitHub