HAPPY HACKING Oouchi's BLOG

PSE(ポンコツエンジニア)の技術ブログ

【Ruby】配列から条件に一致する要素を削除する

Rubyで条件に一致する要素を削除する方法をまとめました。 Rubyで配列から条件に一致する要素を削除する際はdelete_if関数が便利です。 docs.ruby-lang.org Array. each_with_index内で条件分岐をして要素を削除する Array.delete_ifを使用して削除する プロ…

EC2を複数台立ち上げた後、全てのEC2にSSH接続するためのTeraTermマクロファイルを作成するShellスクリプト

負荷試験を実施するために同じ構成のEC2を15台立ち上げてTeratermでSSH接続負荷試験を実施していたのですが、コスト削減のためにEIPを使用せずに負荷試験を実施しないときは停止することにしました。 そうするともちろんEC2を起動するたびに接続先のIPが変更…

AWS Cloud9 でRuby on Rails の開発環境を構築する

はじめに ふとRuby on Railsの勉強をはじめようと思い、環境構築をすることにしました。 せっかくなので、AWS Cloud9で環境構築をしようと思います。 はじめに やること AWS Cloud9環境構築 Cloud9環境作成 環境設定 設定確認 タブサイズ変更 スペース可視化…

スクラムプロジェクトでの「意図を伝える方法」を考えてみる

先日までスクラムプロジェクトに携わっていましたが、参画当初は作りたいものは一緒なはずなのにいざ出来上がるとPOやステークホルダーから「ここはこうしてほしかった」「ここはこうなるとは思わなかった」みたいに言われることが多かったように思います。 …

「JAWS-UG CLI専門支部 #168R」で「AWS CLIで月160万円の負債を 解消した話」をした

9月24日に「JAWS-UG CLI専門支部 #168R」にLT枠で参加してきました! jawsug-cli.connpass.com いい反応をもらえて照れながら話しました (adsbygoogle = window.adsbygoogle || []).push({}); 発表資料 タイトルは「AWS CLIで月160万円の負債を 解消した話」…

WindowsでGifキャプチャを作成できる「ScreenToGif」がめちゃくちゃ便利

はじめに デモ画面の動作イメージをメンバーと擦り合わせたいときなど、「手軽にキャプチャをGif保存できるアプリ」を探していたところ、ScreenToGifというめちゃくちゃ便利なアプリを見つけました。 はじめに ScreenToGifについて インストール 使い方 まと…

TypeScript + Jestでaws-sdkをmockする

この記事について 最近よくTypeScriptでAWSのリソース操作を行うのですが、動作確認を行うたびにリソースを作ったり消したりするのが面倒くさいと感じていました。 ましてやユニットコードなんて書いてもその時のリソース状況にがっつり依存するなあ・・・と…

TypeScript 4.0で推したい追加機能ピックアップ

はじめに 先日(8/20)TypeScript 4.0 がリリースされました。 メジャーアップデートとしては約2年ぶりとなります。 devblogs.microsoft.com 個人的に推したい機能がいくつかあったので紹介します。 ※ちなみに、TypeScript3.0のリリースは2018/7/30です。 de…

QuickSightに入門したくて「AWS-UG 初心者支部 #30 Amazon QuickSight ML Insights」に参加した

7月29日に開催された「AWS-UG 初心者支部 #30 Amazon QuickSight ML Insights」に参加してきました。 jawsug-bgnr.connpass.com BIツールなるものすら触ったことがありませんでしたが、機械学習モデルを使った予測が簡単すぎて時代の先端に触れられた気がし…

【AWS DVA】AWS 認定 デベロッパーアソシエイト試験に合格しました!

タイトルの通り、AWS 認定 デベロッパーアソシエイト試験に合格することができました! SysOps合格編はこちら www.ooooouchi.info 試験範囲とサービス概要まとめはこちら www.ooooouchi.info 目次 目次 まとめ 筆者の経歴 対策 やったこと 参考書 udemy講座 …

【AWS CLI】全リージョンのEC2インスタンスを全て削除する

はじめに 最近勉強会やハンズオンをよくやっているおかげで、AWSリソースの消し忘れが怖くなることが多くなりました。 特に残したいリソースも運用しているリソースもないのでいっそ自動で全リージョンのEC2インスタンスを全て削除するスクリプトを作っちゃ…

【AWS Organizations】メンバーアカウントを大量に作成する

はじめに 先日のAWS CLI勉強会以来、AWS CLIにはまりました。 マネージメントコンソールを使用する作業は「CLIでできるかどうか」をまず考えるようになりました。 ↓勉強会参加レポート www.ooooouchi.info 今回は、実際に想定できるユースケースに沿ったCLI…

「JAWS-UG CLI専門支部 #162R IAM基礎(インスタンスプロファイル)」でcurlの使いやすさを知った

JAWS-UG CLI専門支部 #162R IAM基礎(インスタンスプロファイル)の参加レポートです。 jawsug-cli.connpass.com 前回参加レポートはこちら www.ooooouchi.info 感想 できるようになったこと 構成 簡易手順 理解したこと IAMロールとは インスタンスプロファイ…

【DynamoDB エラー】Number of attributes in KeySchema does not exactly match number of attributes defined in AttributeDefinitions

はじめに 初めてCloudFormationを使用してDynamoDBのテーブルを作成したときのエラーです。 本題 最初に作成した定義ファイル AWSTemplateFormatVersion: 2010-09-09 Description: DynamoDb. Parameters: Env: Type: String AllowedValues: - prod - stg - d…

「Production Readyサーバーレスウェビナー#01」に参加してサーバーレスに入門してきた

「Production Readyサーバーレスウェビナー#01」の参加レポートです! 補欠からの繰り上げで参加できることになりました。 slsops.connpass.com サーバーレスはよくわからんからEC2に既存アーキテクチャを載せ替えただけで結局クラウドの何がいいかわからな…

仕組みから理解するGit 入門 〜ひとり開発でも便利〜 参加レポート

仕組みから理解するGit 入門 〜ひとり開発でも便利〜の参加レポートです。 最近ウェビナー参加レポート率が高い・・ 感想 Gitとは バージョン管理とは バージョン管理のメリット 変更履歴があるので元に戻せる 変更履歴があるので振り返れる バージョン管理…

JAWS-UG CLI専門支部 #161R IAM基礎(IAMロール) オンライン参加レポート

JAWS-UG CLI専門支部 #161R IAM基礎(IAMロール) の参加レポートです。 jawsug-cli.connpass.com できるようになったこと 参加したことにより以下のことがAWS CLIでできるようになりました! IAMロールの作成 IAMポリシーの作成 IAMロールへのIAMポリシーアタ…

Blue-Greenデプロイとは何かElastic Beanstalkで学ぶ

はじめに Blue-Greenデプロイとは? Blue-Greenデプロイ(ブルーグリーンデプロイ)とは、 ダウンタイムを回避するデプロイ手法です。 Blue環境:現行の環境 Green環境:新しい環境 と見立てて、 事前にGreen環境をデプロイしておき、 URLをスワップするかト…

AWS CLIでS3のマルチパートアップロードを実行する

はじめに 本題 S3バケットを作成する ファイルを分割する マルチパートアップロードを作成する 分割したファイルをアップロードする ファイルを 結合する 実施結果確認 おわりに はじめに 大きいサイズのファイルをS3にアップロードする場合は「マルチパート…

Nuxt.jsでEPERM: operation not permittedエラーが出たときの対処法

VSCodeで作業中、いつものように yarn dev をしたら以下のエラーがでました。 ERROR EPERM: operation not permitted, lstat 'C:\Users\frontend\.nuxt\mixins' 全文 $ yarn dev yarn run v1.22.4 $ nuxt ╭──────────────────────────────────────────╮ │ │ …

AWS Developer Associate 出題分野と関連サービス概要

目的 試験の出題範囲と関わるサービス概要をふんわり把握する そもそも触ったことのないサービスや自身の理解が薄いサービスを発見する それらを試験対策の目安にする Sysopsはこちら www.ooooouchi.info 出題範囲 分野と出題比率 分野 出題の比率 デプロイ …

CodeCommitのプルリクエストをAWS Chatbotを経由してSlackで通知する

CodeCommitは昔プルリクエスト周りが使いづらいと評価されていました。 ただ、AWS ChatbotがリリースされたことでプルリクエストだけではなくGitアクション全般とSlackの連携が楽にできるようになり、実際結構便利になってきてるのでは?と思いはじめました…

【AWS SOA】AWS 認定 SysOps アドミニストレーター – アソシエイト試験に合格しました!

タイトルの通り、AWS 認定 SysOps アドミニストレーター – アソシエイト試験に合格することができました! おそらく、このページにたどり着く人は試験自体の説明だったりSysopsとはなんぞやみたいな部分はご存知だと思いますのでさっそく本題に入ります。 目…

【AWS Organizations】OUから別のOUへAWSアカウントを移動させる

はじめに ※個人的備忘録です。 AWS CLIがめちゃめちゃ便利ということを最近知りました。 shellスクリプト自体全然書いたことがないので変なスクリプトかもしれませんが。。 本題 jqコマンドを使用しています。 実装 #!/bin/bash AWS_PROFILE_NAME= # aws cli…

CognitoメッセージメールをSESから送信されるようにする

はじめに AWSリソースのサービスクォータ制限の対応って情報があまりないんですね。 今回はサービスクォータ対応の一つ、CognitoメッセージをSES経由でメール送信する手順について記載しようと思います。 (adsbygoogle = window.adsbygoogle || []).push({})…

Amazon CloudWatch を使用してEC2のCPU使用率が高い時に通知する

はじめに Amazon CloudWatchはAWSリソースのパフォーマンスモニタリングに最適なサービスです。 SNSと組み合わせることでリソースの状態に合わせて通知を送ることもできます。 今回は、EC2のCPU使用率が高くなったらメール通知を実施する仕組みを構築してみ…

JavaScriptでエクスポネンシャルバックオフを実装してみる

エクスポネンシャルバックオフとは? アルゴリズムの一つです。 直訳すると「指数関数的後退」で、いわゆるリトライ処理の間隔を指数関数的に増加させる方式のことです。 リトライ間隔例:1秒、2秒、4秒、8秒・・・ docs.aws.amazon.com ユースケース 主にネ…

CognitoユーザープールをCFnで構築し、TypeScriptでユーザーを追加する

はじめに AWS Cognitoは簡単に認証基盤を作成することができます。 環境構築からサインアップまでの流れは結構な頻度で実装することになるため個人的な覚書として投稿します。 aws.amazon.com 本題 環境構築 環境構築はCloudFormationを使用します。 ユーザ…

TypeScriptでDynamoDB読み書き

はじめに TypeScriptでDynamoDBの書き込みを実装する機会があったのでメモとして残しておきます。 今回はCloudFormationでの構築からやってみようと思います。 本題 DynamoDB構築 今回はCloudFormationを使用して構築します。 テーブル定義 KeyType KeyType …

お名前.comで取得したドメインでwww無しからwww有りへリダイレクトする

はじめに 完全に自分用メモです。 ただ、これができないと結構困る人もいるのかなーと思いつつ・・ 本題 転送情報設定画面まで お名前.comNavi にログインします。 ドメイン一覧をクリックします。 ドメイン機能一覧をクリックします。 下までスクロールし、…