- 1. M1 Mac1でAWS SAM CLI ちょっとハマった
- 2. AWS RDSのバックアップ・リカバリを試してみた
- 3. 同時ライブ配信時に注意すべきMediaStoreの上限(クォータ)について
- 4. EC2にRailsアプリをデプロイするための事前知識 ――パッケージ管理ツールとパッケージ
- 5. aws-nukeでつまづいたこと
- 6. AWS Transcribeを使ってMP4ファイルに字幕を付けてみる
- 7. denoflare で Cloudflare R2 をカスタムドメイン公開する
- 8. AWS CLI を利用してコスト配分タグをアクティブ化してみた
- 9. RDS(MySQL)からS3へのデータエクスポート
- 10. cloudformationのネスト表示 ってなに?
- 11. AWSCompromisedKeyQuarantineというポリシー
- 12. ACMで複数ドメインを設定する
- 13. 高卒2年目エンジニアがtwitterを本気で設計してみた
- 14. GitHub ActionsでEC2インスタンスの自動停止をするようにした
- 15. EC2にnginxをインストールしてみる
- 16. 【NLB/RDS】ローカル環境からプライベートサブネットに存在するRDSに接続する方法
- 17. AWS認定 高度なネットワーキング – 専門知識 (AWS Certified Advanced Networking – Specialty ANS-C00) に合格した
- 18. 【備忘録】AWS LightsailのRedmineで検索エンジンに引っかからないようにする。
- 19. EC2で”Ubuntu 22.04″インスタンスを作成後にログイン出来ない
- 20. VSCode & Docker で(自称)モダンなLambda開発環境を作る
M1 Mac1でAWS SAM CLI ちょっとハマった
#
いいかげんローカルでの開発にも飽きてきたのでしばらく放置していたAWSを活用しようとおもって[公式チュートリアル](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)をやってみた。
# 環境
* Macbook Air (M1 2020)
* Docker 20.10.16 (limaにて、[参考](https://qiita.com/nyaao/items/5ca99d28842bb0331d63 ”タイトル”))
* SAM 1.52.0# ローカルでテスト
ローカルにデプロイするには`sam deploy –guided`ではなく、`sam local start-app`でdockerコンテナが起動する。
公式に従って、`curl http://127.0.0.1:3000/hello`とすると、
“`
{“message”:”Internal serve
AWS RDSのバックアップ・リカバリを試してみた
# はじめに
今回はRDSのバックアップおよびリカバリについて試してみましたので、手順などを含め整理していきたいと思います。まずは、設定周りを調べてみて印象に残った点を備忘としてまとめます。
※バックアップには手動と自動の2種類方法がありますが今回は自動バックアップについて記載しています。# メモ
– バックアップウィンドウは自動バックアップのスケジュール設定のこと。例えば、日次22時にバックアップを取得するようなことができるが、RDSの停止時はバックアップが開始されない。– 自動バックアップは初回はフルバックアップ、次回以降は差分バックアップとなる。各バックアップ(スナップショット)のサイズを確認する方法はなさそう。
– 自動バックアップはデータベースストレージサイズと同じサイズまではバックアップ領域として提供され、コストはかからない。
– MySQLの自動バックアップはInnoDBストレージエンジンのみサポートされている。
– バックアップウィンドウでは「開始時間」、「期間」を設定可能。例えば、開始時間を「9:00」、期間を「30分」で設定した場合は「9:00〜9:3
同時ライブ配信時に注意すべきMediaStoreの上限(クォータ)について
## はじめに
通常のライブ配信のケースでは特に意識する必要はありませんが、
同時に多数のライブ配信を行う際に注意すべき点をまとめておきます。これは実際に私が経験した内容で、テスト配信では問題がなかったものの本番配信ではこの事象が起きたので、その様子を振り返りながら、原因や対策を整理していきます。
## 構成図
ライブ配信環境は以下のスタンダードな構成です。
MediaLive(Single Pipeline) -> MediaStore -> CloudFront
少し特殊だったのが、本番では同時に32チャンネルで配信する必要があったため、
これを1セットとして、32チャンネル分を用意していました。![ScreenShot 2022-06-10 9.31.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277934/f3e550dd-5ee0-17b1-bd10-908634ade688.png)
## 当時の状況
同時に32チャンネルのライブ配信を行ったところ、
数秒おきに
EC2にRailsアプリをデプロイするための事前知識 ――パッケージ管理ツールとパッケージ
## はじめに
スクールの課題で、「まずEC2にアプリをデプロイしてみよう。」というものが出された。
調べれば新しいものから古いものまで、いろんな情報が出てくる。
とりあえず見たままコマンドコピペして進めていたけれど、一体今何をやろうとしているのか分からない、エラーがまるで意味不明
という状況になり、挫折。時間はかかるが、ある程度の基礎知識を身に着けながら進めたほうが早そうと判断。
課題も無事終えたので、復習がてら、とり貯めたメモをベースに整理。## パッケージのインストール時に適当に打ったコマンド
“`
$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel
“`“`
$ curl -sL https://rpm.nodesource.com/setup_16.
aws-nukeでつまづいたこと
個人用備忘録
以下のConfigでaws-nukeを実行したが、エラーが発生した。
“`
Your account ID ‘XXXXXXXXXX’ isn’t listed in the config. Aborting.
“`“`config.yaml
regions:
– “global”account-blocklist:
– “999999999” # productionresource-types:
# IAMユーザは消したくない
excludes:
– IAMUser
“`“`bash:実行コマンド
docker run –rm -it -v ./nuke-config.yml:/home/aws-nuke/config.yml -v ~\.aws\:/home/aws-nuke/.aws rebuy/aws-nuke –config /home/aws-nuke/config.yml –profile e1 –no-dry-run
“`## 結論
config.yamlにaccountsを指定する必要があった。
AWS Transcribeを使ってMP4ファイルに字幕を付けてみる
# はじめに
動画ファイルに半自動的に字幕をつける方法についてまとめる。今回、文字起こしには「AWS Transcribe」を使った。12ヶ月限定の無料枠もあり、そうでなくてもそこまでの料金は設定されておらず、手軽に使える。
特に、SRTファイルを出力できるため、字幕作成にはとても有用なサービスとなっている。https://aws.amazon.com/jp/transcribe/
また、動画に字幕を追加する作業は、ffmpegを使い、ローカル環境で実行する。
https://ffmpeg.org/
# 検証環境 (字幕追加作業用)
– MacBook Air (M1, 2020) macOS Monterey 12.4# 手順
以下の流れで動画に字幕を追加する。1. Speech-To-Textと字幕ファイルの生成
2. 字幕の修正
3. 動画に字幕を追加## 1. Speech-To-Textと字幕ファイルの生成
動画 (MP4ファイル) に音声認識をかけて字幕ファイル (SRTファイル) を生成する。今回この文字起こしには前述の通り「AWS Transc
denoflare で Cloudflare R2 をカスタムドメイン公開する
# Cloudflare R2 とは
公式ブログを読むべし
– [Cloudflare R2ストレージの発表 – 高速で信頼できるオブジェクトストレージ、エグレス料金なし](https://blog.cloudflare.com/ja-jp/introducing-r2-object-storage-ja-jp/)
– [オブジェクトストレージに新たな希望:R2がオープンデータ版に](https://blog.cloudflare.com/ja-jp/r2-open-beta-ja-jp/)# denoflare とは
> – [skymethod/denoflare: Develop, test, and deploy Cloudflare Workers with Deno.](https://github.com/skymethod/denoflare)
> – [Overview · Denoflare](https://denoflare.dev/)
> – `Develop, test, and deploy Cloudflare Workers with D
AWS CLI を利用してコスト配分タグをアクティブ化してみた
## 概要
「AWS コスト配分タグの API を発表」が公開されました.
> これまでは、コスト配分タグのアクティブ化と非アクティブ化は、[AWS 請求コンソール](https://aws.amazon.com/jp/aws-cost-management/aws-billing-console/)のコスト配分タグのページから行う必要がありました。今回のサポートにより、ListCostAllocationTags の API を使用して全てのタグを一覧表示し、UpdateCostAllocationTagsStatus の API を使用してコスト配分タグのアクティブ化と非アクティブ化できるようになりました。
コンソールを介さずに使用できるそうです
https://aws.amazon.com/jp/about-aws/whats-new/2022/06/aws-cost-allocation-tag-api/
## 環境
aws-cli/2.7.7 Python/3.9.11 Windows/10 exe/AMD64 prompt/off
※ 新しく追加されたAP
RDS(MySQL)からS3へのデータエクスポート
# 最終的な目標
AWS RDS(MySQL)のテーブル内のデータを、S3へエクスポートして、Athenaでクエリを投げられるようにしたい!# 本記事で出来るようになること
AWS RDS(MySQL)のテーブル内のデータをS3へエクスポートする
## EC2サーバーを経由して、S3へエクスポートする方法
例)
ユーザー名:testuser
ホスト名:fugafuga
パスワード:hogehoge
DB:test_db
テーブル名:test_table## mysqldump
“`shell:mysqldumpでのエクスポート
# tsvでのエクスポート
$ mysqldump -utestuser -hfugafuga -phogehoge –tab=/tmp test_db test_table > ./output/mysqldump_output.tsv# csvでのエクスポート
$ mysqldump -utestuser -hfugafuga -phogehoge –tab=/tmp –fields-terminated-by=, test
cloudformationのネスト表示 ってなに?
## 勉強前イメージ
グルーピング的な?
どうやってするかはわからん## 調査
### まずcloudformationとは
AWS cloudformation はAWSの環境構築を自動化できるサービスです。
YAMLファイルを書いてデプロイすることで、環境を構築することが出来ます。
ネストされたスタックは他のスタックの一部として作成されます。詳細は [こちら](https://qiita.com/miyuki_samitani/items/9f0ad8cb97403e0276db) になります。
### cloudformationのネスト とは
cloudformationのスタックを以下の図のように複数のスタックを連携させる方法です。
以下の図であれば、main stackは他のVPC,EC2,RDS stackから見たら親スタックになります。![12022-06-10 cloudformationのネスト表示 とは – diagrams.net.png](https://qiita-image-store.s3.ap-northeast-1.amazon
AWSCompromisedKeyQuarantineというポリシー
ある日、突然、AWSで操作が禁止されるようになり、確認したら「AWSCompromisedKeyQuarantine(V2がつくものもある)」という、いろいろな操作を邪魔するポリシーが当てがわれていたってことはないですか?
あまり検索に引っかからず、間違った対応されている記事もあったので、こちらで案内しておきたいと思います。
これらのポリシーは、何か危険な挙動があった際に、AWS側で悪用を抑止するために付けてくれたものです。
色々な操作が抑止されちゃってますが、決して外しちゃダメです!そのIAMは危険なので、使わないようにしましょう。
おそらく、Abuseメールが届いていると思います。参考まで〜https://qiita.com/pict3/items/cb325e452129d439e055
# ポリシー内容(2022/6/10現在)
### Policy ARN
arn:aws:iam::aws:policy/AWSCompromisedKeyQuarantine
arn:aws:iam::aws:policy/AWSCompromisedKeyQuarantine
ACMで複数ドメインを設定する
# 概要
表題のACM設定のメモです。
例えば、下記3つのドメインを一つのTLS証明書でひとまとめにすることができます。– `example.com`
– `test.example.com`
– `test.login.example.com`コンソールで下記のように設定できます。
![スクリーンショット 2022-06-10 18.43.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572098/56fdf0b2-2990-6d9f-b93b-6697172e75a7.png)また、ワイルドカードを使って下記のように設定することも可能です。
![スクリーンショット 2022-06-10 18.43.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572098/697c1d36-8a09-89ef-02b2-274257a98e1b.png)一方で、ワイルドカードは一つのサブドメインのみに有
高卒2年目エンジニアがtwitterを本気で設計してみた
# 導入
こんにちはhagurereです。
今回は高卒2年目のエンジニアが今持っている知識でtwitterを設計してみました。# 要件
今回の要件は以下です。
* タイムライン(フォローしている人のtweet一覧)
* スレッド(tweet詳細とそのリプ一覧)
* いいね# 考慮事項
* スケーラビリティ
* 機能拡張性(今後増える機能を予想して設計する)# RDBだけで設計してみる
以上の要件と考慮事項をもとに設計をしていきますがまず最初RDBだけで設計してみようと思います。
以下がざっと書いてみたE-R図です。
![スクリーンショット 2022-06-10 17.14.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1178067/eef7f2f6-fd44-e6c8-7151-1e2c17799103.png)シンプルでわかりやすいDB設計ですね
このDB設計ですとタイムラインの一覧表示は以下のようなクエリで行うことができます。
“`
SELECT *
FROM twee
GitHub ActionsでEC2インスタンスの自動停止をするようにした
この記事は、Qiita エンジニアフェスタ 2022 [GitHub Actions の自分流の使い方をシェアしよう](https://qiita.com/official-events/14b94a693d6153857db4) の参加記事です。
https://qiita.com/official-events/14b94a693d6153857db4
## はじめに
僕は個人の作業環境の 1 つとして EC2 のインスタンスを立てているのですが、コストをなるべく書けたくはないので、使用するとき以外はインスタンスを停止しています。
ですが、インスタンスの停止を忘れてしまうことが多々ありました。それから「自動で停止するようにしたいなぁ」と思い、AWS CLI でインスタンスを停止する GitHub Actions の workflow を用意して、schedule イベントでトリガーさせることにしました。
上記のようにした理由は、
– 自由が効く
– cron サーバーを用意するのはめんどくさい(というか cron サーバーを立ててる時点で本末転倒?)です。
あとは
EC2にnginxをインストールしてみる
# はじめに
業務でEC2にnginxをインストールする機会があったので、注意点を踏まえて動作確認までやっていきます。
**※2022年6月9日時点の内容です。**
—
# nginxについて
「nginx」とは、フリーのWebソフトウェアで、Apacheのシェアを抜いて、現在では最も使用されているWebサーバである。
—
# 作業について
今回は作業に当たり以下を使用
・Amazon Linux2(事前に作成済み)
・AWS CloudShell(お好みのSSHクライアントでOK)—
# 手順
## ① CloudShellを起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2411418/20565fec-cc3b-3166-a152-b41fb6eb7b4c.png)
## ② EC2へ接続
SSHクライアントでインスタンスにSSH接続を実施する。
“`
$ ssh -i xxxx.pem ec2-user@対象EC2のIPアドレス(
【NLB/RDS】ローカル環境からプライベートサブネットに存在するRDSに接続する方法
# はじめに
外部サービスやローカル環境からプライベートサブネットに配置しているRDSへ、接続したい要件に対して調査していたところクラスメソッドさんの記事でNLBを使うことで実現できることを知り、こちらの内容を元に設定していきました。記事にも書いてある通り、構築する上で何点か問題がありそれぞれ対応したことを記述しています。
https://dev.classmethod.jp/articles/nlb-bastion-for-rds/
# 構成図
![スクリーンショット 2022-05-27 0.41.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230985/5001d32c-6c20-2579-d3d3-585ec0bcdaf8.png)# Network Load Balancerとは
TCP,UDP等のプロトコルでの負荷分散を行うことができるロードバランサーです。
Application Load Balancerと比較すると下記の特徴があります。| |ALB |NLB
AWS認定 高度なネットワーキング – 専門知識 (AWS Certified Advanced Networking – Specialty ANS-C00) に合格した
# 1. はじめに
– 業務でDirect Connectなどのネットワークサービスに触れる機会もあるが、より体系的な知識を持って設計・構築などできるようにするため、「AWS認定 高度なネットワーキング – 専門知識」を取得することにした。
– 2022/7 に試験バージョンがANS-C00⇒ANS-C01に更新されるため、受験記などのノウハウがあるC00バージョンのうちに受験した。# 2. 勉強法
## 2.1 体験記など
– [AWS認定 高度なネットワーキング – 専門知識に合格したので、実践した勉強方法を共有します](https://qiita.com/chanhama/items/a3ad32882002d70e212e)
– だいたいの出題範囲、雰囲気が把握できた。
– [新しいAWS Certified Advanced Networking – Specialtyのサンプル問題の構成図を書いてみた](https://dev.classmethod.jp/articles/aws-certified-advanced-networking-specialty-
【備忘録】AWS LightsailのRedmineで検索エンジンに引っかからないようにする。
### はじめに
Redmineを環境構築した際、関係者以外には知られたくないもの。デフォルト設定の場合、検索エンジンに引っかかるため、検索エンジンから除外する設定を実施する。“`shell
cd /opt/bitnami/redmine/app/views/layoutsbitnami@ip-172-26-8-75:/opt/bitnami/redmine/app/views/layouts$ ls
admin.html.erb base.html.erb _file.html.erb mailer.html.erb mailer.text.erb
“`
→`base.html.erb`を変更する必要あり!!“`html:変更箇所
<%= html_title %><
EC2で”Ubuntu 22.04″インスタンスを作成後にログイン出来ない
## 事象
2022/06/10起票
Ubuntu 22.04 LTSインスタンスを起動したが、ログインが出来ないユーザ名、使用キーに間違いは無い
“`shell
ssh -i “rdgw-key.pem” ubuntu@ec2-11-111-111-111.ap-northeast-1.compute.amazonaws.com
Warning: Identity file rdgw-key.pem not accessible: No such file or directory.
The authenticity of host ‘ec2-11-111-111-111.ap-northeast-1.compute.amazonaws.com (11.111.111.111)’ can’t be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/
VSCode & Docker で(自称)モダンなLambda開発環境を作る
# この記事について
最近Lambdaの関数を作成する機会がありました。
その際に、DockerとVScodeを使用してそれっぽい感じの開発環境作ってみました。
その環境の作り方をこの記事にまとめます。# 前提
– 端末
– macbook pro (mojave)
– VSCodeインストール済み
– Dockerインストール済み
– AWS CLIを実行するためのクレデンシャルが取得可能(権限は割愛しますが、Administrator Accessを持っていたら楽だと思います)
– https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html※DockerとVSCodeはバージョンが古すぎなければ大丈夫だと思います
# VSCode + Docker + Pythonの環境を作る
## VSCodeにremote-containerの拡張機能を入れる
拡張機能名`ms-vscode-remote.remote-containers`