AWS関連のことを調べてみた2020年11月22日

AWS関連のことを調べてみた2020年11月22日
目次

AWS Amplifyで環境変数を設定し、Reactアプリで読み込む

GitHubなどからWebアプリのCI/CDができるAWS Amplifyですが、
今回は環境変数の設定方法と、AmplifyでホストしているReactアプリから読み込む方法を備忘録として残しておきます。
(あと以外と日本語のドキュメントがなかった)

ReactなどのWebアプリでは.envファイルなどに環境変数を定義しておいて、
`process.env.{任意の名前}`で読み込むことがあると思いますが、
認証情報などを記載している場合はソース管理には載せられませんし、Amplifyで環境変数を設定して読み込む必要があります。

ちなみにAmplifyではバックエンドの構築も可能ですが、環境変数の利用はフロントエンドのみのアプリでもできます。
ちょっとしたフロントエンドだけのアプリ作って環境変数の読み込みだけしたい場合、Amplify CLIを使ったバックエンドの構築などはせずに環境変数の設定、利用が可能です。

# 環境変数の設定
### 環境変数の登録
Amplifyで環境変数を定義するにはまずAWS ConsoleでAmplifyのページに飛び、
サイドメニューから「環境変数

元記事を表示

Railsチュートリアルエラー :FormatError: fixture key is not a hash

#エラーの発生!

Ruby on Rails チュートリアル 第6番
“リスト 8.24: 有効な情報を使ってユーザーログインをテストする”
を進めていると。。。。

今まで通っていたテストが全てエラーに!!

“`
21 tests, 0 assertions, 0 failures, 21 errors, 0 skips
“`

しかし、よくよくエラーを確認すると…

“`
ActiveRecord::Fixture::FormatError: fixture key is not a hash:
/home/ubuntu/environment/sample_app/test/fixtures/users.yml
“`
fixturesフォルダの中のusers.ymlに原因があると判明。

調べてみると、ymlではインデントも意味をもつとのこと。

【参考】
https://teratail.com/questions/263996

/home/ubuntu/environment/sample_app/test/fixtures/users.ymlを
下記のよ

元記事を表示

Amazon S3を利用した画像投稿や保存をする(パケットへ画像を保存する)

初めて書きます!! **Toshi**と申します。始めたばかりで駆け出しのエンジニア志望生です。
某プログラミングスクールで3ヶ月ほどカリキュラム基礎を学んで残りの3ヶ月で個人アプリの制作をしています。

Qiitaは自分の学びのストックと、もし同じ悩みを持った方の参考に少しでもなればと思い、不定期ですが更新していきたいと思っています!!
よろしくお願いします:blush:

初投稿はタイトルの通りAmazon S3を利用しての画像保存について書いていきたいと思います。
(今回、学んだテキストからかなり引用気味です。。笑)

# この記事の対象の方
>・AWSでIAMアカウントを登録している
・Ruby on railsを学んでいる方(他の言語でもS3は出てくるかとは思いますが、この後はRuby on railsが引き合いに出てくるため)
ActiveStorageを用いた画像保存などを知っている方
・Herokuをお使いの方

ただ、条件関係なくその他の方も全然Welcomeです:sunglasses:

# そもそも「A

元記事を表示

Scala で AWS の SECRET_KEY とかじゃない Credential を使う方法

com.amazonaws.auth.DefaultAWSCredentialsProviderChain を使うと良いかなと。

“`scala
import com.amazonaws.auth.{AWSCredentialsProvider, DefaultAWSCredentialsProviderChain}
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.{InitialPositionInStream, KinesisClientLibConfiguration, Worker}

val awsCredentialsProvider: AWSCredentialsProvider = new DefaultAWSCredentialsProviderChain()
val kclConf = new KinesisClientLibConfiguration(appName, streamName, credentialsProvider, workerId)
“`

“`
scalaV

元記事を表示

SonarQubeをインストールしたEC2をTerraformで一発で構築する

# はじめに
SonarQubeの動作検証をたまにやることがあるが、その都度過去にインストールした方法を掘り返すのが面倒になったので、一発で構築できるようにした。
ここまでやるならAMI作れよ……と思わなくもない。

# 全体構成
今回は、AL2 な EC2 上に Docker をインストールして、その上で SonarQube on Postgres のような構成で動かす。docker-compose.yml は、SonarQube と Postgres をまとめて起動するためのファイルだ。

“`
terraform/
├── 01_main.tf
├── 02_datasource.tf
├── 03_ec2instance.tf
└── 04_docker-compose.yml
“`

01_main.tf はプロバイダ設定、02_datasource.tf は、VPC やセキュリティグループの設定をしている程度なので割愛する。

# EC2インスタンスの作成

“`HCL:03_ec2instance.tf
###############################

元記事を表示

【AWS】【初心者】wordpressのブログシステムを構築する(パラシつき) ⑤

この記事は、【AWS】【初心者】wordpressのブログシステムを構築する(パラシつき) ④
「 https://qiita.com/gbf_abe/items/5613471be83f8343464f 」の続きです。

# 前回まででやったこと
|順番|内容 |
|—|—————————-|
|① |VPC構築 |
|② |サブネット分割 |
|③ |EC2(パブリック)構築 |
|④ |WebサーバにApacheをインストール |
|⑤ |EC2(プライベート)構築 |
|⑥ |NATゲートウェイ構築 |
|⑦ |DBサーバにMariaDBをインストール |
|⑧ |Webサーバにwordpressをインストール|
|⑨ |完成(するはず)! |

前回は、プライベートサブネットを構築し、プライベートサブネット内に

元記事を表示

【未経験・独学】Laravelでアプリケーションの開発からAWSを用いたデプロイまで

# はじめに
今回は、社内向けの質問アプリケーションの開発・デプロイをした際の話についてまとめます。
なにかアプリケーションを開発中もしくはこれから開発する方の参考になれば幸いです。

### 開発スタート時
– 23歳
– 実務未経験
– 大学は非情報系
– PHPの基礎とLaravelの基礎を3ヶ月ほど学んだ状態
– 資格:基本情報技術者

# アプリ紹介
今回開発したものは、「社内向けの質問アプリケーション」です。

### デモ

デモ1(ゲストログイン・質問記事ページ・コメントプレビュー・タグ検索)
![質問アプリ2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381376/51bec773-2462-2bb1-6999-a456735854d7.gif)

デモ2(投稿プレビュー・テンプレート機能・ヘルプモーダル)
![質問アプリ1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381376/4bf227b

元記事を表示

CloudFormationをゼロから勉強する。(番外編:Former2)

# はじめに
仕事でAWSに`WordPress`のサイトを立ち上げる作業を行ったのですが、手作業で作ったということもあり、コード化されていなかったので、せっかくなので「[AWS Black Belt Online Seminar AWS CloudFormation deep dive](https://www.slideshare.net/AmazonWebServicesJapan/20201006-aws-black-belt-online-seminar-aws-cloudformation-deep-dive)」でも紹介されていた`Former2`を使ってコード化してみました。

-【前】[CloudFormationをゼロから勉強する。(その8:スタックのネスト)](https://qiita.com/sakai00kou/items/553aba6cc924aff3c9b8)

# Former2とは
AWSの自アカウントにあるリソースを検索し、選択したリソースを`CloudFormation`や`Terraform`などの形式でコード化してくれる**ブラウザベース**

元記事を表示

AWS Railsの再起動手順

この度Railsで開発中のアプリをAWSへ開発中アプリをデプロイしましたが、
今後本番環境のサーバー再起動を行う頻度は高いだろうと思い
備忘録としてUnicornの再起動手順をまとめていきたいと思います。

EC2インスタンスにログインしている前提で進めていきます。

まずは ps aux | grep unicorn コマンドでプロセスIDを確認します。

“`ruby:ターミナル
[ec2-user@ip-172-31-33-238 <対象リポジトリ>]$ ps aux | grep unicorn
ec2-user 26995 17.4 10.7 475732 108272 ? Sl 13:55 0:01 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 26999 0.0 10.0 476748 101508 ? Sl 13:55 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E produc

元記事を表示

AWS RDSにローカルから接続できない

#エラー内容
データの検証のため、RDSにローカルのwindowsから接続しようと試みました。

“`
mysql -u root -p -P 3306 -h
“`
すると・・・

“`
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘‘ (10060)
“`

ncも試してみる。

“`
nc
nc: can’t connect to remote host ()
“`
ncもダメ・・・

# 解決方法
RDSインスタンスの「パブリックアクセス可能」を「あり」にする
![e124141.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480987/0ea7aec1-57e0-d483-e9cb-fc59abd07a11.png)

参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-connectivity

元記事を表示

AWS cliでECRにpushするときに再認証を求められる&loginが400 bad requestで弾かれる

# エラー内容

“`
docker push ********.dkr.ecr.region.amazonaws.com/****:TAG
“`
ECRにpushしようとすると

“`
denied: Your authorization token has expired. Reauthenticate and try again.
“`
トークンが期限切れと言われた。再度ログインします。

## ログインする
“`
aws ecr get-login-password –region | docker login –username AWS –password-stdin https://.dkr.ecr..amazonaws.com
“`
ちょっとハマってしまったポイントがあります。

– get-login-passwordには明示的にregionが必要
– get-login-passwordとdocker loginのregionが一致していなければいけない

さもないと400 bad requestが返ってき

元記事を表示

【画像付き】AWSでSSL化させる【丁寧に解説】

#前提
* EC2にデプロイ済みであること
* ドメインを取得しElastic IPと紐付けていること。つまり`http://ドメイン名`でサイトにアクセスできるようになっていること。

ドメインの取得方法は下記記事を参考にました!
> [【ドメイン取得】お名前.comとawsでドメイン取得](https://qiita.com/nakanishi03/items/25278fb4dfad60ebfac4)

#そもそもSSL化ってなに?
簡単にいうと**「セキュリティが強い、安全なサイトにすること」**です。
詳しい説明は下記記事を参考にしてください。
> [SSLって何?意味や仕組みをわかりやすく解説!](https://ssl.sakura.ad.jp/column/ssl/)

#方法

1. Certificate ManagerでSSLサーバー証明書を発行
2. ロードバランサーにてSSLサーバー証明書とEC2インスタンスを紐付ける
3. EC2インスタンスのポート開放
4. 動作確認

この順番で行きたいと思います。
まずはゴールを御覧ください。

###最終

元記事を表示

AWSのACM(Certificate Manager)でSSL証明書を取得してみた

# はじめに
個人サイトのSSL化のためACMで証明書を取得してみた。

# 手順
以降の流れで取得しました。
######AWSコンソールのCertificate Managerから[証明書リクエスト]を選択
![AWS_Certificate_Manager1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/f7a7e4f3-a42b-c976-389c-72ca9ddfbf5c.png)
![AWS_Certificate_Manager2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/bc2bbb3d-f96a-ffd7-a4d6-fcd0a4382765.png)
######ドメイン名を追加します。
![AWS_Certificate_Manager3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4

元記事を表示

AWS Storage GatewayとOCI Storage Gatewayを利用してS3のデータをOCI Object Storageにファイルコピーで移行してみた

#はじめに

AWS S3内のデータをOCIのObject Storageにファイルコピーで移行する方法として、[こちらの記事](https://qiita.com/500InternalServerError/items/2428e353398844766b43)ではgoofysを利用する方法を紹介しました。

goofysはオープンソースなのでサポートが心配、という方向けに、今回はOracleから提供されているOCI Storage Gateway(Object StorageバケットをNFSで共有できるゲートウェイ)、AWSから提供されているAWS Storage Gateway(S3バケットをNFSで共有できるゲートウェイ)を利用してAWS S3からOCI Object Storageにファイルコピーでデータを移行する方法を試してみました。

#事前準備
<OCI側>
・Object Storageへのアクセスに使用するユーザのAPIキーの登録を済ませておきます。
 - フィンガープリント
 - 秘密鍵
 - パスフレーズ(キーペアの作成時に設定した場合)

<AWS側>
・S

元記事を表示

アップデートで「AWS Network Firewall」という新しいサービスが登場

#はじめに
2020/11/17のアップデートで「AWS Network Firewall」という新しいサービスが登場しました。本記事ではこのサービスの特徴について調べ、使い所を検討してみます。

元記事を表示

CodeBuild実行時に$(aws ecr get-login –region $AWS_DEFAULT_REGION –no-include-email)で発生したエラーの解決方法

## 問題点
AWS CodeBuild実行時に

“`
Running command $(aws ecr get-login –region $AWS_DEFAULT_REGION –no-include-email)
“`
時に、“`An error occurred (AccessDeniedException) when calling the GetAuthorizationToken“`と言われてこけてしまった。

実行結果
![スクリーンショット 2020-11-20 14.49.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/785079/8616997c-16f2-87ac-9733-1fc0da03032f.png)

## なぜ起こったのか?
CodeBuild実行時にECRを操作する権限がアタッチされていなかったから。

## 解決方法

### 手順_01
“CodeBuild > ビルドプロジェクト > 該当プロジェクトの詳細を表示“から“ビルドの詳細

元記事を表示

AWS lambda layer で仮想環境を構築したった

# Background
Python3.6 以降で`venv`を使ってpipしたパッケージを保存していたのですが、AWS上で出来ないかと調べているとlayerという手頃な機能があったので使ってみた。

# venv

作業PC上ではこれでOK

“`shell
python -m venv [仮想環境名]

./[仮想環境名]/bin/activate
([仮想環境名]) pip install [パッケージ名]
“`

# パッケージ用のzip作成
[AWS lambda を使ってWebスクレイピングしたった-Development (Webスクレイピング)](https://qiita.com/satsukiya/items/b9d02abd7fa96cd59355#development-web%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0)と同様にAWS上にuploadするためにzipファイルを作ります。

“`shell
mkdir packages
cd packages
pip i

元記事を表示

[AWS] グローバルインフラストラクチャとネットワーク①「リージョンとアベイラビリティゾーン」

###リージョンとアベイラビリティゾーン

####リージョン
AWSがサービスを提供している拠点。
日本では東京リージョン、2021年には大阪リージョンをを立ち上げる予定。

####アベイラビリティゾーン(AZ)
物理的、ソフトウェア的に自律しているデータセンター[^1]の集合体。

####AZの地理的・電源的独立による信頼性の向上
#####地理的独立
・落雷や洪水、大雨などの災害によるAZへの局所的な障害に対して別のAZが影響されないように配置されていること。その為AZ間は数十キロ程度離れて配置されている。
・各AZ間は高速なネットワーク回線で接続されているためAZ間のネットワーク遅延(レイテンシー)は2ミリ秒以下で安定している。
#####電源的的独立
・1か所の停電によりAZ内のすべてのデータセンターが一斉にダウンすることがないように設計されている。
 

AZの地理的・電源的独立により、リージョン全体でみたときにAWSは障害への耐久性が高くなり信頼性が高いといえる。
####マルチAZによる可用性の向上
複数のAZを利用してシステムを構築すること。耐障

元記事を表示

AWSの主要なサーバレスサービス 4選!

# はじめに
今回はAWSのサーバレスサービスを紹介します!

ここでいうサーバレスは、AWSがサーバーを管理し、利用者側はサーバ管理不要なコンピューティングサービスを指すことにします。

利用者はサーバー管理不要なので、毎週のように来る脆弱性対応やミドルウェアの設定・管理、スケーリングを考えた構成をしなくて済みます。
また、利用者はビジネスロジックに集中でき、使用した分だけ課金されるので、コスパの良いサービスを作ることができます。

# YouTube動画
動画で確認したい方はこちらをどうぞ
[【YouTube動画】 AWSの主要なサーバレスサービス4選](https://youtu.be/YXxwzl0hf7Y)
[![AWSの主要なサーバレスサービス4選](https://img.youtube.com/vi/YXxwzl0hf7Y/0.jpg)](https://youtu.be/YXxwzl0hf7Y)

# AWS Lambda
LambdaはAPI呼び出し時やイベント発生時にLambda関数を実行できるサービスです。
Lambda関数はNode.jsやRu

元記事を表示

King Gnuの曲の歌詞でAmazon Comprehendの感情分析機能を試してみる

[King Gnu](https://kinggnu.jp/)の曲の歌詞でAmazon Comprehendの感情分析機能を試してみました。曲ごとにpositive順に並べています。ちなみに、ポジティブNo.1の三文小説とNo.2のThe holeは曲を聴く限りポジティブなものには聞こえません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615716/c60f7671-2f55-1e20-0891-4de999bfefeb.png)

元記事を表示

OTHERカテゴリの最新記事