- 1. RDSを開発用に作る時の備忘録
- 2. AWS 基調講演メモ AWSomeday セッション1-2
- 3. Amazon ECSの作成済みクラスターでContainer Insightsが有効化できた
- 4. サーバーレスなWebアプリを、Dockerコンテナ上に移植する
- 5. AWS認定 Alexaスキルビルダー – 専門知識に合格したので、実践した勉強方法を共有します
- 6. AWS Shield/WAF/Inspector
- 7. 部屋のCO2濃度を、Raspberry Pi / AWS IoT / Kibanaで可視化/通知する
- 8. fastlane matchでAWS CodeCommitのリポジトリを使用する
- 9. アメリカ国防総省のクラウドベストプラクティスを参考にお勉強
- 10. AWS CLIアカウントのプロファイル切り替え
- 11. AWS Lambdaに外部モジュール(numpy,scipy,requests等)をデプロイする
- 12. AWS EC2間でSSH接続する
- 13. AWS接続できない際のログの場所一覧
- 14. EC2 Amazon Linux 2でS3をマウント
- 15. 【備忘録】AWS Lambda関数でLambda関数を呼ぶ invoke
- 16. コードを書かずにAIを構築してみる ー 失敗編
- 17. 【AWS・EC2】unicornを起動の際のエラー文master failed to start, check stderr log for detailsの解決法
- 18. ローカルPCでAWS KMSを使った処理をテストする
- 19. AWS Lambda関数でNode.js レイヤーを作る
- 20. 【AWS CDK】AWS CloudWatch AlarmsからのメッセージをGoogle Hangouts Chatに自動通知する構成を速攻で作る
RDSを開発用に作る時の備忘録
## 概要
開発用にRDSを立てて、そこにデータを流し込んだりクエリを投げたりすることもあると思いますが、
触る頻度が度々しかないと毎回基本的なことを忘れてはまってしまうので、個人的に気をつけることを備忘録としてまとめます。
随時更新していきます。## 気をつけること
– public accessility のON OFFに注意
これがマネジメントコンソールからのRDS作成では、タブの下に隠れていて、デフォルトが OFF担っていました。
これがOFFだと、セキュリティグループできちんとコネクション元を許可していてもコネクション確立できないので、注意。作成時の、**Connectivity** にある **Additional connectivity configuration** をクリックすると出てきます。
中にあります。
AWS 基調講演メモ AWSomeday セッション1-2## AWSのグローバルインフラストラクチャネットワーク及びコンピューティング
### AWSの導入すると変わることは?
・スピーディーに、柔軟にリソースを提供できる
・支出が固定費から変動費に(データセンター)
・世界中でサービスが利用できる### AWSのインフラ
20のリージョンと60のアベイラビリティゾーンリージョン = 複数のアベイラビリティゾーンがある
#### AZ(アベイラビリティゾーン)
仮想ネットワークゾーン
複数のアベイラビリティゾーンのシステム実装がベストプラクティス#### VPC(Virtual Private Cloud)
AZを跨って環境を作ることができる#####パブリックサブネット
外部と通信できる#####プライベートサブネット
VPC内部としか通信しない###コンピューティングサービス(仮想サーバーのサービス)
####EC2
・仮想サーバー####ELB
・インスタンス間で負荷を分散する
・ELB自体も負荷分散を行う。####Auto Scaling
負荷に合わせて自動的にインスタンスを増減させる##ス
Amazon ECSの作成済みクラスターでContainer Insightsが有効化できた
昨年(2019年)からAmazon CloudWatch を利用することで、Amazon ECSのリソースを監視できるようになりましたが、既存のECSクラスターの場合、AWSマネジメントコンソールだと、Container Insightsをあとから有効化することができませんが、`aws-cli` だと設定できるのがわかったのでメモ。
作成時に設定(Container Insights を有効にする)できるけど
更新時に設定はできない(設定項目がない)
サーバーレスなWebアプリを、Dockerコンテナ上に移植する## 概要
以前Qiitaで公開した、[Vue.jsとAWSでつくるシングルページの家計簿アプリ](https://qiita.com/KMim/items/f3975e308d07df4b359f)を、Dockerコンテナ上に移植しました。そこで、その過程をここに軽くまとめておきます。[GitHubのリポジトリは、こちらです。](https://github.com/KMimura/AccountingApp)`docker-compose`コマンドが使えるサーバーにコードをデプロイすれば、使えるようになると思います。
“`bash:インストールのコマンド
# コードをGitHubから取得
git clone https://github.com/KMimura/AccountingApp
# 取得されたフォルダに移動
cd AccountingApp
# docker-composeの立ち上げ
docker-compose up -d
“`## 元のサーバーレスのアプリ
同アプリは、元々サーバーレスな感じでデプロイしてありました。
![tmp.png](https:
AWS認定 Alexaスキルビルダー – 専門知識に合格したので、実践した勉強方法を共有します
#はじめに
[AWS認定 Alexaスキルビルダー – 専門知識](https://aws.amazon.com/jp/certification/certified-alexa-skill-builder-specialty/)にスコア815点で合格しました。勉強期間は約1ヶ月でした。私が実践した勉強方法を共有しますので、これから受験する方の参考になれば幸いです。
#私とAWSとAlexa
AWS歴は約4年です。
**Alexaを業務で扱ったことはありません。**[Alexa道場](https://developer.amazon.com/ja-JP/alexa/alexa-skills-kit/webinars)の動画を見ながら、サンプルアプリを作ったことがある程度です。こんな感じの人が以下の勉強方法で約1ヶ月勉強したら合格できたと思ってください。
#実践した勉強方法
私が実践した勉強方法を共有します。基本的に上から順番に実施していきました。##先駆者の方々のまとめ記事を見る
既に受験された方々のまとめ記事を見て、出題範囲のAWSサービスや問われる知識分野を把握しま
AWS Shield/WAF/Inspector
# AWS Shield
+ [https://aws.amazon.com/jp/shield/:title]
+ マネージド型の分散サービス妨害(DDoS攻撃)に対する保護サービス。
+ サービスは Standard(無償) と Advanced(有償) の2つのレベルがある。
+ Advancedの特徴
+ DDoS対応チームによるサポート
+ DDoS攻撃によるコスト増加分の払い戻し# AWS WAF
+ Web Application Firewall
+ 基本利用料は無料。
+ 設定内容(Webセキュリティルール)によって課金が行われる。
+ Webセキュリティルール(許可、ブロック等)の設定はユーザーが行う。
+ 以下のサービスから利用できる。
+ CloudFront
+ Application Load Balancer
+ API Gateway# Amazon Inspector
+ EC2上にあるアプリケーションの脆弱性等を評価するサービス。
+ 評価はスケジューリングの設定により自動で行える。
+ 脆弱性の定義
部屋のCO2濃度を、Raspberry Pi / AWS IoT / Kibanaで可視化/通知する
# 動機
部屋に長くこもっているとだんだん眠くなって集中力が落ちてくるのは酸素が薄くなっている(≒二酸化炭素濃度が上がっている)からなのでは?と思い調べたらやはりそういう研究結果があるらしい。
参考: https://www.excite.co.jp/news/article/Rocketnews24_259718/
室内では1000ppmを超えない方が良いらしいけど自宅の家電で測れないので換気のタイミングがわからない。
=> Raspberry PiにCO2センサーくっつけてデータをクラウドに送ったら色々出来るだろうし、AWS IoTとAWS IoT Greengrassのハンズオンがてらやってみよう。# 目標
以下のような構成で、Raspberry Pi上のCO2センサーデータ取得し、Kibanaでデータを可視化します。
さらにCO2濃度が閾値を超えたらSlackに通知するようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/345960/a4ff2133-519c-1
fastlane matchでAWS CodeCommitのリポジトリを使用する
# 前提
以下のURLを参考にgit-remote-codecommitのセットアップを行い、remote-codecommit形式でgit cloneできる状態にします。
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-git-remote-codecommit.html# fastlane matchで使う
`git_url` に remote-codecommit形式のURLを指定します。
app_certificatesというCodeCommitのリポジトリを使うとすると以下のようになります。“`
export CERT_REPO=codecommit::ap-northeast-1://app_certificates
bundle exec fastlane match development -a $MAIN_BUNDLE_ID –verbose –git_url=$CERT_REPO
“`ちなみにSwitchRoleなどを使っておりプロファイル名を指定
アメリカ国防総省のクラウドベストプラクティスを参考にお勉強
いつも忘れないように、コンセプトから。
###コンセプト
・お金かけてまでやりたくないのでほぼ無料でAWSを勉強する
→ちょっとしたサービスを起動すると結構高額になりやすい。
・高いレベルのセキュリティ確保を目指す
→アカウントを不正に使われるととんでもない額を請求されるので防ぐ今回はセキュリティの話ではないですが、昨日の続きというか、流れで調べていたのでその備忘というかメモです。昨日は[アメリカ国防総省のAWSセキュリティを参考にお勉強](https://qiita.com/auf/items/606c5585399ce6ea684e)について書いてました。
今日は、アメリカ国防総省のクラウドベストプラクティス
[(Best Practices Guide for Department of Defense
Cloud Mission Owners)](https://dl.dod.cyber.mil/wp-content/uploads/cloud/pdf/unclass-best_practices_guide_for_dod_cloud_mission_owners
AWS CLIアカウントのプロファイル切り替え
### AWS CLIアカウントをプロファイル名つきで登録する
“`ruby:ターミナル
$ aws configure –profile プロファイル名
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
“`
### 登録したプロファイルを確認する
“`ruby:ターミナル
$ aws configure list
“`
### 登録したプロファイルは以下のファイルに保存されている
“`ruby:~/.aws/config
[default]
region = ap-northeast-1
[profile staging-profile]
region = ap-northeast-1
“`
“`ruby:~/.aws/credentials
[default]
aws_access_key_id = AKIAXXXXXXXXXXXXXXXX
aws_secret_access_key
AWS Lambdaに外部モジュール(numpy,scipy,requests等)をデプロイする
AWS Lambda(以下、Lambda)に外部モジュールをデプロイする方法を見ていきたいと思います。ここではPythonを例に見ていきます。
実行順序
1. Amazon Linux 2(Lambdaの実行環境)を準備する
2. ソースファイルとともにLambdaにデプロイ
2. Lambda Layerを使う方法*2はどちらを選んでも構いません。
## 1. Amazon Linux 2(Lambdaの実行環境)を準備する
requestsモジュール等、内部でC言語などを使わず、Pure Pythonで書かれたモジュールの場合、このステップは不要です。
***しかし、numpyやscipyといった、C言語に依存するモジュールの場合、Lambdaの実行環境と同じ環境で開発するのが開発しやすくなります。 windowsやMacでインストールしたnumpyをzipで固めてデプロイしてもエラーとなります。***ここでは、Amazon Linux 2の環境として、公に公開されているDockerイメージ、***lambci/lambda:build-python3.7*** を使い
AWS EC2間でSSH接続する
# はじめに
– AWS VPCの勉強がてら、管理用サブネット~公開サブネット間のSSH接続の試験をしたメモです。
# Internal SSH
– 公開サーバのインスタンス作成時に、キーペアを作成する。
– TeraTermを使って、踏台サーバに、xxx.pemをSCPで送信する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89366/16f3ebba-84b3-6b53-6cea-b2d22867bf7e.png)“`sh:アップロードしたファイルのパーミッションを変更する
sudo chmod 600 xxx.pem
“`“`sh:踏台サーバにコンフィグファイルを作る
touch ~/.ssh/config
vi .ssh/config
“`“`sh:.ssh/config
Host wss
HostName 172.10.0.xxx #IPアドレス
User ubuntu
IdentityFile ~/xxx.pem
AWS接続できない際のログの場所一覧
それぞれのログの場所は以下の通り。
①Nginx
[ユーザ名@ip-10-0-0-58 自分のアプリ名]$ cat log/nginx.error.log②Unicorn
[ユーザ名@ip-10-0-0-58 自分のアプリ名]$ cat log/unicorn.log③Rails
[ユーザ名@ip-10-0-0-58 自分のアプリ名]$ cat log/production.log
EC2 Amazon Linux 2でS3をマウント
EC2からS3をマウントする備忘録です。
色々方法はあるみたいですが、今回はgoofysを使用します。# S3のバケットを作成
awscliでもできるらしいですが、AWSコンソールからS3に移動しバケットを作成しました。
ブロックパブリックアクセスのバケット設定は「パブリックアクセスをすべてブロック」にしました。# IAMロール作成
EC2からS3にアクセスできるようにIAMロールを作成します。
新規作成、もしくは既存のロールで「AmazonS3FullAccess」ポリシーを付加します。
作成したロールを該当のEC2にアタッチします。# SSH接続して以下を実行する
## ルートに切り替え
“`shell-session
sudo su –
“`## Go、fuse、gitをインストール
“`shell-session
yum install golang fuse git
“`## Goパスを設定
ホームディレクトリにパスを設定しました。
“`shell-session
export GOPATH=$HOME/go
“`## goo
【備忘録】AWS Lambda関数でLambda関数を呼ぶ invoke
###Lambda関数から別のLambhda関数を呼びに行きたい時ってありますよね!
そんな時に使える方法を備忘録として残します。[公式ドキュメント該当ページ](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-sync.html)
呼び出す側のLambda関数(main.js)
“`main.js
const AWS = require(‘aws-sdk’)
const lambda = new AWS.Lambda()let params = {
FunctionName: `invoked.js`,
InvocationType: ‘Event’,
Payload: JSON.stringify({
id: “xxxxxxxxxx”,
message: “xxxx”
})
}
コードを書かずにAIを構築してみる ー 失敗編
– コードを書かず、AWSのサービスを使いAIを構築してみる
– 例として、六角ボルト長の判別を行う
– ちなみに肉眼では、ぱっと見で違いが判りにくかった
– AIもうまく判別できていなかった より学習データの量・質共に向上させる必要がある## 学習データの作成
### 学習データの拡張
[参考](https://qiita.com/y_k_individual/items/624e3b34a9bdefff01d1)
### 学習データ数の見積
– パラメータ: 1(ボルト長)
– [10倍の法則](https://lionbridge.ai/ja/articles/how-much-ai-training-data-do-you-need/)より: 学習データ数 10以上
回転方向数 * マスク・切抜パターン数 * 撮影枚数 > 10
ここで、
マスク・切抜パターン数 = 3パターン
回転画像数 = 4方向
なので、
必要撮影枚数は最低1枚以上学習結果のテスト用も含め、今回は2つ
【AWS・EC2】unicornを起動の際のエラー文master failed to start, check stderr log for detailsの解決法
##したいこと
unicornの起動を成功させたい。(エラー文master failed to start, check stderr log for details)####経緯
本番環境としてEC2を使ってポートフォリオをデプロイしようとしています。
下記記事を参考にしています。
https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1#unicorn%E3%81%AE%E8%A8%AD%E5%AE%9A####出ているエラー
下記コマンドを実行し、“`
$ bundle exec unicorn_rails -c /var/www/rails/アプリ名/config/unicorn.conf.rb -D -E production
“`以下の様にエラーが表示される。
“`
master failed to start, check stderr log for detai
ローカルPCでAWS KMSを使った処理をテストする
KMSを使った処理をローカルPCでテストしたときのメモ。
## 必要なもの
* Java開発環境
* Docker[ソースはこちら](https://github.com/wenas/kms-local-test)
## 実行手順
### 1.[local-kms](https://github.com/nsmithuk/local-kms)の準備
AWS SDKから呼び出すlocal-kmsをコンテナで起動する。
今回は暗号化と復号のテストをするので、暗号化で使用するKeyを設定する。
local-kmsのドキュメントそのままに、seed.yamlファイルを作成する。“`yaml
Keys:
– Metadata:
KeyId: bc436485-5092-42b8-92a3-0aa8b93536dc
BackingKeys:
– 5cdaead27fe7da2de47945d73cd6d79e36494e73802f3cd3869f1d2cb0b5d7a9Aliases:
– AliasName: alias/te
AWS Lambda関数でNode.js レイヤーを作る
#対象者
AWSでLamdbaを使っている人/どんなことができるのか調べている人
LINEBotをサーバーレスで作りたい人
Lambdaのレイヤーという機能を知らない人/興味ある人
#下準備
とりあえずデスクトップに移動
`$ cd Desktop`
ディレクトリ作る
`$ mkdir nodejs`
nodejsディレクトリに移動
`$ cd nodejs`
初期化
`$ npm init -y `
レイヤーにしたいパッケージをインストール
`$ npm i xxxxx`
ex)LINEBotのSDKをインストールする場合
`$ npm i @line/bot-sdk`
nodejsディレクトリ自体をzipファイルに圧縮して下準備完了#AWSコンソール
ログイン→Lambda→レイヤー→レイヤーの作成
【AWS CDK】AWS CloudWatch AlarmsからのメッセージをGoogle Hangouts Chatに自動通知する構成を速攻で作るAWS CloudWatch AlarmsからのメッセージをGoogle Hangouts Chatに通知したいことがあるかと思います。
今回はその構成をCDKで作成してみました。## 環境
CDK CLI: 1.32.0
ローカルのNode: 11.15.0## 構成
今回は、`trigger-chat-cdk`というLambda関数を監視対象とし、「1分間に2回以上、関数が呼び出されたらエラーを挙げる」という条件を設定します。
以下は手順になりますが、[このリポジトリ](https://github.com/nomi3/cdk-alarm-to-hungout-chat)をcloneすれば、手順の3,4は省略できるので、より速攻で