- 1. AWS EC2インスタンスからRDSへの接続方法
- 2. Docker勉強メモ① DockerインストールからHelloWorld
- 3. DatadogとAmazon Connectを用いた電話通知実施してみた【監視】
- 4. Pritunl VPN環境の構築
- 5. aws-cliでCogtnitoが発行したIDトークンを使い一時クレデンシャルを発行する
- 6. テレワークで役立つAmazon Workspacesをちゃんと監視できるのか?
- 7. サーバーレスライブラリbrefを使い、素のPHPでHello world
- 8. Rails5.2以降でAWSへデプロイ完全版+DBはmysql+無料でSSL化+独自ドメイン取得(お名前.com)
- 9. AWS認定クラウドプラクティショナーになろう(超インフラ初心者向け)
- 10. 【AWS】DeepComposerを使ってみる
- 11. 試験に出るAWS:SAAでしょう 第1夜
- 12. 【AWS】Deep Composer 機械学習についての記事
- 13. AWS CodeCommitでMFA認証してHTTPSで通信する方法
- 14. ECSのタスクのスケジューリングを使用時に設定すべきこと
- 15. awscurlを使う
- 16. AWS CDKで使用するSystems Managerのパラメータの作成方法
- 17. AWSのEC2へのアクセス分散と自動拡張について
- 18. Rails on Lambdaの環境構築
- 19. 『コピペOK』NodeでS3へ画像アップロード【2020】
- 20. AWSのS3のアクセスキーとシークレットキーを作る方法『2020』
AWS EC2インスタンスからRDSへの接続方法
### はじめに
AWSのEC2から、RDS内のデータベースに接続したい時の操作方法をまとめる。### 方法
以下のコマンドをEC2インスタンス内部で打ち込めば良い。
“`:EC2インスタンス内部
[root@ip-10-0-1-173 ~]# mysql -u admin -p -h fishingshares-mysql.cmx2rdekqsyi.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2200
Server version: 5.7.22-log Source distributionCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporat
Docker勉強メモ① DockerインストールからHelloWorld
## はじめに
重い腰をあげて前から興味があったDockerの勉強をはじめました。これはそのメモです。
こちらのサイトを参考にハンズオン形式で始めていきます。Docker勉強メモ
– [Docker勉強メモ① DockerインストールからHelloWorld](https://qiita.com/zgw426/items/c0687bdfd3c58eaaac33) **←ココ**
– [Docker勉強メモ② Dockerイメージ作ってみる](https://qiita.com/zgw426/items/b480ae298e1f92cf1418)
– [Docker勉強メモ③ Dockerfileを作ってDockerイメージ作成からコンテナ起動までやってみる](https://qiita.com/zgw426/items/bea786da9128af30937f)
– [Docker勉強メモ④ コンテナ間通信](https://qiita.com/zgw426/items/bb42f6bd17707de354b9)
– [Docker勉強メモ⑤ ネットワーク通信](https
DatadogとAmazon Connectを用いた電話通知実施してみた【監視】
# TL; DR
監視において様々な通知方法が求められると思いますが、影響度の高いものに関しては電話連絡が必要だったりすると思います。
今回はその要件があり**Datadog**と**Amazon Connect**を用いて実装しました。
思った以上に簡単に実装できたので備忘録も兼ねて書き起こしていきます。簡単な概要図としては以下です。
![dd_connect.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423088/a22ebd05-0a5a-f47c-421a-9e0a502bc83e.png)では早速やっていきます。
# Amazon Connect
Amazon Connectはコールセンターを容易に作成できるという触れ込みでGAされたと記憶してましたので、正直結構限定的なのかなーと思っていて今まで触ってきませんでした。
しかし今回のような単純に電話かけたいみたいな要件でも簡単に利用することができます。## インスタンス作成
まずはAmazon Connectインスタンスを作成
Pritunl VPN環境の構築
### コロナの影響でリモート接続が必要となり構築した際のメモ。
既存のセグメントに透過的にアクセス可能とするのではなく、新しい仮想のVPNセグメントを生成して、そのセグメントに必要なクライアントを参加させる形となる。## Pritunlサーバ構築
### AWS(準備)
* EC2のOS: Amazon Linux 2
* EC2インスタンスタイプ: t3.micro
* ストレージ: 8GB
* ElasticIP付与: 必須(以降、111.111.111.111)
* ドメイン設定: 任意
* インバウンドポート設定* TCP SSH、HTTP、HTTPS 保守作業する場所(自宅/会社)のIPのみ許可
* UDP 18055 VPNクライアント用(*後ほどPritunlのWeb設定画面で表示される番号)### AWS(EC2サーバ構築)
* SSHにて、ec2-userでログイン
* [ここ](https://docs.pritunl.com/docs/installation#section-aws-
aws-cliでCogtnitoが発行したIDトークンを使い一時クレデンシャルを発行する
## 概要
aws-cliでCogtnitoが発行したIDトークンを使い一時クレデンシャルを発行する。
※ ↓の `外部プロバイダーの認証フロー` の `拡張(簡略化)認証フロー` を使う
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html## コマンド
### 1.まず GetId を叩く。
“`bash
aws cognito-identity get-id –cli-input-json file://get-id.json
“`get-id.jsonの中身
“`json-doc
{
“IdentityPoolId”: “ap-northeast-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”, // IDプールのID
“Logins”: {
// ↓リージョン/ユーザプールID : 取得したIDトークン
“cognito-idp.ap-northea
テレワークで役立つAmazon Workspacesをちゃんと監視できるのか?
# 概要
– 2020/04/07、緊急事態宣言が発令したこともあり、どこの企業もテレワークや在宅勤務
– AWSの「Workspaces」で環境をサクッとバリッと作成
– ちゃんとCloudTrailで監査ログ見れることを確認# 対象読者
– テレワーク・在宅勤務を推奨している会社の情報システム部などの人
– テレワークするための論理武装したい人
– Workspaces好きで推進したい人
– CloudTrail好きな人## 事の発端
ずっと前々から騒がれていたことですが、2020/04/07にとうとう緊急事態宣言が発令しました。これに伴い、どこの企業もテレワークや在宅勤務が発動しています。
筆者の周りでも強烈な動きが巻き起こっており、一斉に環境構築がなされています。## Workspacesでやっちゃえば?
筆者はクラウドサービスのなかでAWSに最も慣れており、AWSが最も好きです。そう、AWSにはリモート環境が用意されています。それが「[Amazon Workspaces](https://aws.amazon.com/jp/workspaces/)」です。Amaz
サーバーレスライブラリbrefを使い、素のPHPでHello world
ちょっと素のPHPが欲しいときがあったら、以下のようにさくっとデプロイできます。
“`bash
$ serverless # プロジェクト作成 https://github.com/umihico/bref-demo/commit/0269a62
Serverless: No project detected. Do you want to create a new one? Yes
Serverless: What do you want to make? AWS Node.js
Serverless: What do you want to call this project? bref-demoProject successfully created in ‘bref-demo’ folder.
You can monitor, troubleshoot, and test your new service with a free Serverless account.
Serverless: Would you like to enable this? No
Yo
Rails5.2以降でAWSへデプロイ完全版+DBはmysql+無料でSSL化+独自ドメイン取得(お名前.com)
# はじめに
表題の通りですがAWSにて環境構築から独自ドメイン取得までを記載しております。
rails5.2以降でのデプロイが難航し環境構築から独自ドメイン取得まで一貫した記事が無く、人柱となりて共有できればと思い記事として残すことにしました。
rails5.2以降ではsecrets.ymlがcredentials.yml.encに変更になり、呼び出し方が異なるのでその部分が躓くかと存じます。また、ドメイン・SSL化はなかなか教材には無かったのでご参考になれば幸いです。不手際がございましたら、コメントにいただけると有り難いです。
できるだけコピペでいきたいですね。では参りましょう!# 前提条件
1. githubにリポジトリが登録できている
2. そのリポジトリに rails new したもの(rails5.2以降)が登録できている
3. databaseはmysqlである
4. AWSでアカウントが登録できている
5. 寛大な心を持っている# 流れ
1. AWS内の環境構築
2. unicornの導入
3. nginxの導入
4. capistranoの導入
5. お名前.
AWS認定クラウドプラクティショナーになろう(超インフラ初心者向け)
#おことわり
本記事はクラウドプラクティショナー、つまりAWSの概要を把握しているレベルの知識をキャッチアップできるものになっています。
なので、めちゃくちゃ長いです。
ご注意ください。
また、内容や画像はAWSの公式サイトの物を多く使用しておりますが、中にはキャッチアップのために別のサイトから学んだ内容も入っていると思います。
そちらについては、勉強を実際に行っていたのが1年前のため、判明次第引用として追加させてください。#はじめに
皆さん、業務でAWS使ってますか。
AWSを日常的に触る方も、そうでない方もいらっしゃると思いますが、最近以下の記事がトレンドに入っているのを見かけました。
https://qiita.com/aki_number16/items/8ab86ff69200e45cd1bfこれを見て、意外とクラウドプラクティショナーに興味のある方がいらっしゃるんだなと思いまして、クラウドプラクティショナーをとるために学ぶべきことをまとめたものを公開しようと思います。
私も文系エンジニアでインフラ1年目に取得したので、割と0から学ぶにしても網羅できているはずです。
【AWS】DeepComposerを使ってみる
# DeepComposerについて
Generative Adversarial Networks(GAN)を利用し、音楽を生成するサービスです。
**GANのスキル向上のために、作られたサービスなので、すごい音楽が出力される訳ではありません。**# 利用開始
AWSのアカウントは先に作成しておいてください。## 料金について(2020年4月7日時点の情報)
AWS DeepComposerには、下記2つのサービスがあります。– 推論
音楽を生成する
– トレーニング
生成するモデルを学習させるそれぞれに、無料利用枠があるので、気兼ねなく試してみる事ができます?♂️
### 推論の料金
◆ 無料利用枠
Generative AI を使って 12 か月間、最大500個の音楽作品を無料で生成する事ができます。
◆ 無料利用枠終了後の利用料
2.14 USD / 時
### トレーニングの料金
◆ 無料利用枠
30日間無料でトレーニングする事が可能です。
◆ 無料利用枠終了後の利用料
1.26 USD / 時## サービスの選択
AWSマネジメントコ
試験に出るAWS:SAAでしょう 第1夜
水曜どうでしょうのパロディにして
勉強のモチベーションを上げようと思ったんですが
水曜どうでしょうそのものにモチベーションを
がっつり持っていかれそう(観てしまいそう)なので
タイトルと語呂合わせくらいにとどめて、
あとは普通に進行していきますちなみにHBCに見学に行ったときに買った
水曜どうでしょうタオルを何年も飾っていたのですが
使ってなんぼちゃう? と思い、とうとう使うことにしました!# 受験生諸君(自分)!!
[これ↓](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E3%82%A2%E3%82%BD%
【AWS】Deep Composer 機械学習についての記事
この記事は、[こちらのページ](https://d32g4xocucupjo.cloudfront.net/#welcome)を日本語化したものです。
# 機械学習と生成型AIの概要
## 機械学習の全体像
人工知能(AI)のサブセットである機械学習(ML)は、ビジネス上のより良い意思決定に役立ちます。機械学習は、機械がデータを分解し、そこから学習して、結果を生成するプロセスです。これらの結果を使用して、主要なビジネス上の意思決定(教師あり学習)、顧客のセグメント化(教師なし学習)、または広告の配置(強化学習)を行うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/943bae24-0780-f03d-50a2-8ba9dc8495b2.png)
## 強化学習
強化学習モデルは経験から学習し、時間の経過とともにどのアクションが最高の報酬につながるかを識別できます。強化学習では、エージェントは環境を調査して、指定されたタスクを実行する方法を学びます。結果が
AWS CodeCommitでMFA認証してHTTPSで通信する方法
### Assume Role実施(以下はサンプルです)
“`
RESPONSE = `aws sts assume-role \
–duration-seconds 3600 \
–role-arn $arn \
–role-session-name session-$timestamp \
–token-code $token \
–serial-number $number \
–profile xxx`export AWS_ACCESS_KEY_ID=`echo ${RESPONSE} | jq .Credentials.AccessKeyId -r`
export AWS_SECRET_ACCESS_KEY=`echo ${RESPONSE} | jq .Credentials.SecretAccessKey -r`
export AWS_SESSION_TOKEN=`echo ${RESPONSE} | jq .Credentials.SessionToken
ECSのタスクのスケジューリングを使用時に設定すべきこと
## やること
ECSのタスクのスケジューリングを使用する場合、タスク起動の失敗を検知して通知されるようにしておく。## 理由
タスクのスケジューリング機能を使用すると、設定した時間にタスクが新規に立ち上がり、プログラムを実行した後、タスクは終了する。しかし、何らかの理由でタスクの起動に失敗し、プログラムを実行しないままタスクが終了することがある。このとき、タスクの起動に失敗したからといって自動でもう一度タスクの起動を試みるということはない。
プログラムの実行中にエラーが発生したら通知する仕組みを入れていても、そもそもプログラムが実行される前にタスクが終了するので検知することができない。
つまり、タスクのスケジューリングでバッチを実行していた場合、バッチがコケたことに気づくことができない状況が発生する。
実際、本番運用中のシステムにおいてタスクのスケジューリングでバッチを実行していたが、検証時にバッチで更新されるはずのデータが更新されていないことに気付き、調査してはじめてタスクの起動に失敗している(バッチがコケている)ことが分かった。
## 具体的な方法
CloudWa
awscurlを使う
[署名](https://docs.aws.amazon.com/ja_jp/general/latest/gr/signature-version-4.html)を作成しなくてもインスタンスプロファイルから取得したクレデンシャルでAWSリソースの認可を取得できるので便利。
### awscurl
https://github.com/okigan/awscurl
### 留意点
アクセスキー等のクレデンシャルはexportして環境変数とするか、awscurlのオプションとして渡す必要がある。
参考:一時的な認証情報を使用した IAM 認証
https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/iam-auth-temporary-credentials.html
AWS CDKで使用するSystems Managerのパラメータの作成方法
## はじめに
AWS CDKを使用する時、ARNなどをコードにベタ書きすると、セキュリティ面がいまいちなので、Systems Managerのパラメータストアにセキュアにしたい値を入れて使いたいなと思いました。もともとはパラメータストアのスタックもCDKのデプロイ時にcontextとかから、渡して作成したいなと思っていたのですが、現状それはできなさそうです。
## じゃあどうすればいいのか?
それはAWSのドキュメントに書いてありました。
https://docs.aws.amazon.com/cdk/latest/guide/get_ssm_value.html#ssm_write
どうやらSystems Managerへのパラメータの登録はAWS CLIからのようです。つまりCDKからは厳しそうですね。## パラメータ登録用のスクリプト
CDKでは「必要なパラメータのリストを一覧して、多くのパラメータを一気に登録する」ということができなさそうだったので、登録用のスクリプトを作成しました。“`create_parameters.sh
#!/bin/bash#
#
AWSのEC2へのアクセス分散と自動拡張について
##ELB(イー・エル・ビー)
外部からの通信リクエストを分散をさせたい場合、AWSでは”ELB”を利用します。
ELBには、
CLB(Classic Load Balancer)
ALB(Application Load Balancer)
NLB(Network Load Banancer)
の3種類があります。
[参考サイト](https://aws.amazon.com/jp/elasticloadbalancing/)
###ロードバランサ
インターネット等の外部ネットワークからのリクエストを複数のサーバに割り振る装置です。これによって、ネットワークの負荷を分散(ロードバランシング)することができます。
パソコン=>インターネット=>ロードバランサ=>サーバ、、、がいくつもある感じです。
###ロードバランサを利用する理由とは
スマートフォンのブラウザで動くゲームAを例に説明します。
このゲームAでは、常時100人以上の人がアクセスしています。このゲーム用のサーバは同時に100アクセスであれば1台のサーバで対応できるものの、ブラウザのゲームなので画面が変わるたびにアクセスが発
Rails on Lambdaの環境構築
# はじめに
Rails+Lambdaの記事が少なかったので投稿します。
この記事はRails+Lambda(+APIGateway)で `GET /me` が実行できるところを目指します。
Railsはある程度分かるけど、Docker使ったことない、サーバレスやりたい人向けです。
今回SAMは使わずある泥臭いやり方で行います。
mysqlは今回コード上では使いませんが、デプロイの関係で構築は行っています。もしRDSやDyanamo使いたい場合は適時調べて行ってください。# 環境
Docker for Windows
Ruby 2.7
Rails 6
MySQL 5.x# ディレクトリ構成
“`rails_api
├── Dockerfile
├── docker-compose.yml
├── Gemfile
├── Gemfile.lock
“`# 各種ファイル
## Dockerfile
native extension を含む gem を lambci/lambdaの docker イメージでビルドしなおしをするため、イメージはLambdaのものを使用します
『コピペOK』NodeでS3へ画像アップロード【2020】
まずは、[ここ](https://qiita.com/rh_/items/24ed1cebbdc3a731aabb)からs3へのアクセスキーと、シークレットきーを取得してください。
## S3 Bucketを作る
“`
$ npm i –save aws-sdk
“`“`create-bucket.js
const AWS = require(‘aws-sdk’);
// Enter copied or downloaded access ID and secret key here
const ID = ”;
const SECRET = ”;// The name of the bucket that you have created
const BUCKET_NAME = ‘test-bucket’; //同じバケット名は作れない ユニーク必須const s3 = new AWS.S3({
accessKeyId: ID,
secretAccessKey: SECRET
});const params = {
Bucke
AWSのS3のアクセスキーとシークレットキーを作る方法『2020』
## 1) IAMユーザーを作る
S3のアクセスキーとシークレットキーを作るには、IAMユーザーを作る必要があります。
## 2) グループを作る
これは、IAMユーザーへ割り当てる権限のグループです。ec2とs3へのアクセス権限をこのIAMユーザーへ付与する〜みたいな。
## 3) グループの名前と使用用途を決める
今回は、nodejsからs3へ画像をアップしたり、取得したいので、プログラマ