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

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

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

インフラエンジニアになっていきたいと思った理由

今の思い ここでいうインフラエンジニアはハードディスクがとかケーブルがとかガチなやつじゃなくて、各種スタックを組み合わせて構築するぐらいのやつ。 プログラミング歴=ほぼ社会人歴で、iOS開発がメインで一番長かった。そのあとScalaでサーバーサイド。…

IAMのロールとかポリシーとか分からない人

AWS

私です。 公式のこれが分かりやすい docs.aws.amazon.com

terraformというかHCLでif文使いたい

基本的にはサポートされてない。 けど、こちらの方のやり方を参考にして、こんな風にすればできるっちゃできる。 If you set count to 1 on a resource, you get one copy of that resource and if you set count to 0, that resource is not created at all…

sts:AssumeRoleとは

AWS

AWS STSが分からなかった AWS Security Token Serviceのこと。 aws stsでググると このドキュメントが出てきてざーっと読んでなんかCLIしたいときに使うのか?みたいなぐらいでしっくりこなかった。 docs.aws.amazon.com EC2サービスを信頼するという概念 こ…

残業をさせてるのは誰

ふるさと納税のワンストップのやつ、自治体によって印字してくれてたり返信用封筒入れてくれてたりしてみんなこうなればいいのにと思ったんだけど、いいサービスやおもてなしを期待することにより、自分が巡り巡って残業や日本の生産性の低下を生み出してる…

terraformでmoduleのsourceにinterpolationは使えない

module "hoge" { source = "${path.module}/hoge" } とやっても、 * hoge: module source cannot contain interpolations で、はじかれる

remote-execでEC2インスタンスの起動時の処理書いたけどuser-dataがあった

前にこれを書いたんだけど、こんなことする必要なかった。 mpon.hatenablog.com こっちでよかったじゃないか。AWSのこと何も分かってない証拠ですね。 docs.aws.amazon.com

terraformのディレクトリ構造とかは何を参考にすればいいか

github.com quipper.hatenablog.com Good

EC2をremote-execでprovisioningする方法

追記:そもそもuser-dataがあることを知らなかったのでこっちを使おう www.mpon.me elastic ipで接続されない こんな風に素直に(自分的には)書くとElastic IPよりも先にEC2を先に作ろうとしちゃう。 で、private ipでssh接続しようとするから、そりゃあいつ…

terraformのmoduleで定義したresouseにアクセスするにはoutputしないとダメ

moduleの誤解 何もわかってなかった。 module使うと変数とかをscope化できるからいいなーって思ってたけど、resourceもscope化されるってことだった。 まぁ逆に言えば、module内にresource名は被らないように気をつける必要がないとも言えるけど。 terraform…

terraformのresourceのNAMEの命名規則について

NAMEにTYPEを入れるかどうか 結構プロジェクトによってバラバラで他の言語でよくあるガイドラインみたいなのがない気がする。 個人的にはresourceのTYPEで特定できるから入れない方がいいかなという気になっている。 resource "aws_vpc" "dev_vpc_01" {} res…

terraform入門時のメモ

どう入門するか 今まで人が作ったterraformの設定をいじって適用とかはしてきたけど自分で一から作ったことない。仕組みを理解するには、一から自分で作ってみるのが早そうだと思ったので自分で一から作ってみることにした。 ので、素直にこれをやることにし…

slackのweb api経由のchat.postMessageでattachmentsが送れない

JSON.stringifyする必要があった。 NG "attachments": [{ "text": "hoge" }] OK "attachments": JSON.stringify([{ "text": "hoge" }])

XcodeのSchemeで値を切り替える方法を探る

iOS

背景 APIの向き先とかをTargetを増やしてswiwt other flagsで#if DEBUGとか#if STAGINGでやってる。ので環境が増えるたびにtargetが増えていってしまうのでやめたい。 実行時に環境変数的に値を渡せないか SchemeのPre-actionsで追加する Build、Run、Test、…