- 1. EC2で最新バージョンのredashを立ち上げる方法
- 2. 【AWS】アカウント作成方法(スクショ画像あり)
- 3. goofysでは、EC2インスタンスメタデータ(IMDSv2)を参照できない件
- 4. redashでCloudWatchをデータソースとした場合のクエリの書き方
- 5. AWS App Runner
- 6. 古いMySQLをAWSRDSに移行した時に引っかかった点
- 7. AWS EC2 に Docker Compose で nginx + certbot (Let’s Encript) + Redmine + MySQL 入れてみた(2/5 Docker, Docker Compose など基盤構築)
- 8. AWS日記30 (AWS Lambda – DLQ)
- 9. Arcを使用してKubernetes に Azure App Service を実装とAWSのEC2の監視
- 10. ASP.NET Coreでセキュリティーを考慮したQuickSightの匿名埋め込みダッシュボード機能を利用する(後編)
- 11. ASP.NET Coreでセキュリティーを考慮したQuickSightの匿名埋め込みダッシュボード機能を利用する(前編)
- 12. 初めてのTerraform
- 13. 開発系サーバをUS-EAST-1などアメリカに置くメリット
- 14. アンダースコアを含むドメインをElasticBeanstalkで運用する際の注意点
- 15. 【CloudFrontFunctions】AuroraPostgreSQLの作成
- 16. S3やGCSでSPAやSSG、ISRのフロントエンドコードをホスティングするときに気をつけること
- 17. 【AWS】AWS CLIとECS CLIを使用したECS Webアプリ構築 ~バッチ化まで~
- 18. 【AWS】AWSとは?(初心者に向けてわかりやすくまとめます)
- 19. AWS: デフォルトVPC 削除と新規作成
- 20. 環境センサーのデータをスマホでモニタリングする(Flutter) – データ蓄積編 –
EC2で最新バージョンのredashを立ち上げる方法
##前提
redashは公式からamiが提供されており、それをもとにEC2インスタンスを立ち上げることで簡単にredashを体験することができる。しかし、amiのredashバージョンは、おそらくその時点での安定版が採用されており、最新のベータ版でのみ提供されている機能を使うにはバージョンアップを行う必要がある。
この記事では、redashのEC2インスタンスの立ち上げ方法に加えて、redashのバージョンを上げる方法についても紹介する。
##手順
###1. amiからredashのEC2インスタンスを立ち上げる
EC2でのredashの起動方法を紹介した記事は既に多数あるため、ここでは要点だけ抑えて箇条書きにする。・EC2インスタンス起動ウィザードを開き、redash公式から提供されているamiを指定
※リージョンに注意https://redash.io/help/open-source/setup#do
・インスタンスのスペックを指定
※お試し程度であればt2.smallでも十分らしいが、自分の場合はバージョンアップしたせいかスペック不足で動作が不安定にな
【AWS】アカウント作成方法(スクショ画像あり)
# はじめに
今回はAWSのアカウント作成方法についてまとめさせていただきます。
そもそもAWSとは何か?とクリアになっていない方は、
先日まとめさせていただいたこちらの記事をぜひご覧いただければと思います。https://qiita.com/kenta-nishimoto-1111/items/86ba0156c71b91dbc999
# アカウント作成前に準備するもの
①メールアドレス
メールアドレスはrootアカウントのログイン時に使用したり、請求情報の確認やメールなどが来ます。②クレジットカード情報
支払い方法は、基本的にクレジットカード決済を使用します。
私はデビットカードでも行けましたが、三井住友などのデビットは使用不可でした。
理由としてはアカウント登録時に「そのカードが本当に使えるのか?」を確認するために1円ほど引き落とされるようですが、
三井住友は最低引き落とし金額?が決まっており1円を引き落とすことができないみたいです。
ネット銀行のデビットでいけました!
(結構前のお話なので、今は三井住友も問題がない可能性はあります!)③電話番号
電話番号は本人確認
goofysでは、EC2インスタンスメタデータ(IMDSv2)を参照できない件
# 起きたこと
Security Hubで指摘される、Instance Metadata Service Version 2 (IMDSv2) の改善要求
を対策したら、goofysでのS3マウントが失敗するようになったgoofysからS3の認証は、インスタンスプロファイルで行っていました
“`/var/log/messages.
Aug 30 14:38:08 xxxxxxxxx /usr/local/bin/goofys[1784]: s3.ERROR code=NoCredentialProviders msg=no valid providers in chain. Deprecated.#012#011For verbose messaging see aws.Config.CredentialsChainVerboseErrors, err=
Aug 30 14:38:08 xxxxxxxxx /usr/local/bin/goofys[1784]: fuse.ERROR *fuseops.ReadDirOp error: NoCredentialPro
redashでCloudWatchをデータソースとした場合のクエリの書き方
##前提
redashでは対応しているデータソースに合わせてクエリを書く必要がある。
CloudWatchをデータソースとした場合、どのようにクエリを書けばよいのか分からなかったため、備忘録として記事を残しておく。##結論
CloudWatchをデータソースとした場合のクエリを書くといっても、実態としてはCloudWatchのメトリクス取得APIを叩いているだけなので、そのAPIへのリクエストパラメータを書くのと同じ。公式リファレンスからリクエストの例を一部抜粋して改変したものを次に示す。
“`json:リクエストの例
{
# どれだけの期間のデータを取得するか
“StartTime”: 1518867432,
“EndTime”: 1518868032,# 取得したいメトリクス群の記述
# この例では、2つのEC2インスタンスのCPU使用率を取得している
“MetricDataQueries”: [# 1つ目のEC2インスタンスの指定
{
“Id”: “m1”,
“Label”: “CPUUtiliz
AWS App Runner
#AWS App Runner#
– インフラストラクチャを管理せずに高速でシンプルかつ安全な方法でコンテナ化されたWebアプリケーションのビルド、デプロイ、実行するためのマネージドなサービスです。
– **ソースコード**または**コンテナイメージ**を提供するだけで、App Runnerはアプリケーションを自動的に構築およびデプロイすることができます。– App Runner は裏側で、Fargetが動いているらしい。
#ハンズオン#
詳細な仕様の話に入る前に、それ程複雑な設定はないので、とりあえず触ってみると良さそうですです。
AmazonのharunobukamedaさんがGithubにhands-onをあげてくれているので、こちらを試してみると良いかと思います。https://github.com/harunobukameda/AWS-App-Runner
#動作#
ハンズオンを実施いただいた通りですが、やることは、
– GitHubにアプリケーションコード(現在は、PythonとNode1.jsに対応)をpushするか、
– AmazonECRにコ
古いMySQLをAWSRDSに移行した時に引っかかった点
システムのAWS化に際し、
10年ぐらいから動いていたMySQLを、AWS RDSに移行した時に引っかかたことを記載します。# 環境
— 既存環境
* MySQL5.2— 新環境
* AWS RDS
* MySQL5.7# 注意事項① テーブル名が大文字小文字が区別されるようになる。
[MySQL 5.6 リファレンスマニュアル 識別子の大文字と小文字の区別](https://dev.mysql.com/doc/refman/5.6/ja/identifier-case-sensitivity.html)
> Unix では、lower_case_table_names のデフォルト値は 0 です。Windows では、デフォルト値は 1 です。OS X では、デフォルト値は 2 です。
MySQLでSQLにテーブル名を書く時、大文字小文字を区別するかどうかは、
“`lower_case_table_names“`のパラメータに依存します。どうも今回対象としたシステムは最初Windowsで動かしていたみたいです。
“`lower_case_table
AWS EC2 に Docker Compose で nginx + certbot (Let’s Encript) + Redmine + MySQL 入れてみた(2/5 Docker, Docker Compose など基盤構築)
__↓ 1/5 はじめに__
https://qiita.com/ax_kazz/items/59e15728139a6768bbdf
[前回記事](https://qiita.com/ax_kazz/items/59e15728139a6768bbdf “1/5 はじめに”)の続きです。
ここからが本題。# パッケージ最新化
基本のおまじない。
Docker, Docker Compose のインストールが終わるまでは、root 権限で実施します。“`shell-session:
$ sudo su
# yum update
“`# Docker インストールとサービス起動
こちらも基本のおまじない。
“`shell-session:
# yum install docker
“`
インストールしたらサービス起動・常駐と確認。“`shell-session:
# systemctl start docker
# systemctl enable docker
# systemctl status docker
“`# ec2-user に
AWS日記30 (AWS Lambda – DLQ)
# はじめに
AWS Lambda 関数のデッドレターキューを試します。非同期呼び出しが失敗した際に、メールを送信するように設定します。
今回は CloudFormation を利用して構築しました。
使用したテンプレートは[Github](https://github.com/tanaka-takurou/cloud-formation-templates/tree/master/dlq_for_lambda)に。# AWS SAM テンプレート作成
AWS SAM テンプレートで Lambda, SNS の設定をします。
[参考資料]
[AWS SAM テンプレートを作成する](https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/tutorial-lambda-sam-template.html)### Lambda関数とデッドレターキューの設定は以下の部分
“`yaml
Type: AWS::Serverless::Function
Properties:
F
Arcを使用してKubernetes に Azure App Service を実装とAWSのEC2の監視
#はじめに
azureのaz-304の資格取得に向けてマイクロソフトのラーニングパスで学んだひとつがAKS。https://docs.microsoft.com/ja-jp/learn/modules/intro-to-azure-kubernetes-service/
もしかしたら今後仕事で関わる機会があるかもしれないと思い、何か演習をしたいと思いつつも上記ラーニングパスにはないため、探していたところ以下演習を発見。
作業の目的の一つは演習を実施して、webページ(Hellow world)を表示させること。https://docs.microsoft.com/ja-jp/learn/modules/configure-application-kubernetes-arc/
また上記演習に加えてせっかくAzure ArcとAKSのセットアップするならAzureからAWSの EC2の監視が出来ますから実施することにしました。これが作業目的の2つ目になります。
https://www.softbanktech.co.jp/special/blog/cloud_blog/20
ASP.NET Coreでセキュリティーを考慮したQuickSightの匿名埋め込みダッシュボード機能を利用する(後編)
この記事はASP.NET Coreでセキュリティーを考慮したQuickSightの匿名埋め込みダッシュボード機能を利用するの後編にあたります。前編をご覧になっていない方は[こちら](https://qiita.com/karuakun/private/128c4c13e8e28a598432)から確認ください。
# ASP.NET Coreプロジェクトの作成
dotnet コマンドでプロジェクトを作成し、必要なライブラリを追加していきます。
“` sh
mkdir DashboardSample
cd DashboardSample
dotnet new webapp
dotnet add package AWSSDK.Extensions.NETCore.Setup
dotnet add package AWSSDK.QuickSight
dotnet add package AWSSDK.SecurityToken
“`アプリケーション初期化時に、SecurityTokenService(STS)とQuickSightをDIコンテナに追加します。
“` cs:St
ASP.NET Coreでセキュリティーを考慮したQuickSightの匿名埋め込みダッシュボード機能を利用する(前編)
# はじめに
QuickSightにはユーザーごとに参照可能なデータを行レベルで制御するRowLevelSecurityという機能があります。
少し前のQuickSightの更新で追加された匿名ダッシュボードの埋め込み機能でもこの機能が利用できるのですが、AWS CLIを利用する必要があったり、AWSのドキュメントでもあまり触れられていなかったりするので、検証した記録を残しておきます。
少し長くなったので、AWS CLIを使ってデータセットにセキュリティー設定をする前編と、ASP.NET Coreで埋め込みダッシュボードを作成する[後編](https://qiita.com/karuakun/private/bc27dec079696ed68d01)の2つに分割して投稿します。
# QuickSightの埋め込みダッシュボード機能
QuickSightで埋め込みダッシュボード機能を利用するコマンドには次の3つがあります。どの機能も、QuickSightのエンタープライズ契約が必要です。
1つ目の`get-dashboard-embed-url`は古いコマンドです。これから利用
初めてのTerraform
# 初めてのTerraform
## 背景
お仕事でTerraformを使うことになりました。
CloudFormationも使ったことがないのに...とちょっと戸惑いました。
ですがIaCを実践で身につける良いチャンスです。
お仕事で取り扱うまえに、まずは予習をしてみます。## 目標
TerraformでAWSにEC2インスタンスを構築する
## 環境
これまで愛用していたaws-cliが利用可能なDockerコンテナにTerraformをインストールし、Dockerコンテナから実行します。
## 参考
・ [Install Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
・ [10分で理解するTerraform](https://qiita.com/Chanmoro/items/55bf0da3aaf37dc26f73)
・ [AWSでTerraformに入門](https://dev.classmethod.jp/articles/terraform-getting-
開発系サーバをUS-EAST-1などアメリカに置くメリット
# 利点
– 東京リージョンに比べ単価が安い
– 開発APIサーバを利用して統合テストをするなら時間短縮に
– GitHub ActionsなどのマネージドCIは米国のリージョンにあることが多く、距離が近くなると通信速度がup
– CIに組み込むような開発支援系海外SaaSも同様# 欠点
– ローカルから開発サーバへの通信は逆に遅くなる
– 日本にある開発サーバへの通信、同サーバからの通信も遅くなる
– 該当サーバに個人情報があると難しい(*開発サーバでの個人情報保持は避けましょう)# 折衷案
お金は余計にかかりますが、東京と米国双方に環境を設置しても良いかもしれません
AWSならRDSを利用しないサーバレスアーキテクチャなら、環境を多数作っても費用負担は少ないのでありです。
CI/CDはやや複雑化します
アンダースコアを含むドメインをElasticBeanstalkで運用する際の注意点
結論から言うとRoute53ではアンダースコアを含むホスト名は使用できますが、ElasticBeanstalkのApplicationLoadBalancer用のリスナールールにおいて、HostHeadersを使用する際、アンダースコアを含むホスト名は使用できません。
– リスナールールとは
リクエストがルールのホスト名と一致した場合、ALBはリクエストを指定したプロセスに転送します。
– ホストヘッダーとは
ホストヘッダーのホスト名に基づいてリクエストをルーティングするルールを定義できます。単一のALBを使用して複数のサブドメインおよび異なるトップレベルドメインを運用できます。
– ApplicationLoadBalancer用のリスナールール
![スクリーンショット 2021-08-31 13.48.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58788/79134df4-f99a-6103-d015-95e91bd9563a.png)“`hcl
setting {
【CloudFrontFunctions】AuroraPostgreSQLの作成
#1. はじめに
4月に入ってからAWS SAMとAWS CloudFormationを用いて自身が作成したリソースをテンプレートに書き起こす作業をしてきました。DB自体は作り直すことがほぼないため後回しにしてきましたが、必要と判断したため、DBを作成するCloudFormationのテンプレートの調査を行いました。
CloudFormationって? SAMって? って人は[こちらの記事](https://qiita.com/N_H_tennis/items/c0e49be8e04c2a201b6f)をとりあえず参考にしてください。#2. DB設定
以下のようなDBを作成したいと思います。####DBクラスターの設定
・使用DB:Aurora PostgreSQL ver 12.4
・サブネットグループを指定
・VPCセキュリティグループの指定####DBインスタンスの設定
・インスタンスのクラス:db.t3.medium
・アベイラビリティゾーン:ap-northeast-1a(サブネットグループの中から選んでください)
・パブリックアクセス:なし
・マルチAZ配
S3やGCSでSPAやSSG、ISRのフロントエンドコードをホスティングするときに気をつけること
# 概要
SPAやSSG、ISRをS3やGCSなどのクラウドオブジェクトストレージでホスティングする場合、
静的コンテンツが存在するパス以外にアクセスするとクラウドオブジェクトストレージでステータスコードの403エラーを返します。
![S3_forbidden.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575547/9948b8ef-38cf-332c-0300-89f54cd8998e.png)
今回はこれを防ぐためにどのように対策するのがいいのかをアプリケーションコードによるHTTPの挙動を交えて説明しようと思います。
## 気をつけるポイント
– 例外処理の場合どこの層でルーティングされるのか
– S3の層でルーティングされるのか、フロントエンドの層でルーティングされるのか## 前提条件
– 今回はSPAを例にとって話をします
– 使う言語はVue.jsにします
– AWS環境です# 例外処理でのフロントエンドでのルーティング
まずはVue.jsでのルーティング
【AWS】AWS CLIとECS CLIを使用したECS Webアプリ構築 ~バッチ化まで~
AWSの環境構築をマネジメントコンソールから行うと、画面操作に多くの時間がかかったり、ミスが発生してしまうことが課題だと感じていました。また、手順をドキュメント化するのに掛かるコストも大きいです。
そのため、コマンドラインインターフェース(AWS CLI, ECS CLI)を用いてECSを構築してみます。
また、Windowsバッチ化も行ってみます。(正常系のみ考慮します。)**バッチを先に確認したい方は、[こちら](#バッチの作成)です。**
# 構成図
![ecs_alb_webapp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1166959/42b1f4b5-a242-1a0e-43dd-3e82f2e66971.png)# 前提条件
– Windows10 環境
– AWS アカウント
– AWS にプログラムからアクセス権限があるユーザー
– 依存ツール
– [jq](https://stedolan.github.io/jq/) ※バッチファイルのみに使用
【AWS】AWSとは?(初心者に向けてわかりやすくまとめます)
# はじめに
今回はプログラミングを学び始めると、よく耳にするAWSの基本についてまとめさせていただきます。
自分自身プログラミングを学び始め1年ほどですが、AWSを学ぶ際に様々な記事を参考にさせていただきましたが、
専門用語などが多く理解するまでに時間がかかったので、今回は専門用語をあまり使わない。
使う場合も難しい言葉にはこまめに解説をつけ、プログラミングを学び始めた初心者の方でも
難しく感じないようにまとめさせていただきます。今回はAWSの基本的な部分、他の記事ではAWSの始め方など数回に分けてまとめさせていただきます。
皆様の学びの参考になれば幸いです。AWSのアカウントの作成方法はこちらの記事でまとめさせていただいております。
https://qiita.com/kenta-nishimoto-1111/items/e1a5709c6efc78e00fc2# そもそもAWSとは?
AWSとはAmazon Web Servicesの略で、
Amazonが提供している100以上のクラウドコンピューティングサービスの総称です。一般的にAWSを調べると上記のような文言
AWS: デフォルトVPC 削除と新規作成
# はじめに
AWSのアカウント作成時に初めからある`ネットワークのデフォルト設定`について
自己整理のため、記事に残す。# awsデフォルトのネットワーク設定
ネットワーク構成はデフォルトで`VPCとサブネット以外にも`
`それに付随するネットワークの設定`が作成されている。詳しくは公式ページに参照されているが、VPCとサブネット以外だと
`・インターネットゲートウェイ`
`・ルートテーブル`
`・ネットワークアクセスコントロールリスト (ACL) `
`・DHCP オプションセット`
と、いい感じに相互関係のあるリソースまとめてくれている。https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc.html
# デフォルト設定の整理
私の場合、aws教材学習の終了後にリソース整理している時に
一部だけ(インターネットゲートウェイ)を削除していたようで
その後のdocker学習を少し停止させる要因になった。ポートフォリオには、デフォルトVPCは使わない人が多いかもしれないが
教材
環境センサーのデータをスマホでモニタリングする(Flutter) – データ蓄積編 –
## 概要
* 新型コロナの影響で環境センシングデバイス、可視化ツールの需要が高まっている。
* 前回「IoT-DX-Kit」を使って、スマホのFlutterアプリ上で気温、湿度を可視化してみた。
* 今回はクラウド(AWS)上にデータ蓄積を行う。
* EC2インスタンスやRDB、S3を使わない方法を試してみた。AWSのCloudWatchにデータが温湿度データが蓄積されている様子
![スクリーンショット 2021-08-31 9.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/a820c19d-532d-8e0d-9b3d-1814ba52f704.png)## 用意するもの
* IoT-DX-Kit マイコンボード
* DHT22 温湿度センサー
* AWSアカウント## 環境構築
(1)Flutterをインストール
https://www.arduino.cc/en/main/software
(2)Flutter Blueをインストール
https:/