- 1. Terraform + SAM で苦労した話
- 2. 【AWS/cloud9】SQL起動方法と簡単な使い方
- 3. 新しいAWS SysOps試験受験記録(合格)
- 4. AWS WAFで特定パス以下に海外IPアクセス制御
- 5. LocalStack とSAM CLIを用いたローカルLambda +DynamoDB API 作成方法メモ
- 6. Lambda (SAM CLI) + MySQL(docker-compose)を利用した REST API作成方法メモ
- 7. AWS CLI ver.2のインストールおよび設定
- 8. AWSのEKSのログを(ニア)リアルタイムでBigQuery連携するアーキテクチャ調査メモ
- 9. AWS CloudWatchでディスク容量とメモリ使用量を監視&アラート時に通知設定手順
- 10. pull requestでTipsDivergenceExceededExceptionが発生して差分が表示されなかった時の対応
- 11. 音声認識サービスを活用して話者特定のできる文字起こし機能をつくる(事前調査)
- 12. 【AWS】PynamoDBを使ってみる
- 13. Railsの環境構築やデプロイを学ぶ上で役に立った記事
- 14. AWS CodeCommitについて
- 15. AWS cloud9で、rails serverが起動しない時にやったこと。
- 16. 【試験ラボ】AWS SysOps Administrator Associate(SOA-C02)に10日間で合格した話
- 17. DockerだけでAWS SAMをLocalStackにデプロイしてみた
- 18. 特定IP・VPC Endpointからのアクセスに限定したECRをCloudformationでデプロイする方法
- 19. 【Next.js】デプロイでこけてlocalいじったら死んだ話【AWS Amplify】
- 20. AWS CLIからAWS Configルールの一括削除する
Terraform + SAM で苦労した話
## はじめに
以下のブログを参考に SAM を Terraform に組み込んでみたところ、
色々苦労することになったので備忘録を残します
https://blog.youyo.io/posts/terraform-aws-sam/
## 実行環境
– Terraform: 1.0.6
– Terraform providers:
– aws: 3.58.0
– local: 2.1.0
– null: 3.1.0
– SAM: 1.24.1## 背景
AWS Lambda のデプロイに昔は apex を使っていましたが、メンテナンスされなくなってしまいました
https://github.com/apex/apex
昔は他に便利なツールもなかったため、
Docker コンテナで依存ライブラリをインストールしてから圧縮するスクリプトを自前で組みましたそれを Terraform から呼んで関数毎にビルド・デプロイする方法です
自前実装で長く運用してきたものの、
やはり Lambda 周りが無駄に複雑になってしまっているため、
公式の Lambda
【AWS/cloud9】SQL起動方法と簡単な使い方
#データベースサーバの起動と停止
*MySQLは最初からCloud9に導入されているからインストールは不要。
####サーバーの起動
“`sudo service mysql start“`####サーバーの起動状態確認
“`sudo service mysql status“`####サーバーの停止
“`sudo service mysql stop“`####サーバーを再起動
“`sudo service mysql restart“`####データベースサーバへの接続
“`sudo mysql -u root“`そうすると、、、
“`mysql>“`
が表示される####データベースサーバからの切断
“`mysql> exit“`#データベースの使い方
####データベースを作成する
まずbookstoreというデータベースを作成する。
“`CREATE DATABASE データベース名;“`
これでデータベースが作成される。####データベース一覧の確認
“`show databases;“`
コマンド
新しいAWS SysOps試験受験記録(合格)
# はじめに
これまでにAWS試験を受験した記録をいくつか書いてきました。* [AWS 認定クラウドプラクティショナーを受験(合格)してきた話](https://qiita.com/handy-dd18/items/c2b62ad58206e47f1345)
* [AWS 認定ソリューションアーキテクトアソシエイトを受験(合格)してきた話](https://qiita.com/handy-dd18/items/96a9f374a64663b10e24)
* [AWS DVAを1週間で合格してきた話](https://qiita.com/handy-dd18/items/33ba3e6cfa100903912c)この流れでSysOpsも受験しようとしたところ、新試験に切り替わるという[リリース](https://aws.amazon.com/jp/blogs/news/tips-for-an-aws-certification-exam-with-exam-labs/)が出てきたので、急遽勉強時間を延ばすことになってしましました。
今回やっと受験することができたので、簡単に勉強
AWS WAFで特定パス以下に海外IPアクセス制御
AWS WAF にて、「ALB」に対して、
国内IPではない、かつ、/admin 以下のパス、でのアクセスの場合に、
アクセス制御(「403 Forbidden」エラー)となるように設定したときの備忘録です。## 1.Web ACL 作成前に /admin 判定の設定
AWS WAF の サイドメニュー「Regex pattern sets」を開き「Asia Pacific (Tokyo)」に切り替え、
[ Create regex pattern set ] 押下#### Regex pattern set details
・**Regex pattern set name**:`admin`(自由に入力)
・**Description – optional**:(空で登録可能なので空で登録)
・**Region**:`Asia Pacific (Tokyo)`
・**Regular expressions**:`.*/admin*`(/admin 以下)[ Create regex pattern set ] 押下
## 2.「Regex pattern sets
LocalStack とSAM CLIを用いたローカルLambda +DynamoDB API 作成方法メモ
* LocalStackとSAM CLIを用いたローカルLambda + DynamoDB APIの作成方法についてメモする。
* POSTメソッドでリクエストボディに指定した値をDynamoDBテーブル検索して返却する。## 構成
![sam+dynamo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/5c881d46-febb-81c6-196c-36d81970d5d9.png)
## LocalStack 準備
* [こちら](https://qiita.com/KWS_0901/items/f9579d9c360cf42dc97d)の手順でDocker LocalStack環境を準備しておく。
## Dynamo DB 準備
* テーブル(`sample-table`)作成
“`shell
aws dynamodb create-table –table-name sample-table –attribute-definitions Attr
Lambda (SAM CLI) + MySQL(docker-compose)を利用した REST API作成方法メモ
* ローカル環境でLambda(SAM) + MySQL(docker-compose)を利用したAPIを作成する方法についてメモする。
## AWS SAM(Serverless Application Model)
* サーバーレスアプリのデプロイに特化したCloudFormationの拡張機能。
* YAMLもしくはJSONでリソース定義する。### SAM CLI
* SAMを利用した開発サポートツール
* サーバーレスアプリのひな形作成、ビルド、AWSへのデプロイができる。
* 開発者のローカル環境でLambdaをDockerコンテナ起動できる。## 構成
![sam.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/28ba6b48-16b7-3127-3657-9604cc31e631.png)
## 準備
* SAM CLIインストール
“`shell
brew tap aws/tap
brew install aws-sam-cli
AWS CLI ver.2のインストールおよび設定
# はじめに
Amazon ECS (Elastic Container Service) を用いて AWS 上にアプリをデプロイしたい。そのためにまず Amazon ECR (Elastic Container Repository) へコンテナイメージの登録が必要だが、登録するには Docker を認証するために `aws` コマンドを実行しなければならない。(詳細は[Docker イメージをプッシュする](https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-push-ecr-image.html)を参照。)自身の環境にインストール済みの AWS CLI は ver.1 であったため、この機会に最新メジャーバージョンの2へとアップデートした。実行環境は以下。
– Ubuntu-20.04 (Windows 10 Pro, WSL2)
# AWS CLI バージョンの確認
以下コマンドで AWS CLI のバージョンを確認する。`aws-cli/1.18.69` であった。
“`bash
AWSのEKSのログを(ニア)リアルタイムでBigQuery連携するアーキテクチャ調査メモ
# 背景
– AWSのEKSのアクセスログやアプリケーションログをリアルタイムにBigQueryに連携したい
– 現状の最適アーキテクチャ調査をしたのでメモ# 方法
## 1. Fluentd -> BigQuery
### [Fluentd と BigQuery を使用したリアルタイムのログ分析](https://cloud.google.com/architecture/fluentd-bigquery?hl=ja)
– 最もシンプルな構成、BQでのアドホックな分析要求だけであればこれで良い
– 割り当て上限: テーブル毎にデフォルト100,000/secondのinsertの上限だが、追加リクエストで増やすこと可能 ([割り当てと上限](https://cloud.google.com/bigquery/quotas?hl=ja#streaming_inserts))
– ストリーミングインサートなので費用がかかる
– $0.010 per 200MB ([データ取り込みの料金](https://cloud.google.com/bigquery/pricing?hl=j
AWS CloudWatchでディスク容量とメモリ使用量を監視&アラート時に通知設定手順
CloudWatchでディスク容量やメモリ使用量まで含めて監視設定しようと思うたびにあっちこっちのサイトを見て時間を浪費してしまっていたので手順を記載します。
Linuxサーバで構築している前提の話です。## おおまかな手順
1. EC2インスタンスにsshで入る
2. perlモジュールのインストール
3. curlコマンドを実行してモニタリングスクリプトをダウンロード
4. ダウンロードしたモニタリングスクリプトをインストール
5. IAMユーザーを作成
6. 認証を設定
7. Cronを設定
8. 通知用SNSを作成
9. アラートの作成## 1. EC2インスタンスにsshで入る
使っているec2サーバ内にsshコマンドで入ります。
![スクリーンショット 2021-10-26 1.19.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574173/983eaba5-a440-37a0-3caf-a9c9ecb05903.png)## 2. perlモジュールのインスト
pull requestでTipsDivergenceExceededExceptionが発生して差分が表示されなかった時の対応
###問題
ソースツリーのgit pushでリモートにあげた作業ブランチをreleaseブランチへpull requestしたところ
下記メッセージが表示されてしまい、差分が表示されませんでした。**TipsDivergenceExceededException**
The merge cannot be completed because the divergence between the branches is too great. If you want to merge these branches, use a Git client.###対応内容
作業ブランチにreleaseを取り込みgit push
その後再度pull requestしたところ差分表示されました。
音声認識サービスを活用して話者特定のできる文字起こし機能をつくる(事前調査)
# 背景
議事録作成などに便利な音声文字起こし機能だが、既存の文字起こしサービスには話者を特定できるものが少ない。
また、話者を特定するものについても、その方法は話者それぞれにマイクを準備し、どの、マイクから音声が入ってきたかで特定するもので、1つの音声から話者を分けて文字起こしができるサービスは出ていない。
今回は、1つの音声から話者特定のできる文字起こし機能をつくる方法について調査する。## 既存の文字起こし(議事録作成)サービスについて
・スマート書記
https://smartshoki.jp/
・UserLocal 音声議事録システム
https://voice-dashboard.userlocal.jp/
・QuantumCore sloos
https://sloos.qcore.co.jp/# 話者を特定しない文字起こしについて
*各クラウドサービスの音声認識サービスについて*
1. Amazon(AWS) : Transcribe
https://aws.amazon.com/jp/transcribe/
【Transcribeの機能】
・Re
【AWS】PynamoDBを使ってみる
# はじめに
おじさんは、AWSのお勉強しています。先日購入した書籍「動かして学ぶ!Pythonサーバレスアプリ開発入門」 を読んでいたら PynamoDBを使っていたのですが、そこで躓いてしまいました。書籍のソースコードは公開されています。(翔泳社の書籍の案内ページからリンクもあります)。
PynamoDBについて、下記のサイトをざっと読みました。
NoSQLなるもので、従来のrelational DBと異なるそうです。https://koh0214.hatenablog.com/entry/pynamoDB
# pynamoDBを動かした
## 準備
pynamodb そのものは普通に pip で入ります。
https://pynamodb.readthedocs.io/en/latest/
## DynamoDBLocalの用意
pynamodb は DynamoDBというサーバと接続して使うもののようで、まずサーバとして動くDBが必要です。
ローカルでDBを動かすためにはいくつか方法がありますが、ここではDynamoDB Local というものを動か
Railsの環境構築やデプロイを学ぶ上で役に立った記事
普段はインフラ寄りの仕事をしているエンジニアですが、Railsの環境構築やデプロイについてキャッチアップする機会があり、色々学ぶうちにブックマークが溜まってきました。
同様の内容を学習中の方の参考になればと思い、Qiita記事化します。
## 環境構築関連
### Docker
– [Rails 6.1のDocker開発環境構築をEvil Martians流にやってみた(更新)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社](https://techracho.bpsinc.jp/hachi8833/2021_03_25/83450)
– [クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社](https://techracho.bpsinc.jp/hachi8833/2021_04_20/79035)
– [Nginx+Rails6.0+MySQL8.0+Adminer:docker-c
AWS CodeCommitについて
# CodeCommitとは
AWSが提供するマネージド型のソース管理サービス。
Git の標準機能がサポートされており、Git からの移行が容易。
また、CodeCommitのリポジトリとGitHubやGitLabのリポジトリをミラーリングすることも可能。#CodeCommitへのリポジトリ作成手順
1. AWSマネジメントコンソールからCodeCommitのコンソールへアクセスする。
1. `リポジトリの作成` を押下する。
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367074/370a9cd8-8235-1dfe-c174-5d8fa2a54ea1.png)
1. 以下の情報を入力して、`作成` を押下する。
リポジトリ名:任意の文字列
説明 :任意の文字列
タグ :任意
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367074/04e6f62c-
AWS cloud9で、rails serverが起動しない時にやったこと。
昨日中断するまでは起動していたはずの`$ rails server`を再開しようとしたら
“`ruby:qiita.rb
Could not find gem ‘puma (= 3.9.1)’ in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.
“`出たよと思いつつ、とりあえず`$ bundle install`をしてみる。
“`ruby:quitta.rb
$ buindle install
Command ‘buindle’ not found, did you mean:
command ‘bundle’ from snap ruby (3.0.2)
command ‘bundle’ from deb ruby-bundlerSee ‘snap info
‘ for additional versions.
“`豪快にスペルを間違えるも、本人はなんかエラー出てるなと流し見して気づかず
【試験ラボ】AWS SysOps Administrator Associate(SOA-C02)に10日間で合格した話
## はじめに
AWS SOAに**試験ラボ**という名の実技試験が導入されてはや数ヶ月が経ちました。
Web上では合格された方をちらほら見かけますが、Qiitaでは合格記事がまだ少なめだったので投稿します。
結果はかなりギリギリでした。1000点満点であと24点足りなければ泣いていました。
## 筆者スペック
– AWS使用歴:1年半
– AWS保有資格:クラウドプラクティショナー(CLF)、ソリューションアーキテクト(SAA) ※いずれも2020年10月に取得。
– 普段使うAWSサービス:VPC、EC2、ECS、RDS、S3、IAM、Cognito
– 触ったことのあるAWSサービス:Cloudwatch、Route53、ELB、System manager、DynamoDB、Elasticache、SES## 試
DockerだけでAWS SAMをLocalStackにデプロイしてみた
# はじめに
AWS SAMを試すため、[LocalStack](https://github.com/localstack/localstack)へデプロイしようとしたら、通常の[sam](https://github.com/aws/aws-sam-cli)コマンドでは、おそらくデプロイ先のエンドポイントURLを変更できないため、LocalStackへデプロイできませんでした。
そこで、LocalStackが提供する[samlocal](https://github.com/localstack/aws-sam-cli-local)コマンドを使用するとデプロイできました。また、ローカル環境をあまり汚したくなかったため、Docker (+ Docker Compose) のみで試しております。
この記事は以上のことについて、備忘録としてまとめたものです。
# 前提条件
DockerとDocker Composeがインストールされていること。# やってみた
## LocalStackを起動させておく
“`bash
$ git clone https://github
特定IP・VPC Endpointからのアクセスに限定したECRをCloudformationでデプロイする方法
以下のように `aws:sourceVpce` や `aws:SourceIp` を利用して、特定のIPやVPC Endpointからのアクセスに限定したECRを作成することができます。
ただ、下記のようなCloudformaitonのテンプレートをそのままデプロイすると以下のメッセージが発生してデプロイできません。
>Resource handler returned message: “You are about to set a repository policy that will prevent you from setting another one in the future. Use the force parameter to override this exception.
“`yaml
Resources:
MyRepo:
Type: AWS::ECR::Repository
Properties:
RepositoryPolicyText:
Version: “2012-10-17”
Sta
【Next.js】デプロイでこけてlocalいじったら死んだ話【AWS Amplify】
久々にNextいじって、いい感じにできたのでデプロイした時。
“`terminal
22 error Exit status 1
23 error Failed at the nomulog_v2@1.0.0 build script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
“`???
なんぞこれ。
調べてみると`webpack.config.js`にmodeを追加する必要があるらしい。
だが、webpackとかいじったことがなくさっぱりなのである。
とりあえずトップレベルに`webpack.config.js`を作って記事にあったコードを入れてデプロイしてみるも変化なし。そもそもlocalでは動作してるんだよなぁと思って再度実行したところ。
# 動けNext! なぜ動かん!!
さっきまで動いてたはずのNext君が砕け散ったのである。スイカバーが刺さったのである。
たぶん、今まではビルドコマンドたたかずにテストし
AWS CLIからAWS Configルールの一括削除する
# 背景
画面からだと1つずつしか削除できずめんどくさかったから
AWS OrganizationのマスターアカウントからAWS Configを適応されている場合は「OrgConfigRule-ABCDEFG」みたいなルールがあったり、SecurityHubが作成したルール(「securityhub-access-keys-rotated-xxxxx」みたいな名前)があるがそれらは削除できずエラーになるので特に問題はない(本当は分岐したりするべきだけど時間がなかったので省略)
# 各種バージョン
“`
$ aws –version
aws-cli/2.1.30 Python/3.8.8 Darwin/20.6.0 exe/x86_64 prompt/off
“`# スクリプト
“`bash
#!/bin/bashPROFILE=”profile-1234″
RULES=$(aws configservice describe-config-rules \
–query ‘ConfigRules[].ConfigRuleName’ \
—