AWS

AWS Global AcceleratorをKubernetesのリソースから管理する

AWS上に作ったKubernetesでサービスを外部に公開する方法はいくつか存在する.簡単にやるならServiceをtype: LoadBalancerで定義すればNetworkLoadBalancerが作れるし,aws-load-balancer-controllerを使えばApplicationLoadBalancerも作れる.ただ,このLB…

kOpsでIAM Role for Service Account(IRSA)をやる(1.23)

以前こういう記事を書いた. h3poteto.hatenablog.com このときから更に便利になり,kOps 1.23で,ついにeks-pod-identity-webhookさえも自動インストールできるようになったので紹介する. github.com

kOpsでIRSAをやる(1.21)

以前こういう記事を書いた. h3poteto.hatenablog.com この当時はIssuerも自分で作らなければいけなかったが,kOps 1.21からIRSAのサポートが入り,これがだいぶ簡略化されるようになった. というわけでこれを紹介しておく.

自分のためだけにcustom controllerを書く

ふだんkopsで自分用のKubernetesクラスタを立ち上げているんだけど,個人用途なのでAutoScaleはしてほしくないのでClusterAutoscalerは入れていない.だけど,その状態でも可用性はできる限り下げたくない. というわけで,ちょっと自分でノードを管理するカ…

kopsで構築したKubernetesクラスタでIRSAを使う

IAM Role for Service Account(IRSA)自体はEKS以外でも利用可能ということだったので,自前のkopsクラスタで構築してみた. ほぼ,こちらのお世話になっている. blog.hatappi.me ほぼ同じことをしているのだが,いかんせん複雑なので自分用の記録として残し…

ArgoCDをAWS EKS上で構築する

GitOpsがやりたくてArgoCDを導入しようと思ったんだけど,そもそもArgoCD自体はみんなどこで動かしてるんです? もちろんin clusterでも動くので,デプロイ対象のアプリケーションが乗っているKubernetesクラスタに構築しようと思いました. が,ArgoCDのチ…

AWS KMSで暗号化したSecretsをそのままapplyしたい!

KubernetesでGitOpsを実践しようと思うときに,Secretsをどうするかという問題は結構大きい.GitOpsをしていなかったとしても,Kubernetesのyamlファイルをgitにコミットしようと思うとき,Secretsをどうするかというのは結構大きな問題ではないだろうか. P…

kubernetesとhelmで作る最強のオレオレheroku,yadockeri

この記事は LAPRAS Advent Calendar 2019 の18日目です. 会社でWebサービスを開発していると,検証したりレビューしたりするときに専用の環境が欲しくなる.それは開発しているブランチごとに独立した環境であって欲しいし,なんなら本番っぽいデータが入っ…

kube2iamをIAM Role for Service Accountに載せ替えた

この記事は LAPRAS Advent Calendar 2019 の4日目です. AWS上にkubernetesクラスタを構築していると,Pod内のコンテナから,AWSのAPIを叩きたいことがある. そのためにはもちろんAWSの認証を通す必要があり,AWSのAccess Tokenとか,IAM Roleを使って認証…

Host-based routingしたALBにRoute53 Health Checkをかける

タイトルの件について結論から言っておくと,スマートな解決策は今のところない. 一応回避することはなんとなくできるのだが,全然スマートではない.今後のアップデートに期待したい.

kopsで構築したkubernetesクラスタを1.11.7->1.13.10までバージョンアップした

タイトルの通りです. 結構ハマったので書き残しておく.

kube2iamからkiamに乗り換えた

AWS上に構築したKubernetesクラスタ内のPodが,AWSのリソースにアクセスしようとしたときには,もちろんAWS IAM Roleか,AWSの認証情報を使ってAWSのAPIを叩く必要がある. しかし,Kubernetesはクラスタだ.もちろんノードはいっぱいあるし,その上では様々…

Kubernetes上でRundeckをクラスタ構成で運用する

以前RundeckをDockerで動かす話を書いた. h3poteto.hatenablog.com このときはECSだったが,こいつをKubernetesに載せ替え, ジョブ実行ノードがクラスタ全体に分散する Webのリクエストが分散する ようにクラスタ設定を組んだ. なお,この記事を書いてい…

できる限りterraformでリソース管理しつつkopsでkubernetesクラスタを作る

最近KubernetesクラスタをAWS上に作っているのだが,EKSは結構お高い. これはどうしても削れない,EKSの利用料金として,$0.20/hour持っていかれるためである. EKSだけでだいたい$144/monthかかることになる. これは流石に痛いので,kopsでKubernetesクラ…

EKSのノードをSpot Fleetで構築する

EKSをterraformで作っている.そうするとEKSのノード群をAutoscalingGroupで構築する例は出てくるのだが,これをSpotFleetを使って構築しようと思う.

AWS ECS上にErlang(Elixir) Clusterを組むためのツールを作った

PhoenixをDockerに乗せてAWS ECS上で運用している. PhoenixはPubSubの機構を持っているが,このバックエンドは,デフォルトではPG2というErlangクラスタ内のプロセス間通信を前提にしたものになっている. ECSのようなDockerクラスタ上にPhoenixを載せる際…

IAMユーザにMFAを強制しつつterraformする

AWSのIAMユーザで,コンソールログインする際には必ずMFAを強制したい,と思うことがある. というわけでそういうIAM Policyを作って当ててみた. IAM Policyでの強制 だいたいこういうのを参考にすると,そのまま使えるのがある. blog.vtryo.me ただし,注…

AWS ECS上にfluentdクラスタを構築し別のVPCからログを送りつける

この記事は scouty Advent Calendar 2018 の17日目です. fluentdに関して,勢い余って今年こういう発表をした. speakerdeck.com 完全に酔っていたので勢いだけなのだが,その後マトモなfluentdクラスタができたので書こうと思う. もう二度とchefで作ろう…

RundeckをECS上に構築してGitHubログインできるようにする

この記事はscouty Advent Calendar 2018 の3日目です. ECSで動かしているサービスのスケジュールジョブが多くなってきた. もともとECS Scheduled Taskを使っていたんだけど,数十個レベルになってくると,これで管理するのはだいぶつらい. というわけでRu…

AWS ECSのタスクを実行してログを標準出力に出すecs-taskというツールを作った

色々あって最近Rundeckを建てている.そのへんの話は後日書く. で,RundeckからAWS ECS上のタスクを発火しようと思ったのだが,なかなかいいツールがなかったので自作した. github.com

趣味サービスのインフラをAWS ECSに載せ替えた

趣味で運営していたサービスたち,今まではEC2の上にdocker swarmで構築していたのだが,いよいよECSに載せ替えた. 基本terraform構築 ALBでhost-based routing ECSに使うインスタンスはAutoScalingGroupとSpotFleetとのハイブリッド cronはECS ScheduledTa…

zshで楽にAWS EC2インスタンスにsshログインしたい

みなさんさようなら. 仕事でも家でもAWSを使っていて,よくsshログインをしなければならない局面がある. で,高度に自動化されたAWSだと,Autoscaling Groupを使ってEC2インスタンスを自動で生み出したり,また自動で落としたりするよね. ECSを使っていて…

ECS+NLBでgRPCする

先日AWSの新しいLoadBalancer NLBが出ましたね. aws.amazon.com おそらく便利なので,色んな場面で使えるかとは思いますが,「HTTP以外もECSの組み合わせで動的ポートマッピングできるのでは?」というのが気になったので,使ってみます. 今回はgRPCをECS…

JAWS-UG コンテナ支部 #9 でECSのデプロイ周りの話をしてきたよ

昨日「JAWS-UG コンテナ支部 #9」でデプロイについて話してきました. 中身は前に会社のブログで書いた話 engineer.crowdworks.jp なんだけど,これについて詳しい話をしてきた.

AWS SESのBounce率とComplaint率を監視する

AWS内で動かしているアプリケーションで,メールを送りたい時がある. 普通であれば自分でメールサーバーを立ててドメインを使えるようにして……と割とめんどくさい話なんだけど,AWSにはメールを送る専用のSESというサービスがある.RailsからSESを介してメ…

AWS OpsWorksで使うcustom cookbookのデバッグ環境を整える

AWSのOpsWorksでは,デフォルトのcookbookが用意されている. https://github.com/aws/opsworks-cookbooksOpsWorksというのは,ここに記述されているレシピを実行しながらインスタンスを起動してくれる.しかし,ここに自前でカスタムしたcookbookを突っ込む…

AWS CloudWatchをOpsWorksに導入してみた

今までOpsWorksのプロジェクトでは,td-agentでログを取ってS3に保存していた. この辺のツールでいうと,Kibanaあたりの組み合わせが流行りですね.ただ,最近td-agentのリポジトリのバージョンが上がってしまったので,cookbookのバージョンもそれにともな…

AWS SESでBCC込みのメールを配信したい

RailsにはActionMailerというものがあり,メールを送る場合はこいつを使う場合がほとんどかと思います.アプリケーション側はそれでいいのですが,サーバーとしてAWSを使用していると,ドメインの設定などをする都合上,サーバーのインスタンス本体からメー…

github.comに22番ポート以外でアクセスしてソースを取得する

githubはなかなかに便利で,ソースを上げることが多い. そしてサーバー運用時にも,そこからソースを取ってきてデプロイできるように組んでいたりすることがある. ただし,気を使うのが非公開のプライベートリポジトリだ.プライベートなので,ログインし…

figaroで環境変数を設定したRailsアプリをAWSで運用する際のバグについて

以前Ruby on Railsの開発で便利な,rails_config + figaroの紹介をしていたかと思います. http://h3poteto.hatenablog.com/entry/2014/04/12/232406 Railsでの開発における,環境変数の設定がラクにできるよということで,この組み合わせがすごく便利なので…