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

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

S3にファイルをアプロードして メタデータに content-disposition を設定する

## ゴール

– Webブラウザを使ってアップロードしたファイルをCloudFront経由でダウンロードする。
– ダウンロードしたファイルをブラウザで保存する時のダイアログには、S3のKeyとは別の任意のファイル名を指定できる。

![キャプチャ2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145742/a9d6998f-d0e2-14cb-6324-9888b33181b5.png)

上の「iOS の画像 (1).jpg」を `content-disposition` で指定する。

## バージョン情報

– JDK: amazon-corretto-11.0.3.7.1-windows-x64
– Spring boot : 2.2.4.RELEASE
– AWS SDK for Java: 2.14.28

## はまりポイント

[PutObjectRequest.Builder#contentDisposition(string))](https://sdk.amazonaws.

元記事を表示

AWS失敗と対策 仮想マシンのIPアドレスが勝手に変更される

# はじめに
仮想マシンサービスのAmazon EC2 は、稼働時間による従量課金なので、夜間のような使わない時間帯は停止(Stop)させていたのですがEC2インスタンスを再起動した際に画面が映らなくなってしまいました。

なぜそうなったのか原因と対策を調べていきます。

# 原因
Stop したEC2 インスタンス(仮想マシンの実体)を起動(Start)し直すと、自動的に割り当てられるグローバルIP アドレスが変わっていたためでした。。。。

ドメイン名を取得していたのでそこで設定していたIPアドレスが変わる前の物に設定してあったので画面が表示されていませんでした。

# 解決法

####アプリケーション名.confの編集
次に、/etc/nginx/conf.d/アプリケーション名.confを作成します。下記のコマンドを入力してください。

“`
$ sudo vi /etc/nginx/conf.d/アプリケーション名.conf
“`

“`
upstream puma {
server unix:///home/ec2-user/アプリケーション名/tmp/s

元記事を表示

AWS, Docker, CircleCI, Laravelでポートフォリオを作成してみた【参考リンク付き】

#初めに

今回は**Docker**, **CircleCI**, **AWS**等、人気の高まっているインフラ技術を一から学んで、Webアプリを作成してみました。
バックエンドは**Laravel**、フロントエンドに**Vue.js**等といった構成です。

この記事では、アプリ開発にあたって苦労した点や、
各機能実装の際に参考にした記事や教材についてもご紹介していければと思います。

#アプリの概要

朝活をテーマをしたSNSアプリです。

* 朝活仲間を作り、「コツコツ」継続できる
* 朝活習慣の「コツ」を共有して、朝活の挫折を防ぐ

ことをコンセプトに、「朝活」を文字って**「AsaKotsu」**というサービスを開発しました。
URLはこち

元記事を表示

【IoT DIY レシピ】IoTで朝確実に起きたい

# はじめに

本記事はソラコム株式会社による[「SORACOM IoT レシピチャレンジ!」](https://blog.soracom.com/ja-jp/2020/11/17/soracom-iot-recipe-challege-2020/)企画の投稿記事です。

できるだけ本家のIoT DIY レシピの形式に近い感じで記載します。

# IoTで朝確実に起きたい

公開日: 2020年11月

レシピ難易度:★★★☆☆

朝確実に起きたい、というのは、僕のみならず、比較的多くの人にとって課題ではないかと思います。

朝起きるのが遅れると遅刻して心配や迷惑をかけることもありますし、そこまでいかなくても出勤時間に余裕がなくなると焦ってしまいます。車出社で時間に余裕がないのに道が混んでて普段使わない裏道使ったらT字路で右から来る車を見落として衝突する、というようなことが起こらないようにしないといけません。

課題としては、寝起き時の僕はめっちゃ頭悪いことです。頭悪いというか1分でも多く寝ることしか考えてません。出発までのマージンが5分だったら、あと5分寝れるな、と考えて二度寝します

元記事を表示

Lambdaで日付を扱うときにはまった話

## タイトルの結論
LambdaのtimezoneはUTC(協定世界時)がデフォルトなので、時間を扱うときに時がずれていました。
なので、timezoneをasia/tokyoにする必要がありました。

## Lambdaでtimezoneをasia/tokyoにする方法
Lambdaの環境変数に、
変数名に `TZ`をセットします。その値に `Asia/Tokyo` を設定します。

Lambdaで環境変数を使う方法は以下のURLを参照ください。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-envvars.html

元記事を表示

AWS EC2インスタンス内からRDSのMySQLにログインする

EC2インスタンスのターミナルからRDSのMySQLにログインする

# 目的

– EC2インスタンス内からRDSのMySQLにログインする方法をまとめる

# 実施条件

– EC2インスタンスとRDSインスタンスのセキュリティグループ設定やIAMの設定が正常に行われていること。
– RDSインスタンスのエンドポイント、MySQLのユーザ名、MySQLのユーザに紐づくパスワードがわかっていること。

# 詳細

1. EC2のインスタンスにsshでログインする。
1. 下記コマンドを実行してMySQLにログインする。

“`terminal
$ mysql -u devjtekt -p -h エンドポイント
“`
1. ログインパスワードを問われたら入力する。

元記事を表示

AWS ソリューションアーキテクトアソシエイト向け問題 セキュリティ編

## 概要

今回は会社の後輩向けにAWS ソリューションアーキテクトアソシエイト向けの問題を作成したのでそちらの公開を。
元ネタは公式の問題、BlackBelt、公式サイトなどからとっております。内容としては簡単すぎかもしれません・・・

## KMS

* KMSの特徴について説明している文で以下の中から正しいものを1つ選択してください。
1. 複数のリージョンで同一のキーを使用できる。
1. 顧客側がキーを提供しサーバで暗号化を実施できる。
1. EBSを暗号化する際は作成済みのEBSについても暗号化できる。
1. 複数のアカウントで暗号化キーを共有することはできない。
1. キーのローテーションは自動でのみ実施される。

回答

* 正解は

2. 顧客側がキーを提供しサーバで暗号化を実施できる。
* 顧客側がオンプレ環境の暗号化を使いたい場合でも対応できます

* 以下不正解の理由

1. キーはリージョン単位のため別のリージョンに移すとき

元記事を表示

AWS ソリューションアーキテクト・アソシエイトの勉強

AWS ソリューションアーキテクト・アソシエイトを以前とった時の勉方法を記載します。
私の場合の勉強期間は2~3週間ほどでした。それまで実務でのAWS利用はありませんでした。

### 教材
・AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

・(Udemy)【SAA-C02版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)
https://www.udemy.com/course/aws-knan/

### 勉強方法
①オレンジ本(AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト)を何周か読んで本の内容を大体理解します。一周目は時間がかかるかもしれませんが、2週目以降から楽になってきます。

②Udemyの問題集(390問)を使います。この問題集は65問×6個つで構成されています。
この問題

元記事を表示

【AWS】ソリューションアーキテクト-アソシエイト(SAA)合格記

#はじめに
AWS認定試験-ソリューションアーキテクト-アソシエイト(SAA)に合格したので、合格までの道のりを残しておこうと思います。
CLF合格記は以下をご覧ください。
[【AWS】クラウドプラクティショナー(CLF)合格記](https://qiita.com/nnydtmg157/items/6c66a23d6b4c544cfcb2)

SAAはCLF合格後すぐに勉強を始めました。

#What’s SAA?
まずは、SAA試験について
[AWS認定 ソリューションアーキテクト – アソシエイト](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)

上記サイトによると、認定によって検証される能力は以下のようです。

* AWS のテクノロジーを使用して安全で堅牢なアプリケーションを構築およびデプロイするための知識を効果的に証明すること
* 顧客の要件に基づき、アーキテクチャ設計原則に沿ってソリューションを定義できること
* プロジェクトのライフサイクルを通して、ベス

元記事を表示

【Rails】RailsアプリをAWSへデプロイする際に特定のgemがあることでCMake Errorになりデプロイできない場合

#### 環境

– Rails 6.0.3
– ruby 2.6.6
– AWS
– EC2
– nginx
– Capistrano

## 内容
`Rails`アプリを`AWS`へデプロイする際に、特定のgemがあることで、**CMake Error** となり、デプロイに失敗したときのメモです。

今回の場合、特定のgemとは`qiita-markdown`になります。

## 説明
下記コマンドでデプロイを実施。

“`ruby:ローカル環境のターミナル(Railsアプリのルートディレクトリ)
$ bundle exec cap production deploy
“`
その後途中まで順調に進みますが、`bundler:install` の部分でエラーがはかれ、デプロイに失敗しました。
エラー文が長いので割愛しますが、原因に直結する部分だけ載せます。

“`:エラー文

———– 略 ———–

元記事を表示

【AWS】クラウドプラクティショナー(CLF)合格記

#はじめに
少し前のことですが、AWS認定試験-クラウドプラクティショナー(CLF)に合格したので、合格までの道のりを書いておこうと思います。

#About Me
私はSIer2年目で、オンプレサーバー設計・構築を行っています。
パブクラの知識・経験は0からのスタートでしたが、何とか1発合格することができました。

#What’s CLF?
まずは、クラウドプラクティショナーについて
[AWS認定試験-クラウドプラクティショナー](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)

上記サイトによると、認定によって検証される能力は以下のようです。

* AWS クラウドとは何かということ、およびベーシックなグローバルインフラストラクチャについて定義できる
* AWS クラウドのベーシックなアーキテクチャ原理を説明できる
* AWS クラウドの価値提案について説明できる
* AWS プラットフォームの主なサービスと一般的なユースケース (例: コンピューティング、分析など) について説明できる

元記事を表示

Railsアプリのデプロイで「応答時間が長すぎます。」のserver errorに出くわした話

#概要

Railsアプリを本番環境(AWS/EC2)にデプロイしようとIPアドレスでサーバーへ接続した際、「このサイトにアクセスできません。●●(IP),応答時間が長すぎます」とのエラーで長時間ハマったため、備忘録 兼 同じ境遇の方の参考になればと思い投稿しました。

#結論 : config.force_ssl = true を有効にしていたのが原因

“`ruby:qiita.rb
config.force_ssl = true
“`

元記事を表示

seleniumとheadless-chromiumを使ってaws上で情報送信botを作った話

基本的には、以下のページを元に作成していきました。
何点か躓いた場所があったので、その点だけ備忘録として残しておきます。

> 毎朝5時にGoogle Formに自動回答したい
> https://qiita.com/kota-yata/items/9d4124ec7a7dd4e3d4f0

> AWS Lambda(Python)でSelenium + Headless Chromeの実行
> https://masakimisawa.com/selenium_headless-chrome_python_on_lambda/

## つまづいた点
### headless-chromiumのサイズオーバー
#### 詳細
layerへのuploadの上限が50MBであったが、最新バージョン(v1.0.0-57:2020/11/21時点)のサイズが50MB以上あり、lambdaのlayerへのupload上限である50MBを超えてしまっていた。

#### 対応
一つ前のバージョン(v1.0.0-55)の方がサイズが小さく、45MBほどであったため、そちらを採用した。

http

元記事を表示

AWSのEC2インスタンスにカラム名の変更が反映されているのに変更前のカラム名がunknown attributeだというエラーが出る

## 起きたこと
データベースのカラムを変更するため、マイグレーションファイルを書き換えました。
その後、自動デプロイツールであるCapstranoでデプロイを更新しました。
動作を確認したところ、カラムを変更したフォームに入力する画面に遷移しようとした時に、unknown attributeというエラーが出ました。

## 結論
teratailで質問をしたところ「アプリケーションサーバーの再起動はできているのか」とアドバイスいただきまして、Unicornのプロセスを確認したところ起動していませんでした。
Uniconが起動していなかった原因はわかりませんが、起動したところエラーがなくなり変更したカラムにも値が保存されるようになりました。下の図のようにアプリケーションサーバーが起動していなかったため、ビューなどは表示できたが、処理を行ったりDBへアクセスができずエラーになったと考えました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693815/7715dddd-f64c-812d

元記事を表示

Golangはじめて物語(第5話: DynamoDBで1MB以上のアイテムリストをクエリする)

# はじめに
Golang + DynamoDB は高速で便利!だが、DynamoDB のアトリビュートと Golang の map の関連が分かりにくかったり、慣れないとハマりどころがけっこうある。

今回は、1MB以上のアイテムリストを取得するクエリを発行する場合のコードを書いてみる。

# DynamoDBのテーブル定義
以下のようなテーブルを用意する。
– idをハッシュキーとする
– nameをレンジキーとする
※実際のデータモデルでこんなものは滅多にないと思うが、同じIDに複数の名前が連なっているというモデルを考える。

今回、簡略化するために、同一 ID で異なる 1000Byte の name 1500 レコードある状態で、ID 指定のクエリを発行して、name の一覧を取得するような Golang のソースを書く。

# ソースコード
“`golang
type item struct {
Id string `dynamodbav:”id”`
Name string `dynamodbav:”name”`
}

func main() {

元記事を表示

AWS Certified Solutions Architect – Associate(SAA) 合格記

## はじめに

2020年3月頃の話です。
DVA試験を受けようと思いその前に、
SAA試験でどれくらい勉強に時間がかかって、どんな教材を使っていたのか振り返るために書きました。

## 受験のきっかけ

今までレガシーな技術に触れることが多く、精神的に参ってしまうことが多々ありました。
なんとかモダンな技術に触れる機会を作れないかなと考えていましたが、
自分に技術力がないことには何もできないですし、
今後、バックエンドの開発者としてやっていくにはAWSは必須な技術かなと思って受験することにしました。

## 学習前のスキルセット​
“`
* 業務でのAWS経験なし
* プライベートでもAWSに触れたことがない
* EC2,S3という名前すら聞いたことがないレベル
“`

## 学習期間と勉強方法

12月から3月の試験まで約90時間程、費やしました。

### 12月頃:書籍 (約20時間)
とりあえず、AWSとはどんなものかとっかかりとして書籍を選びました。
通勤の合間に数冊読んでみましたが、
どの本も内容にそれほど差はなかったので1冊で良かったかなと思います。

個人的に

元記事を表示

AWS AmplifyでAndroidアプリ構築

はじめに

業務でサーバーサイドとのやり取りをGraphQLを使ってやってみようということになり、AndroidアプリにAWS Amplify CLIとAndroid用AWS SDKを導入しました。

今回AWSの各サービスを統一して利用するため、Cognito認証を使います。

### 開発環境
– MacBook Pro 10.14.1
– Android Studio 3.2.1

公式ドキュメント

Amplify Android SDK Getting Start
https://aws-amplify.github.io/docs/android/start

事前準備

1. Node.jsとnpmがマシンにインストールされていない場合はインストールします。
2. 導入したAndroidアプリのディレクトリへ移動しAmplify Command Line Interface (Amplify CLI)をインストールします。 

“`bash
$ cd ./YOUR_PROJECT_FOLDER
$ npm install -g @aws-amplify

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事