- 1. 【序 章】フリマアプリ開発完全ロードマップ【AWS自動デプロイ】
- 2. 【Amazon Connect】在宅コールセンター向けにCCP(発着信画面)をカスタマイズする
- 3. 初心者がAWSを学習する時の注意点【料金】について
- 4. 別アカウントにAuroraをクローンさせたい
- 5. terraformのcountを有効活用して開発環境だけNAT Gatewayを減らす
- 6. Kotlin(Spring)に適した開発環境
- 7. SonarQubeをサーバレスコンテナで起動してみる
- 8. 【初心者向け】Amazon Connectの構築からOutbound APIを叩いて電話を発信するまで
- 9. EC2インスタンスにSSHで接続しようとすると急に「Operation timed out」が発生した時の対処法
- 10. capistranoを使ってrailsアプリ自動デプロイまでの手順
- 11. AWSのRHEL8インスタンスにRedmine構築した時の備忘録
- 12. AWSを初めて使う人がAmplifyのセットアップを行うまで
- 13. 【備忘録】AWSにRDSを利用してデータベースサーバーを立てる
- 14. AWS YAML の JSON パーサー
- 15. 【AWS入門】アカウント作成後にやるべき初期設定 セキュリティ編
- 16. Cloudwatch Agentによるカスタムメトリックの取得方法
- 17. 【備忘録】FTPサーバーをAWSで立てる
- 18. 試験に出るAWS:SAAでしょう 第4夜
- 19. ELB+EC2で接続が遅い問題
- 20. AWS Lambdaで動的コンテンツ配信を考えてみる
【序 章】フリマアプリ開発完全ロードマップ【AWS自動デプロイ】
#はじめに
添野と申します。プログラミング学習を初めて4か月ほど経過しました。
Railsを用いて、メルカリ風フリマアプリを1人で作れたので、ロードマップとして一通りの開発経緯を残します。序章では、Railsでフリマアプリ開発を行う前にアプリの雛形をAWSへデプロイする方法を解説します。
デプロイには**自動デプロイ**が可能となる便利な`gem”capistrano”`を使用します。
#制作するアプリ
ユーザ登録、商品出品・購入の機能を備えたフリマアプリです。
メルカリ風、というかほぼメルカリです。メルカリを作ります。こんな感じのWebサイトを作っていきます。
![イラスト.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587658/2240db3d-a59d-ac47-068c-7a8731945d83.png)ちなみに、この規模のアプリは**単価50万円**ほどで取引されることが多いそうです。
通常納期は30日ほどだと思いますが、慣れてくれば1週間くらいで作れたりします。
この記事を使
【Amazon Connect】在宅コールセンター向けにCCP(発着信画面)をカスタマイズする
ここ最近は在宅コールセンターの気運が高まっていますが、
Amazon Connectを利用すれば1日で最低限のシステムを構築することが可能です。
[前回の記事](https://qiita.com/duplicate1984/items/e97c6acdd8d7932a7ee1)でAmazon Connectの構築から、コマンドラインからのアウトバウンドまでやってみましたが、コールセンターとして主に必要なのはインバウンドに対応したGUIです。
今回はこのCPPに簡易的にログインボタンの配置と、着信時にサブウインドウを開いて「着信しています」みたいな通知する機能を追加してみたいと思います。イメージ画像↓
![tempsnip3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503026/da211a9a-836e-3bd3-83a2-e995d9470634.png)#CPPとは
Amazon Connectには[CPP(Contact Control Panel)](https://docs
初心者がAWSを学習する時の注意点【料金】について
こんにちは和己です。
今はAWSを[Amazon-Web-Services-基礎からのネットワーク-サーバー構築](https://www.amazon.co.jp/Amazon-Web-Services-基礎からのネットワーク-サーバー構築/dp/4822237443)で学習している最中なのですが
いつの間にか料金が発生していた失敗談を公開したいと思います。##EC2インスタンスを停止中にしたら料金が発生していた
ある日届いたメールは以下**Amazon Web Services Billing Statement Available**
(利用可能なアマゾンウェブサービスの請求書)リンクをたどってみると・・・
**Elasti
別アカウントにAuroraをクローンさせたい
## 概要
[他のアカウントのユーザーに CMK の使用を許可する](https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/key-policy-modifying-external-accounts.html) に基本的にかいてあるが、オプショナルな記述が混ざっていてわかりにくかったのでまとめる。
## 状況
移行元A `111122223333`
– RDS Aurora
– DB クラスター設定から、移行先BのAWSアカウントID `444455556666` を入力
– KMS CMK
– CMKポリシー :arrow_forward: 後述移行先B `444455556666`
– Resource Access Manager
– 承認するだけ
– IAM
– IAMポリシー :arrow_forward: 後述## 移行元A: CMKポリシー
![](https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/i
terraformのcountを有効活用して開発環境だけNAT Gatewayを減らす
terraformでAWSのネットワークを集中管理していて、3つのAZに分散させる構成にしているのですが、
同じ構成で開発環境を構築するとNAT Gatewayのコストが目立つようになってきました。
環境によってprivate subnetの数を制御しようというのが今回のゴールになります。そもそも元のterraformの定義があまりよくないよくなかったのですが、
コロナ対応がひと段落して少し時間に余裕があったので気がすむまでリファクタリングを行いました。# TL;DR;
– 環境の判定は[terraformのworkspace](https://www.terraform.io/docs/state/workspaces.html)を活用しましょう
– 環境ごとのリソース制御は[terraformのcount](https://www.terraform.io/intro/examples/count.html) つかって制御しましょうというお話です。
# 元のテンプレの構成 (反面教師)
### 環境の判定
– 環境の切り替えは terraformのworks
Kotlin(Spring)に適した開発環境
## はじめに
ゴールデンウィークも終盤にかかってきて、自粛でやることなくて暇なので(FF7めっちゃ良かった…)WEBアプリを作ろうかと久しぶりにやる気を出した次第です。
普段は主にインフラエンジニアとしてオンプレメインで構築してるので、WEBアプリは久しぶりです。
記憶を呼び起こす+クラウドの勉強の意味を込めて、React+Kotlin(Spring)でAWS上にデプロイすることに決めました。## 開発環境選びに大苦戦
まず、開発環境どうしようかなーってところからスタートしました。
### Eclipceは嫌いです
とにかく重い、いけてない(仕事ではEclipce使ってました)### IntelliJ
~~Kotlinで開発するなら、恐らく大半の方は[IntelliJ IDEA](https://www.jetbrains.com/ja-jp/idea/)を使っているかと思います。~~
~~しかし、コミュニティ版ではSpringに対応しておらず、エディタにお金はかけたくないので断念・・・。~~
コミュニティ版でもSpring Initializrでプロジェクト作成し
SonarQubeをサーバレスコンテナで起動してみる
# はじめに
流行りのSonarQubeをコンテナ化して使ってみた。
コンテナ化しないで使ってみた系な記事は【Developers.IO】[SonarQubeでソースコードの静的解析とレビューを自動化してみる(前編)](https://dev.classmethod.jp/articles/sonarqube-source-analytics-1/)
あたりを参考に。
# RDSの準備
コンテナ化するからにはデータを腹抱えしちゃダメでしょ、ということでDBはRDSに切り出す。
ひとまずPostgreSQLを指定して適当に起動(作成するDB名は“`sonar“`を指定しておく)してから、psqlクライアントが入っているEC2とかから、以下の様にコマンドを発行してログインする。“`
$ psql -U [DBアドミニストレータ名] -d sonar -h [DBインスタンスID].xxxxxxx.ap-northeast-1.rds.amazonaws.com
“`ログイン出来たら、ユーザを作成する。
“`
sonar=> create role sonar w
【初心者向け】Amazon Connectの構築からOutbound APIを叩いて電話を発信するまで
[4月に転職](https://qiita.com/duplicate1984/items/6baca75645434cb074e5)して2週間目でAmazon Connectの構築、CCPのカスタマイズを担当することになりました。
時勢のため在宅のコールセンターを構築したい、などの理由で需要が上がっているようです。といってもいきなり本番環境で構築ができるわけでもないので、
一旦テスト用のアカウントで構築からAPI叩くところまでやってみることにします。ちなみにこの時点ではAWSもPHPもLinuxも初めてです。
タイトルの通り初心者向けですが、そもそも私が初心者です。#構成
今回の構成は以下の通りで、
ゴールは「EC2上に作成したPHPスクリプトからAmazon Connect APIを叩いて、指定した電話番号に発信するところまで」とします。+ AWS EC2 Linux
+ PHP 7.2
+ AWS SDK for PHP 3#Amazon Connect側の設定
まずはAmazon Connectを設定していきます。###Amazon Connec
EC2インスタンスにSSHで接続しようとすると急に「Operation timed out」が発生した時の対処法
## 昨日まではご機嫌だったのに…
WebアプリなどをAWSのEC2インスタンスにあげている方は多いのではないでしょうか?僕もその一人です。いつものようにEC2インスタンスにSSHで接続しようとし、
“`
$ ssh hoge_hoge(自分で生成した鍵の名前)
“`
を打ったら、“`
ssh: connect to host ××.××.××.×× port 22: Operation timed out
“`
あれ?昨日まではこんなエラー出ずに普通に入れたのに…念のためAWSのコンソールに入って、EC2がちゃんと動いていることを確かめますが問題なさそう。インスタンスをいったん停止して再起動なんてのも試してみますがだめ。うーんなんだろう…
## AWS公式FAQに対処法が載っている
このエラーよくあるみたいでAWS公式FAQに対処法が載っています。https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-resolve-ssh-connection-errors/
「簡単な説明
capistranoを使ってrailsアプリ自動デプロイまでの手順
#記事内容
オリジナルアプリをローカルで変更して、本番環境にデプロイする際、手順を毎度毎度調べながら行っているので、備忘録として使用するコマンドをまとめます。
既に本番環境の設定、capistranoを使った自動デプロイの設定は完了しているものとして、そこについては触れません。#開発環境
本番環境:AWS(EC2)
データベース:Mysql
WEBサーバー:Ngnix
アプリケーションサーバー:unicorn#目次
1. EC2ユーザーにSSHログイン
2. unicornのプロセスをkillする
3. 自動デプロイ
4. エラーが発生している時#EC2ユーザーにSSHログイン
以下のコマンドを実行してログイン
ログインが完了している場合、ターミナルのコマンドの左側が`ec2-user`となります。`ターミナル(ローカル)`
“`
$ cd .ssh/$ ls
# pemファイルが存在するか確認$ ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP
#ダウンロードした鍵を用いて、ec2-
AWSのRHEL8インスタンスにRedmine構築した時の備忘録
#はじめに
みなさま初めまして弐進(ニシン)と申します。長い1年間の社内研修を終えたぺーぺーのSEです。
今回は配属1週間目にしてAWSを用いてRedmineの構築を命じられ、四苦八苦しながらも達成したので構築に際して参考にした記事とそれ以外に詰まったところメモを自身の備忘録代わりに記事にしていきます。#目次
– 構築の条件
– 手順1 SSH接続
– 手順2 下準備
– 手順3 環境構築#構築の条件
今回はIaaSでイチからRedmineを構築していきます。AWSのAMIにはbitnamiのオールインワンパッケージが存在しますが今回はこれを使いません。上司からの指定+Linuxへの知見を深めるためです。(正直、できるなら楽をしたかったのですが……笑)その他指定された条件は以下の通りです。
– OS:RHEL8
– DB:MySQL8
– バックアップ:1回/日 7世代分をRedmineと同一インスタンス内にとる
– インスタンスは用意したプライベートサブネット内に作成してSSHは踏み台インスタンスからのみ許可
~~ 指定されたこと以外はなるべく楽をしました。~~#手
AWSを初めて使う人がAmplifyのセットアップを行うまで
#前提
・Node.js v10.x or later
・npm v5.x or later
・git v2.14.1 or laterversionの確認は各種コマンドで
“`
$ node -v
“`#AWSのアカウント作成を行う
[AWSアカウント作成](https://portal.aws.amazon.com/billing/signup?redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation#/start)#AWS Amplify CLIのインストール
npm install -g @aws-amplify/cli#Amplifyが使用するIAMユーザーを新規作成する
1.amplify configure
2.そのままEnter
3.リージョンの選択
東京なので「ap-northeast-1」を選択
(※)公式のチュートリアルはus-east-1になっているので注意
4.「user name:」に何も入力せず、そのままEnterでOK“`
C:\Users\sh
【備忘録】AWSにRDSを利用してデータベースサーバーを立てる
#目的
AWSにRDSを利用してデータベースサーバーを立てる。今回使用するデータベースは「MariaDB」です。
「MySQL」と同じだと考えてもOK。※MariaDBとは
MariaDB(マリアディービー)とは、「MySQL」から派生したオープンソースリレーショナルデータベースシステムです。「拡張性」「処理性能」「高品質」が評価され、世界中で急速にシェアを拡大しています。#EC2ユーザーでログインしておく
“`
ssh ec2-user@<グローバルIPアドレス> -i /Users/~/○○.pem
“`#MariaDBをインストールする
“`
yum install mariadb-server.x86_64
“`#MariaDBを起動する。
“`
systemctl start mariadb
“`#mysql_secure_installationを実行して、rootユーザーのパスワードを設定する。
MariaDBのrootユーザーのパスワードを設定する。“`
mysql_secure_installation
“`以下のように対
AWS YAML の JSON パーサー
## 動機
AWS の設定ファイルは JSON より YAML 派なんだけど、設定ファイルを Node.js (JSON) で処理したい。AWS 独自の組み込み関数が使われていて、そのおかげで便利なんだけど、普通のYAMLパーサーだと読めない。
(組み込み関数のドキュメントは [こちら][1])そこで、組み込み関数を出来る限りエミュレートした専用パーサーを用意した。
## ソースコード
https://github.com/exabugs/aws-yaml## インストール
“`
yarn add aws-yaml
“`## 使い方
“`
import yaml from ‘aws-yaml’;
import fs from ‘fs’;const buff = await fs.promises.readFile(‘template.yaml’, ‘utf8’);
const json = yaml.load(buff);const { Resources } = json;
“`## 使える関数
| full | sh
【AWS入門】アカウント作成後にやるべき初期設定 セキュリティ編
# はじめに
前回の記事 [【AWS入門】アカウント作成方法 – Qiita](https://qiita.com/Suzuki09/items/88afebdcaacf38752c05) の続きです。
まずAWSアカウント作成後に行わなければいけない、セキュリティ編です。
主にrootユーザーのセキュリティ強化とIAMというrootユーザー以外のユーザーの作成です。
なぜ真っ先にセキュリティの設定が必要かというと、rootユーザーを乗っ取られた時点で終わりだからです。乗っ取られると不正にAWSを使用され、高額な請求をされてしまう場合があります。
# セキュリティ設定
まずログインするとAWSのコンソール画面に繋がります
そのコン
Cloudwatch Agentによるカスタムメトリックの取得方法
##目的
プライベートサブネットに存在するEC2インスタンスから、Cloudwatch Agent(以下、CW Agentとします。)経由でカスタムメトリックを取得する方法を解説します。
## 何が取れるのか?
[こちら](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-preset-metrics)を参照するとわかる通り、Cloudwatchで取得できるメトリックは3種類(Basic、Standard、Advanced)存在します。もっとも、多くのメトリックが取得できるのは***Advanced***です。Advancedで取得可能なメトリックの種類について、以下に載せます。
“`shell-session:確認可能な闘鶏項目(Advancedの場合)
CPU: cpu_usage_guest、cpu_usage_idle、cpu_usa
【備忘録】FTPサーバーをAWSで立てる
#今回の目的
AWSでサーバーを作成し、HTMLファイルとかFTPで置けるようにしたい。
本来であれば、ftpuserというFTPを実施する専用のユーザーを作成して、きちんと権限与えてFTPを行うものだが、今回はそれが面倒でまた個人開発用としてFTPを使いたいだけなので、rootユーザーでできるように設定する。#EC2でポートのルールを設定する。
セキュリティグループで以下のポートを追加する。
※2つ追加する理由は、
「ポート21」はFTP通信でFTPサーバーに繋ぐ用のポートで、
「ポート60001-60010」はファイルを置く時に使用するポート。
分けている理由は、多くのファイルを置く時に重たくなるため、負荷を分散しているそうです。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619839/485d2fdc-9030-d830-e07e-85a34174f4ef.png)
![image.png](https://qiita-image-store.s3.ap-northea
試験に出るAWS:SAAでしょう 第4夜
前回から村設定がまったくなくなりました
もう水曜どうでしょうの話もそんなにありませんが
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%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE
ELB+EC2で接続が遅い問題
## 問題
ELBに証明書をつけて、いざアクセスしてみると、
1分程度してから表示されるようになっていた。## 解決
ELBを作成する時に、サブネットを2つ選択すると思うが、
その時に、プライベートサブネットを選択していると遅くなるみたい。## 最後
プライベートサブネットを選択していると、エラーとか出してくれればいいですね:frowning2:
AWS Lambdaで動的コンテンツ配信を考えてみる
いつも忘れないように、コンセプトから。
###コンセプト
・お金かけてまでやりたくないのでほぼ無料でAWSを勉強する
→ちょっとしたサービスを起動すると結構高額になりやすい。
・高いレベルのセキュリティ確保を目指す
→アカウントを不正に使われるととんでもない額を請求されるので防ぐ[先日やってみたチュートリアル](https://qiita.com/auf/items/74578049ef2f668f9d60)をもう少しシンプルに勉強してみようと思います。LambdaとAPIGatewayだけで、HTMLを生成するのが目標です。
いくつかサイトを見てみましたが、
こちらで行っているのを真似します。そのまんまなんで、記載するほどでもないんですが、自分の備忘とちょっとはまったところをがあったので記載してみます。###とりあえずやってみる
まずはLambdaを作成します。デフォルトで作っただけなので、ここは後で書き換えます。
![TestLambda1.png](https: