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

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

AWS RDSに作成したMySQLに対して外部から接続可能にする

# 概要

今回は初心者向けにAWSのRDSに作成したMySQLのDBに対して外部から接続する方法まで説明します。
外部から接続するにあたり、A5Mk2を使用します。

では、さっそく捌いていくっ!

# データベースの作成

後にも先にもまずは、データベースを作成しましょう。
画像を例に進めてみましょう。

![01_データベースの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222607/0ca4eab7-c361-6168-96c8-16f60a1ff23a.png)

まずは、「データベースの作成方法を選択」から「標準作成」を選択します。
「エンジンのオプション」として、今回はMySQLを使用します。
「バージョン」は任意で構いません。特に理由がない場合は、最新バージョンを選びましょう。

# テンプレート選択と接続情報設定

「テンプレート」は用途によって選択してください。
筆者は「テンプレート」を「本番稼働用」を選択しました。
※ 欲張ったスペックにすると課金料金が大変な事になるので、

元記事を表示

AWS CodePipeline勉強メモ① ハローワールド

## はじめに

AWS CodePipeline 全然わからないので調査

## 参考

– [【AWS】CodePipelineから呼び出したLambdaがずっと進行中になっている問題と対応](https://qiita.com/hassoubeat/items/f2f89eae2c26cdc06433)
– [CodePipeline で パイプラインに AWS Lambda 関数を呼び出す](https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/actions-invoke-lambda-function.html)
– [CodePipelineからAWS Lambdaを呼び出してCloudFrontのキャッシュを削除(Invalidation)してみた](https://dev.classmethod.jp/articles/cloudfront-invalidation-using-codepipeline-custom-action/)

## 構成図

こんなの作る。

![image.pn

元記事を表示

AWSの自社認証局への移行に備える方法

タイトルは思いつかなかったのでパクりました。

`[Action Required] Amazon S3 and Amazon CloudFront migrating default certificates to Amazon Trust Services in March 2021` というメールが飛んできており、何をしたらよいか?と聞かれたので調べました。TLS接続ができなくなるなんて考えてもなかったので漠然と大丈夫だろうとは思ってましたが、いざ聞かれると不安だったので。

結論としては利用しているアプリケーションによるとしか言えません。アプリによってルート証明書の管理の仕方が違うからです。
詳しくはAWSのBlogで「[AWSの自社認証局への移行に備える方法](https://aws.amazon.com/jp/blogs/news/how-to-prepare-for-aws-move-to-its-own-certificate-authority/)」という記事があるので読みましょう。

概要
==========

メール中にあったAWSのBlogの「[AWS

元記事を表示

デプロイ

##GithubにSSH鍵を登録
アプリケーションのコードをGithubからEC2サーバへクローンします。全世界に公開できるIPアドレスを持ったEC2サーバ上でアプリを動かすためです。
現状、EC2サーバにアプリケーションのコードをクローンしようとしてもpermission deniedとエラーが出てしまいます。
これは、Githubから見てこのEC2インスタンスが何者かわからないためです。
EC2インスタンスからGithubにアクセスするためには、作成したEC2インスタンスのSSH公開鍵をGithubに登録する必要があります。
SSH鍵をGithubに登録すると、Githubはそれを認証に利用し、コードのクローンを許可してくれるようになります。
EC2インスタンスからGithubにアクセスするためには、作成したEC2インスタンスのSSH公開鍵をGithubに登録します。
SSH鍵をGithubに登録すると、Githubはそれを認証に利用し、コードのクローンを許可してくれるようになります。
これからターミナル(ローカル)とターミナル(EC2サーバ)を使いますので、ターミナルでcomma

元記事を表示

EKSのRBACによる認証にAWS SSOで発行されるIAMRoleを使用する

## はじめに

 社内でAWS SSOが導入されたことで、[EKSの管理者権限の管理方法について](https://qiita.com/Ichi0124/items/8e9325f7bb0305cfe843)の記事を見てくださった社内の方から、SSOで発行されるIAMロールでRBACの認証をすることはできますか、と問い合わせをもらったので調べました。
 結論としてはできます、むしろすごく運用が楽になったので是非ともやるべき、とお勧めできるのですが、ハマりポイントがあったので備忘を兼ねて記事にします。

## やったこと(うまくいかなかったパターン)

成功したパターンを書く前にうまくいかなかったパターンから紹介します。

### 手順1 aws-authにIAMRoleを追加

 AWS SSOから発行されたIAMRoleをRBACで認証するためにConfigMapのaws-authを更新するためのマニフェストファイルを作成します。作成後、`kubectl apply`コマンドで適用します。

“`yaml

apiVersion: v1
kind: ConfigMap
metad

元記事を表示

DBとAPIサーバのパフォーマンスチューニングの調査

## はじめに
– 業務で、**DBとAPIサーバ**のパフォーマンスチューニングを行う予定なのですが、全く行ったことがなかったので、どのような手順や方法で進めていくのか調べてみました。

## 目次
1. パフォーマンスチューニングとは
2. パフォーマンスチューニングの種類
3. SQLチューニング
4. indexチューニング
5. auroraについて
6. APIサーバ側のチューニングについて

## 1. パフォーマンスチューニングとは
パフォーマンスチューニングの説明として、一番しっくりきました。

> システムの**処理性能**や**信頼性**を高めるために,システムの動作環境を**最適化**することです。パフォーマンスチューニングを実施することで,システムの性能を最大限に生かし,安定稼働させられるようになります。
>
> [Cosminexus V9 アプリケーションサーバ システム構築・運用ガイド](http://itdoc.hitachi.co.jp/manuals/link/cosmi_v0970/03Y0260D/EY020046.HTM)

一般的には

元記事を表示

ツイッター風Railsアプリをデプロイする(前編:unicornのみで取り急ぎ繋げよう)

# この記事の基本的な方針
この記事は、[過去記事](https://qiita.com/annaPanda8170/items/844684cb739f99d3f114)で作ったアプリをEC2でデプロイします。
手を動かしながら読みたいようでしたら、以下でこのアプリを手に入れてください。

“`bash:Terminal
$ git clone https://github.com/annaPanda8170/cheaptweet.git
$ bundle install
$ bundle exec rake db:create
$ bundle exec rake db:migrate
“`
これ自体の作り方は、[こちら](https://qiita.com/annaPanda8170/items/844684cb739f99d3f114)。
Rails5.2.4.2_でのみ動作確認しています。
基本解説はしません。手順のみ示します。
# 想定する読み手
既に一度Railsアプリをチュートリアルやスクール等で作りデプロイしたこのある方を想定しています。
Mac使用で、パソコンの

元記事を表示

AWS CLI で EC2 インスタンスプロファイルを作成する方法

# はじめに

よくインスタンスプロファイルと IAM ロールを同じものと考えている人がいますが、厳密には異なります。
マネージメントコンソールを使用して EC2 インスタンスに IAM ロールを設定すると、自動的に IAM ロール名と同じインスタンスプロファイルが作成されるので、あまり意識していない人が多いのだと思います。
AWS CLI で EC2 インスタンスに IAM ロールを設定したい場合、インスタンスプロファイルを明示的に作成する必要があります。
イメージとしては以下となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149578/c09e487a-0901-dc3d-6380-d9baf60eb766.png)

# 検証

## 各設定値を予め環境変数に設定
マネージメントコンソールで作成されるインスタンスプロファイルと同様に、IAM ロールと同じ名前のインスタンスプロファイルを作成します。

“`bash
InstanceProfileName=S3Admi

元記事を表示

AWS EC2からFTP アクティブモードでファイル転送する

昨今では使われることもなくなってきたと思われるFTPですが、このFTPは環境によって微妙に使いにくいプロトコルであります。
その原因としてはアクティブとパッシブの2つのモードの存在があります
違いは以下のページが分かりやすいです。
https://www.infraexpert.com/study/tcpip20.html

アクティブモードは環境によって使えないケースが多く(特に所謂NAT越えの場合)、AWS EC2インスタンスからインターネット上のFTPサーバーに通信する時もうまくいきません。
パッシブモードで使えればいいのですが、アクティブモードしか受け付けていないサーバーというのもあるので、どんな状態になっているかちょっと調べてみました。

EC2インスタンスにログイン
まずは普通にログインします。

その後、FTPの通信を確認する為にtcpdumpを実行

“`
sudo tcpdump -A -p host xxx.xxx.xxx.xxx
“`

オプション -A はAsciiで出力。文字列で読めるところは文字列になります。
-p は自ホストに関連する通信のみ

元記事を表示

特定のEC2インスタンスを起動停止するだけのアカウントをもっと簡単に作成する

[AWSで特定のEC2インスタンスの起動停止だけ出来るIAMアカウントを作成する](https://qiita.com/Hotspring_r/items/8b4c228e93d211c1f689) で特定のEC2インスタンスだけ起動停止できるアカウントの作り方をご紹介しましたが、アカウント作成までの手順をCloudFromationで自動化しました。

https://ap-northeast-1.console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/create/review?templateURL=https://s3-ap-northeast-1.amazonaws.com/static.bmscr.com/qiita/ec2boot.template&stackName=EC2Boot
を開くと CloudFormation のテンプレートが既にセットされた状態でスタックの作成画面が表示されます。
ログインパスワードを入力しIAMリソースが作成されることの同意のチェックを入れ、スタック

元記事を表示

CloudTrailで操作ログを設定する

今回はCloudTrailを使って操作ログを設定する。CloudTrailは無料だけど、ログが記録されるS3は少し料金が発生するのでお金をかけたくない場合は無視でOK。

#操作ログの設定
マネジメントコンソールでCloudTrailを検索。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/31e40db1-590f-cedc-727b-2ae2df5606ed.png)
「証跡の作成」を選択。最近のイベントでログを確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/0fc9a9be-f9ed-6007-f97a-d52fb49156ab.png)
認証名を設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/d6f74f77-f7cb-1b9

元記事を表示

【SRE/S3】まあまあ便利!削除してしまったオブジェクトを復元

## 手順
– バージョニングを有効にする
– オブジェクトを削除する
– 削除マーカーを削除する

下記を主に参考にします。
[削除した S3 オブジェクトを復元する方法](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/undelete-objects.html)

またS3の全体像に関しては下記が参考になります。
[AWS再入門 Amazon S3編 \| Developers.IO](https://dev.classmethod.jp/articles/cm-advent-calendar-2015-aws-re-entering-s3/)

>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148392/5966c54c-1f13-bbcc-a56d-46459700cec2.png)
[AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)](https:/

元記事を表示

AutoScaling の導入 – Nextcloud 環境の構築を通じて AWS での環境構築を体験する⑦ [終]

「Nextcloud 環境の構築を通じて AWS での環境構築を体験する」 の第 7 回 兼 最終回となります。
これまでの記事は下記からどうぞ。

* 【第 1 回】[EC2 と RDS を利用した Nextcloud 環境の構築](https://qiita.com/S_Katz/items/756ca04ecece844ce503)
* 【第 2 回】[ElastiCache サービスの導入](https://qiita.com/S_Katz/items/280642e437c709052781)
* 【第 3 回】[EFS ファイルサーバーへの移行](https://qiita.com/S_Katz/items/5b5f37db29c3f800e610)
* 【第 4 回】[ALB を利用したサーバー負荷分散、可用性向上に向けた取り組み](https://qiita.com/S_Katz/items/edadf33755c0d834eb46)
* 【第 5 回】[分散した EC2 インスタンスのログの集約](https://qiita.com/S_Katz/items/2fa7

元記事を表示

AWS Elemental Media Convertで、動画を一括変換する方法

##はじめに
AWS Elemental Media Convertで動画を変換する際、GUIでは1つずつしか変換できないので、APIを使って一括変換する仕組みを作る必要があります

##詳細
S3に動画を置くのをトリガーに、Lambdaでリクエストして変換したい場合は、公式で公開されている下記のLambdaサンプルソースを使えばいけると思います
https://github.com/aws-samples/aws-media-services-vod-automation/tree/master/MediaConvert-WorkflowWatchFolderAndNotification

今回は変換を任意で実行したかったのと、取得先・保存先をわけたかったので、下記のように実装しました

1. S3に、変換前と変換後の保存先オブジェクトを作る
2. LambdaのテストイベントのJsonに、上記のオブジェクトを設定
3. Lambdaサンプルコードを流用し、テストイベントJsonで設定したオブジェクトを見に行くよう修正
4. Lambdaのテストボタンを押下して、変換を実行する

元記事を表示

学習期間3ヶ月の初学者がポートフォリオを公開してみる。

#### なぜ書いたか?
いつもと変わらぬ1日が始まり、なんとなしに携帯をいじっていると余命診断アプリなるものを見つけました。面白そうだなと思い、ダウンロードして余命を診断してみるとなんとあと51年しか生きられないというではありませんか。
人によってはあと51年もあると考えるのかもしれませんが、なんとなくあと70年くらいは生きられるとのほほんと考えていた私にとってこの51年というのはあまりに少ない。何か後世に残さなければということで筆を…じゃなくてキーボードを叩いているのです。
[余命タイマー](https://apps.apple.com/jp/app/%E5%AF%BF%E5%91%BD%E6%99%82%E8%A8%88-%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E4%BD%99%E5%91%BD%E3%82%92%E3%82%AB%E3%82%A6%E3%83%B3/id878704370?mt=8)

また個人的にAWSの勉強をし始めたのですが、とっかかりに[AWSの漫画](https://aws.amazon.com/jp/campai

元記事を表示

S3とCloudFrontを使ったサイトを公開するために最低限行うべき手順

# 前提
– 公開するドメインを取得していること。説明上、<ドメイン名>と表記。
– 以下に挙げるサービスが利用できるアカウントを持っていること

# 利用するAWSサービス
– S3
– CloudFront
– Route53
– Certificate Manager

# 手順

## 1. 静的サイトホスティング用のバケットを作成

S3を開き、バケットを作成します。

|項目|値|
|:–|:–|
|バケット名|<ドメイン名>|

作成したバケットを選択し、「プロパティ」タブを開く。
「Static website hosting」を選択する。
以下の内容を設定後、保存する。

|項目|値|
|:–|:–|
|このバケットを使用してウェブサイトをホストする|選択|
|インデックスドキュメント|index.html|
|エラードキュメント|(任意)|

## 2. ホストゾーンを作成

Route 53を開き、ホストゾーンを作成する。

|項目|値|
|:–|:–|
|ドメイン名|<ドメイン名>|
|コメント|(任意)|
|タイプ|パブリックホストゾーン|

#

元記事を表示

Amazon Comprehendの感情分析をAWS CLIで行ってみた。

# Amazon Comprehendの感情分析をAWS CLIで行ってみた。
[Amazon Comprehend](https://ap-northeast-1.console.aws.amazon.com/comprehend/v2/home?region=ap-northeast-1#welcome)でできるらしい。

DetectSentimentのところを参照
https://docs.aws.amazon.com/comprehend/latest/dg/API_DetectSentiment.html

今回PythonでやってみるのでPython用のを見る。
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/comprehend.html#Comprehend.Client.detect_sentiment

一番上に何をインポートすればいいか書いてある。
https://boto3.amazonaws.com/v1/documentation/api/latest/r

元記事を表示

2020年 AWS 認定 DevOps エンジニア – プロフェッショナル に効率的に合格する方法

「[AWS 認定 DevOps エンジニア – プロフェッショナル](https://aws.amazon.com/jp/certification/certified-devops-engineer-professional/)」を2020年03月に受験し、合格できましたのでまとめます。

## 試験結果
試験の結果は、800/1000点でした。

合格基準は750/1000点なのでギリギリでした。



![score](https://user-images.githubusercontent.com/55865542/77714617-ca152500-701c-11ea-98c7-9d96a1695e4c.jpg)

## AWS経験
実務ではほぼ触ったことはありませんが、2019年夏ごろから少しずつ学習を進めてきました。

会社の部署でAWS資格取得が推奨されていたため、部署のAWSアカウントを利用してある程度自由(費用が多少かかってもよい)にAWS環境に触れられる学習環境でした。



AWS環境を触って具体的に動かしてみた

元記事を表示

【AWS】Amazon Linux 2にMavenをインストールする方法

# 概要
AWS EC2(AMI: Amazon Linux 2)にMavenをインストールして`mvn`コマンドが使えるようにする

# 環境
– AWS EC2
– OS: Amazon Linux 2
– AMI ID: amzn2-ami-hvm-2.0.20200304.0-x86_64-gp2

# 構築手順
## 1. JDK8をインストールする
– Amazon Linux 2にはデフォルトでJavaが入っていないのでインストールする
– Apache Maven 3.3以降はJDK 1.7以上が必要

“`console
$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64
$ sudo alternatives –config java
$ java -version
openjdk version “1.8.0_242”
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242

元記事を表示

Rails5 AWS EC2とRDS、S3、paperclipを使用したデプロイ

#デプロイ覚書
基本的に下記記事を参考にさせて頂きました。
https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce
https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2

上記記事の中では説明がなく自分がハマった箇所について。
まず
・画像投稿のストレージにS3を使用していた為その設定。
・あとRDSでデータベースを作成する際の文字コードの設定。
・デプロイ終わった後に大幅な修正を見つけてしまった際のやり方

#S3使用時の設定について
https://qiita.com/nakki/items/6df87756ef4119cc3e68
コチラの記事を参考に実装しました。
デプロイ時にハマったのはunicornが起動しなかった。。。
ログを調べると
`Cannot load Rails.config.active_storage.service`
`undefined method fetch for nilclass`
コチラのエラーは同じエラー文での記事が

元記事を表示

OTHERカテゴリの最新記事