- 0.1. S3の特定プレフィックス以下のファイル名をBashの配列に格納するワンライナー
- 0.2. バースト可能インスタンスの損益分岐点について
- 0.3. BOXにあるファイルをAmazon S3バケットに同期してみた
- 0.4. エンジニアの転職について 仕事はお金じゃないという人にこそ見て欲しい
- 0.5. トータル10時間で息子の寝返りアラートAIを作成してみた
- 0.6. 【保存版】AWS+Next.jsのホスティングパターンと料金概算
- 0.7. CDKでSSMパラメータ(StringListParameter)を使う方法
- 0.8. 本番環境(EC2)上でunicornは起動できたが、アクセスができない時に確認すべきこと
- 0.9. クロスアカウントで CloudTrail の証跡一覧を表にまとめる
- 0.10. テックリードとして入社してからやったことをまとめてみた。
- 0.11. AWS CLI を使ってみる
- 0.12. [個人開発・独学]未経験者がHotwireのポートフォリオを作った話【Rails / Hotwire/ TailwindCSS/ Docker / AWS】
- 1. はじめに
- 2. PF概要
- 2.1. アプリの説明
- 2.2. Amazon ECS で実行するコンテナをローカルでテストする
- 2.3. 【DVA対策】EC2フリートとスポットフリートについて
- 2.4. データウェアハウス層について整理してみた
- 2.5. 本番環境(EC2)上でunicornが起動できない時に確認すべきこと
- 2.6. Amazon Neptuneサーバーレスを作ってみる
- 2.7. Aurora Serverlessってサーバレスなのはわかるんだけどだからなんやねん。
- 2.8. Proxmox VE 7 で Amazon Linux 2 を走らせる手順まとめ
- 2.9. amplify configureでエラーが出た際の対処法
S3の特定プレフィックス以下のファイル名をBashの配列に格納するワンライナー
# とりあえず結論
“`bash
S3_BUCKET=sample-bucket
S3_PREFIX=sample_prefix/
FILES=(`aws s3 ls s3://${S3_BUCKET}/${S3_PREFIX} |awk ‘{print $4}’ |sed -z ‘s/\n/ /g’ |awk ‘{print substr($0, 1, length($0)-1)}’`)echo ${FILES[@]}
#=> sample1.txt sample2.txt sample3.txt
“`# 前提
特定プレフィックス以下にフラットにファイルが存在している想定で行っている。
# 順に見ていく
#### 1. S3 からファイル一覧を取得する
“`bash
aws s3 ls s3://${S3_BUCKET}/${S3_PREFIX}
“`出力は次のようになる。
“`
2022-01-01 01:01:01 0
2022-02-22 12:34:56 123 sample1.txt
2022-10-01 1
バースト可能インスタンスの損益分岐点について
## 概要
文脈としては、EC2インスタンスをt系のインスタンスで運用していて、c/m/r系に変更するさいの損益分岐点を計算したいとします。
損益分岐点はの資料[1]をもとに計算できますが、直感的に何をしているのかわからなかったので図にしてみました。
個人で考えたものなので、図や議論の内容は正確でないかもしれないです。また、AWS側のサービス変更などで将来的に情報が古くなるかもしれません。正確な情報は公式ドキュメントを見てください。## 損益分岐点の計算
資料[1]をもとに考え方をたどると、損益分岐点の CPU 使用率は、以下の式で計算できます。
$$\beta = \alpha + \frac{nI}{B^\prime – B}$$
ここで、変数は以下のように定義しました。
* $\beta$: 損益分岐点(=t系とc/m/r系のインスタンスの料金が同じになる)のCPU使用率
* $\alpha$: t系インスタンスのベースラインのCPU使用率
* $B^\prime$: c/m/r系インスタンスの時間あたりの料金
* $B$: t系インスタンスの時間あたりの料金
*
BOXにあるファイルをAmazon S3バケットに同期してみた
この記事では、NetApp Cloud Syncを使ってBOXにあるファイルをAmazon S3に同期したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/8ba0823d-4953-710b-7ab8-26caaf24cdc5.png)# Keyword
* Amazon S3とは
Amazon S3(Amazon Simple Storage Service)はデータを格納・管理できるオブジェクトストレージサービスです。主にウェブサイトやアプリケーションなどのデータバックアップおよび復元、アーカイブなど、さまざまなことに利用します。また、ファイルのバックアップ、ファイル処理の加工前、あるいは加工後のファイルの保存、動画・画像ファイルやCSSなどWebで使う静的なファイルをS3に置いて配信するなど、非常に広範囲な使い方ができます。* BOX
BOXは、世界中で活用されているファイル共有のオンラインストレージサービスです。オンラインストレージとはさまざ
エンジニアの転職について 仕事はお金じゃないという人にこそ見て欲しい
# わたしの自己紹介
1社目:テストをする人 350万円
2社目:SE 430万円
3社目:AWSに関わる人 600万円:::note info
3社目で大きく**年収**が上がりました。その件について触れていきます。
:::
趣味:節約(風呂なし4万5000円、半額弁当生活)
資格:AWS SAA、TOEIC 700点オーバー# 仕事はお金じゃないという人にこそ
## 入社する会社である程度生涯年収は決まります。[転職サイト引用](https://www.jobdirect.jp/entry/2020/10/04/185814 “転職サイト”)
:::note info
22歳(一般)800万円 キーエンス
55歳(管理職)年収694万円 55歳大卒男性平均
:::## お金が必要なタイミングはこれからたくさんあります。
息子が寝返りをできるようになりました?
うつ伏せ寝の危険があるので、寝返りをするとアラートを出してくれるようなAIを構築してみました。
AmazonSagemakerとAmazonRekognitionを使うとサクッと作ることができたので記載しておきます。# システム構成図
![スクリーンショット 2022-11-09 6.19.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1926542/e55ec395-b33c-380d-a799-72828cf5ae4c.png)1. ネットワークカメラで息子の様子を撮影
1. FFmpegで画像に保存
1. 画像をAWS CLIでS3にアップロード
1. Amazon Rekognitionの推論APIをリクエスト
1. 推論結果を元に寝返りをしていたらパソコンからアラートを出す(音を鳴らす)
1. 2-5を繰り返す# ネットワークカメラ
ネットワークカメラには、今回はTP-LinkのTapoを利用しました。
RTSPプロトコルに対応してい
【保存版】AWS+Next.jsのホスティングパターンと料金概算
# はじめに
AWS上にNext.jsをホスティングしようと考えた時にいくつかのパターンが考えられます。
AWSの料金体系も複雑で、自分メモがてら誰かの役に立てばと纏めました。比較するサイトの規模として3パターン計算しています。
料金は2022/11/08時点の料金ですので変わる可能性があるので注意が必要です。
# 前提条件
サイトはブログを想定(24時間起動)
- サイトA
- 月間100万PV 毎日更新(月30件)
- サイトB
- 月間10万PV 2日に1回更新(月15件)
- サイトC
- 月間1万PV 1週間に1回更新(月5件)
全コンテンツのサイズは1GB
1か月は30日 = 720時間
:::note info
情報
無料枠は考慮せず、ボリュームディスカウントは一番高い料金で計算
:::## 事前:データ量の計算
1ページは1MBとする
- サイトA
- 100万PV ×1MB=1TB
CDKでSSMパラメータ(StringListParameter)を使う方法
VPCやサブネットを定義したスタックでサブネットIDのリストをSSMパラメータストアに保持しておき、そのパラメータを別のスタックから参照したい場合がありますが、SSMパラメータのString型とStringList型どちらでも参照時は文字列として扱われるため、CDK側でうまく扱わないと正常にデプロイできず結構悩んだため、久々の投稿ですが備忘録として残しておきます。
内容としてはStringListなパラメータを取得してリソース定義に使いたい場合はどうするか・・・になります。
CDKのバージョンは2.50.0になります。この時点ではStringListParameterで取得した値を直接リソースのパラメータとして指定することはできないようです。まずはOKパターンから記載します。
## OKパターン
1. SSMパラメータストアには文字列のリストをStringとして保管
ssm get-parameterの結果例として、以下のようにします。
“`
“Parameter”: {
“Name”: “SubnetIdsParameter”,
本番環境(EC2)上でunicornは起動できたが、アクセスができない時に確認すべきこと
# 概要
下記記事を参考に、RailsアプリをAWS上で動かす設定をしていたが、unicornの起動後も色々とハマった。
その際の解決方法について。> (参考)unicorn起動までにハマったこと
https://qiita.com/jibirian999/items/f793206a7b7adf485b7dhttps://qiita.com/gyu_outputs/items/b123ef229842d857ff39#%E3%83%A6%E3%83%8B%E3%82%B3%E3%83%BC%E3%83%B3%E3%82%92%E8%B5%B7%E5%8B%95
# 環境
– アプリ
– ruby 3.0.2
– rails 6.1.4
– mysql 8.0.31– EC2AMI
– Amazon Linux2 AMI## エラー①ERR_SSL_PROTOCOL_ERROR
unicorn起動後、ChromeブラウザにてパブリックIPアドレスにアクセスしたところ、エラーが発生。### エラー内容(ブラウザ上で表示)
>このサイトは安全に
クロスアカウントで CloudTrail の証跡一覧を表にまとめる
# はじめに
AWSアカウントでマルチアカウントの導入が進んでいくと監査や管理を目的として、1つのAWSアカウント(管理アカウント)から複数のメンバーアカウントへクロスアカウントアクセスが必要になってきます。
CloudTrailの場合、Configアグリゲーターで抽出も可能ですが、当記事では管理アカウントからCloudTrailの証跡をクロスアカウントアクセスで取得をローカルからAWS CLIを利用し棚卸しを行います。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-role.html
## 前提条件
– [当記事](https://qiita.com/daisukeArk/items/e6b4a48e7e6062ff1b64)のように利用するIAMユーザーのMFA保護が有効となっている
– クロスアカウントアクセスを行うためのIAMロールがメンバーアカウントに作成されている必要がある## Require
– AWS CLI
– ローカル端末でクロスアカウントで実行するため、以下
テックリードとして入社してからやったことをまとめてみた。
現在の会社にテックリード(1人目の正社員エンジニア)として入社して、2年間やってきたことを書いています。
エンジニア二年目でテックリードとして試行錯誤してきて、自分の振り返りもしたいという思いから記事を書きました。
(前提として、シード期のスタートアップで実行してきたことです。)# 入社時のチーム課題
入社当時は、2週間単位のスプリントでスクラムを回してましたが、全員が業務委託だったこともあり、完全な内製化を進める必要があり、主な課題は以下でした。
– 継続的リリースが困難な状態になっており、それを解消することが急務
– 社内にエンジニアがいなかったので、開発組織体制づくりが必要だった。
– ウォーターフォール寄りのリリースが多く、継続的にリリースする文化がなかった。
– リファクタリングやテストコードが不十分だった。# 改善したこと
## Zenhubを導入
それまでは、GitHub Projectで進捗管理をしていたのですが、スクラムに特化されたZenHubを導入しました。
ユーザーストーリーの作成からリリースまでのタスクを、全社で可視化したことによって、リリースまでの流
AWS CLI を使ってみる
しばらく AWS 使ってなかったので新しい機能を試す。
まずは CLI。
CloudShell と ローカルインストールを試してみる。# AWS CloudShell
マネジメントコンソールをWebブラウザで開きます。
対応しているリージョンだと、EC2 のコンソール右上に [>_] のアイコンが表示されています。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/fb71545b-9b05-459e-da8a-a66ba527e9ea.png)
アイコン押すと、起動します。しばらく待つと、以下のように使えるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/39f768cb-a2e3-6e40-f14d-d9a899b407b1.png)
中身は何かな?
“`
$ cat /etc/os-release
NAME=”Amazon
[個人開発・独学]未経験者がHotwireのポートフォリオを作った話【Rails / Hotwire/ TailwindCSS/ Docker / AWS】
はじめに
都内の大学に通う(生物学科)3年のチャスと申します。
当記事ではタイトルの通り独学のみでポートフォリオ(以下PF)を作成した過程をご説明します。
記事の最後に、お世話になったWeb教材・記事をまとめましたので、参考にしていただければ幸いです。
開発期間は7ヶ月です。大学に通いながら暇なときにコツコツ作りました。また、開発前には学習(迷走)期間が10ヶ月程あり、基本情報技術者試験やRubyの書籍を読んだり、ネット上の簡単なアプリを作ったりしていました。PF概要
制作したアプリケーションはこちらになります。
「Karibito」アプリの説明
TOPページ(冒頭)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607099/4c65b31d-aa19-26f1-1c41-476be507144e.png)掲示板一覧
![image.png](
Amazon ECS で実行するコンテナをローカルでテストする
# 概要
* Amazon ECS 上で実行するコンテナをローカルでテストする際ってどうしてます?
* すでにご存知の方はバシバシ使われているかもですが、改めて焼き直しということで本ブログを書いていきます。
* 紹介するツールは、こちらの [amazon-ecs-local-container-endpoints](https://github.com/awslabs/amazon-ecs-local-container-endpoints) と [ecs-cli](https://github.com/aws/amazon-ecs-cli/tree/mainline#running-tasks-locally) です。https://github.com/awslabs/amazon-ecs-local-container-endpoints
https://github.com/aws/amazon-ecs-cli/tree/mainline#running-tasks-locally
## ちなみに ECS ってなにもの?
* [Amazon ECS](https:/
【DVA対策】EC2フリートとスポットフリートについて
# はじめに
EC2購入モデルとして「フリート」というモデルがあるらしくまったくわけらからんので試験対策として超ざっくりまとめる# おさらい
– オンデマンドインスタンス:普通のインスタンス
– スポットインスタンス :中断が発生する可能性があるけどめちゃ安い
# スポットフリート
– 上限価格とインスタンスタイプを設定しておくことで一番安いスポットインスタンスを任意の個数を自動で起動出来る仕組み
– 簡単に言うとめちゃめちゃ安くなるけど、サーバーが落ちる危険性もあり# EC2フリート
– スポットフリートのオンデマンドインスタンスも含めて管理できる仕組み
オンデマンドインスタンス:10個 スポットインスタンス:5個 といった設定ができる
– 簡単に言うとめちゃ安くなるけど、サーバーが落ちる危険性もちょっとあり
# まとめ
- フリートを使うとオンデマンドインスタンスで運用するより、安くなるけど予期しない部分でスポットが落ちて、
サーバー負荷が上がったり、最悪落ちたりするある意味諸刃の剣でもあるモデルという理解で自分の中で納得した
データウェアハウス層について整理してみた
## データウェアハウス層とは
データレイクにある生データを加工したものが置かれている場所
例:自社ECサイトの売上に付け加えて、サイト外での販売、自社外のWebサイトでの販売などの他の売上も結合したデータがある場所
## DWH層を作る手順
### データクレンジング
データクレンジングとは、データの欠損を埋めたり、重複削除や名寄せを行うこと
名寄せとは、複数のデータベースの中から、氏名、住所、電話番号等の情報を手がかりにして、同じ人物や同じ企業のデータを1つにまとめること
データクレンジングは、オリジナルのデータで複数のデータソースを統合できない場合に実施する
理想は大元のデータソースを修正すべきなので、一時的な処置として行う
:::note info
データレイクでは絶対に行わない
:::### スタースキーマの作成
スタースキーマとは、データベース内のデータを整理することで、理解や分析がしやすくなった多次元データモデルのこと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon
本番環境(EC2)上でunicornが起動できない時に確認すべきこと
# 概要
下記記事を参考に、RailsアプリをAWS上で動かす設定をしていたが、unicornの起動から色々とハマった。
その際の解決方法について。https://qiita.com/gyu_outputs/items/b123ef229842d857ff39#%E3%83%A6%E3%83%8B%E3%82%B3%E3%83%BC%E3%83%B3%E3%82%92%E8%B5%B7%E5%8B%95
# 環境
– アプリ
– ruby 3.0.2
– rails 6.1.4
– mysql 8.0.31– EC2AMI
– Amazon Linux2 AMI## unicorn起動
“`terminal:ターミナル(EC2)
# xx-xx-xx-xxはパプリックIPアドレス
[ec2-user@ip-xx-xx-xx-xx]$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
“`## エラー発生
“`terminal
master faile
Amazon Neptuneサーバーレスを作ってみる
## 手順
Serverlessを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/71b0efe2-69cc-3b3e-d51d-13141c980501.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/a930b57b-5d95-bc75-4a37-a96c59c939f5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/8d311f31-f502-8ab7-78ff-8e4b10fd369b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/2e44093d-3a70-17ea-9d97-5f0b85350f
Aurora Serverlessってサーバレスなのはわかるんだけどだからなんやねん。
# Amazon Aurora serverless
RDSの監視設計でリソースの扱いについてわかってなかったからさらっと調べてみたこと。
たぶんまだまだわかっていないこともあるけど、一旦備忘として記載。
またわかったことあったら追記
## 概要
Aurora Serverlessについて
### Aurora Serverless v1
– インスタンスタイプ他を管理せず使える
– ユーザが管理するのはACU(Aurora Capacity Unit)とよばれるもの
– メモリ/CPU/Network容量の最小値と最大値のみ
– Auto Scaling
– クライアントアプリケーションにより生成される負荷に対応してシームレスに実行される。
→ここでいう” 負荷 “とはCPU使用率とDBへの接続数
– Aurora Serverless v1 DB クラスターにアクティブな接続がない場合、容量ゼロ (0 ACU) にスケールダウン
(SecondsUntilAutoPause値:デフォルト5
Proxmox VE 7 で Amazon Linux 2 を走らせる手順まとめ
# Proxmox VE 7 で Amazon Liunx 2 を走らせる手順まとめ
##### 1. ノードのシェルで、ローカルの適当な場所にAWSの公式イメージを落としておきます。
“`
# wget https://cdn.amazonlinux.com/os-images/2.0.20221004.0/kvm/amzn2-kvm-2.0.20221004.0-x86_64.xfs.gpt.qcow2
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/995798/b951c24b-2c5e-07a6-3042-14ae8e26245b.png)##### 2. 別途、seed.isoを作って、GUIからアップロードしておきます。詳しくは[こちら](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/amazon-linux-2-virtual-machine.html)。
“`
# nano meta-d
amplify configureでエラーが出た際の対処法
「[AWS Hands-on for Beginners AWS Amplify を用いた Web サイトの構築方法を学ぼう](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-amplify-2022-reg-event.html)」の実施中、
AWS Cloud9で`amplify configure`を実行した際に以下のエラーが発生しました。“`bash
$ amplify configure
Downloading release from https://package.cli.amplify.aws/10.4.0/amplify-pkg-linux-x64.tgz
node:internal/buffer:959
super(bufferOrLength, byteOffset, length);
^RangeError: Array buffer allocation failed
at new ArrayBuffer ()
at