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

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

aws設定メモ(インスタンスへのElastic IP アドレスを割り当て)

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに関連付けられた自動割り当てパブリック IP アドレスが、インスタンスを停止して起動するたびに変わります。このような場合でも変わらない静的なパブリック IP アドレスを、EC2 インスタンスに割り当てるにはどうすればよいですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-associate-static-public-ip/
下記サイトのElastic IP アドレスを割り当てをクリック

更に下記サイトの割り当てをクリック
AWSのインスタンスにLaravel環境を構築する

#インスタンスを作成

#必要なパッケージをインストール
## Docker
## Docker-compose
“`bash
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
“`

## Dockerイメージ(Laradock)

“`bash
git clone https://github.com/Laradock/laradock.git
cp env-example .env
docker-compose up -d nginx mysql phpmyadmin redis workspace
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

“`

元記事を表示

【AWS不正利用】1日で20万円以上の請求が届いてから免除されるまで

## 結果
結果からご報告すると

**AWSスタッフのご厚意で、不正利用された分の料金は免除になりました!!**

本当にAWSさんには感謝しているとともに二度とこういったことがないようにセキュリティを見直します…

ということでこれを見ている中にも心当たりがある方がいるかもしれないので、順を追って起こったことをお話致します。

## おかしなメールにて発覚

事の発覚は免除される約一週間前

**Your AWS account has been compromissed!**

という見慣れない件名のメールが届いたことから始まりました。

もともとcloudwatchを使用し使用料が予算に近づくとアラートメールが送信されるように設定していたためメールはよくチェックしていたのですが、こんな文面でのメールは初めてでした…

ん!?

不正利用!?やばいやばい!

と思いすぐさまAWSの請求額をチェック。

すると…

特に金額の増加は無しでした。

これが罠とも知らずに

一応念のためAWSルートユーザーを削除しシークレットキーを新しく発行しました。

## 【AWS Bu

元記事を表示

10秒でwordpress環境を作れる!Amazon Lightsailを使ってみた

## Amazon Lightsailとは
AWSが提供するVPSです。
タイトルでも触れているWordPress以外にもLAMP,Node.js,GitLab,Redmine等
事前に設定されたアプリケーションまたは開発スタックをクリックして起動できます。

### メリット
– 早く簡単にできる
LightsailはおそらくAWSでwordpress環境を立ち上げるのに一番簡単なサービスです。

– 料金の見通しが立てやすい
[料金体系](https://aws.amazon.com/jp/lightsail/pricing/)は月額固定で非常にシンプルです。
データ転送枠を超えた場合はさらに課金されますが、超過分に関してもEC2等とほぼ同等の料金となっています。

– ドキュメントが易しい
Lightsailのドキュメントは[こちら](https://lightsail.aws.amazon.com/ls/docs/ja_jp/all)に
ありますが、他のAWSのサービスよりも初心者向けでわかりやすい印象を受けます。

### デメリット
– スケールしづらい
例えば、EC2の

元記事を表示

2回目でなんとか受かったAWS SAA-C02の思い出

## SAA-C02とは
[AWS 認定 ソリューションアーキテクト – アソシエイト](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)のことであります。
15,000 円(税別)というなかなかお値段する試験を2回目でなんとか合格できたので、まとめておこうと思います。

## 元々のAWS力と学習期間
* もともと触ったことあったサービス
* IAM : ロールとかポリシーとかどんなもんか知ってたぐらい
* EC2 : インスタンス立てて, sshぐらい
* RDS : Lambdaとつないで、RDSプロキシとか触ってた
* Lambda : [音声ファイル文字起こし](https://qiita.com/haruhiko28/items/99d3469515f567e7ef19)とかしてた
* S3 : 普通にデータ保存しとく用で使ってた
* SNS : なんかSMS飛ばして遊んだりしてた
* VPC : インタ

元記事を表示

AWS ECRでAWS CLIの認証で弾かれた問題

# なにこれ
AWSのECRへ認証するコマンドを叩いた時に、下記のエラーが発生したのでその対策

## エラー文
`auth error An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation: The security token included in the request is invalid. Error: Cannot perform an interactive login from a non TTY device`

訳)auth error GetAuthorizationToken操作の呼び出し中にエラーが発生しました(UnrecognizedClientException):要求に含まれているセキュリティトークンが無効です。エラー:TTY以外のデバイスからインタラクティブログインを実行できません

はい、訳を読んでも意味が分からないです。
セキュリティートークンが無効だから、認証系の問題かな?と予想。
とりあえず、エラー文をは

元記事を表示

Cognitoで学ぶ認証・認可 in AWS

# この記事について
Webアプリのアクセス制御を行いたい!となったときに学ぶべきなのは認証・認可の仕組みです。
AWSにはAmazon Cognitoというユーザー管理を行うための仕組みが存在し、これを利用すれば「実装するだけなら」簡単にアプリのアクセス制御を行うことができます。

この記事では「Cognitoが実際に何をやってくれているのか?」というところまで掘り下げながら、簡単なReactアプリを作っていきます。

## アジェンダ
1. Cognitoのユーザープールを作って触ってみる
2. Reactアプリに認証の仕組みを入れてみる
3. Cognitoで認証済みの人だけが叩けるAPIをLambda + API Gatewayで作る
4. CognitoのIDプールを作り、AWSでの認可の仕組みを学ぶ
5. Cognito IDプールで認可された人だけが叩けるAPIをLambda + API Gatewayで作る

## 使用する環境・バージョン
– React: 16.13.1
– aws-amplify: 3.3.1
– aws-amplify-react: 4.2.5

元記事を表示

DockerのlogをAWS CloudWatchに紐付けしリアルタイムに監視する。

# はじめに
AWS EC2内のDockerコンテナ上で動くサービス(docker-composeで管理)のログをCloudWatchLogsに投げ、VSCodeでリアルタイム監視ができるまでの手順をまとめる。

– Dockerのlog driverについて
– CloudWatchLogsへの登録
– VSCodeのAWS拡張についてとログの閲覧

## Dockerのlog driverについて
Dockerの標準機能で`/var/lib/docker/containers/`にコンテナ内のログを出力するようになっている。そのため、Linuxの`logrotate`等を使用する必要はない。
docker-composeでの実装例は以下の通り。

“`yaml:docker-compose.yml
version: “3”
services:
hello:
image: “busybox:latest”
logging:
driver: “json-file”
options:
max-size: “10m”

元記事を表示

CloudWatchEventsのインプットでBatchのジョブ定義をオーバライドする

CloudWathEventsru-ルール で AWS Batchでバッチ処理を実行する構成では、CloudWatchEventのルール設定の「input」パラメータで、入力パラメータを設定できます。
さらに、入力パラメータ以外に、ジョブ定義のvcpuや環境変数などのパラメータのオーバーライドも可能ですのでその方法を紹介したいと思います。

# TL:DR;

– CloudWatchEventルールのターゲット`Input`に`ContainerOverrides`を追加する
– ex)パラメータ`Env`の定義および、ジョブ定義のVcpuを4,メモリを2048に上書きする場合の`Input`
– `{“Parameters” : {“Env”:”Prod” },”ContainerOverrides”: { “Vcpus”:4, “Memory”:2048}}`

# 利用用途

– 一つのジョブ定義を使いまわしたいが、条件によっては環境変数やvcpuなどの一部のパラメータを変更したい場合
– 一部の環境変数の変更やvcpuの変更程度あればジョブ定義

元記事を表示

VirtaulBox上のOpenAMによるSAMLでのAWSへのログイン

第一弾として、[こちら](https://qiita.com/kobesuzuobu/items/476ffd493fa23745e958)の記事で、macOS上のVirtualBoxでOpenAMをインストールして動くところまでを記載しました。この記事では、このOpenAMをSAMLのIdPとして用い、AWSマネジメントコンソールにログインできるようにするところまでを記述します。
![federation-openam-aws.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403324/389aabe4-db98-6a2c-8619-f670df915845.png)

この構成にした背景を少々。

* 多くの企業では、ハイブリッドクラウド環境が採用されており、オンプレミスにも従来から利用している多くのアプリケーションが残っている。
* この状況では、それらのアプリケーションへのログイン認証のための統合ID環境もオンプレミスに残っているケースが多いと思われる(少なくとも私のいる会社ではそう)ため、今回

元記事を表示

【備忘録】EC2上のMySQLにMySQL Workbenchを接続する手順

`MySQL Workbench`は便利、されどわかりにくい。
EC2へのSSH接続について、次やるときには忘れてるかもしれないのでメモします。

###筆者の環境

– Amazon Linux2
– MySQL
– RDSは不使用

###手順

`MySQL Workbench`を起動、`スパナマーク`or`+マーク`を押して設定画面を開く。

**各設定内容**

– Connection Name:設定につける名前というだけなので、適当にわかりやすい名前をつける。
– Connection Method:`Standard TCP/IP over SSH`を選択
– SSH Hostname:`:22`という書式で、EC2インスタンスのIPアドレスと、SSHのポート番号を入力(セキュリティグループのインバウンドルールを参照)
– SSH Username:`ec2-user`
– SSH Key File:右側の`…`を押して、秘密鍵を選択するor秘密鍵への絶対パスを直接書く
– MySQL Hostname:localhost
– MySQL Serv

元記事を表示

AWS ALBリスナールール変更

リスナールールでターゲットグループを重み付け指定するコマンド

“`cli:
aws elbv2 modify-rule \
–rule-arn “” \
–actions \
‘[{
“Type”: “forward”,
“Order”: 1,
“ForwardConfig”: {
“TargetGroups”: [
{ “Weight”: 1, “TargetGroupArn”: “” },
{ “Weight”: 0, “TargetGroupArn”: “” }
]
}
}]’
“`
[aws:modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html)

元記事を表示

Amplifyでcognito(ソーシャルIDP)使うときにデプロイがうまくいかないケース

cognitoでソーシャルIDP(Facebook, googleログイン等)を使ったログインを実装中にハマったのでメモ。

## :skull: 問題

amplify consoleでビルドログを見ると下記のようなエラーが出る。

“`
2020-09-28T14:15:05.671Z [WARNING]: – Fetching updates to backend environment: develop from the cloud.
2020-09-28T14:15:05.891Z [WARNING]: ✔ Successfully pulled backend environment develop from the cloud.
2020-09-28T14:15:05.915Z [WARNING]: ✖ There was an error initializing your environment.
2020-09-28T14:15:05.917Z [INFO]: Failed to pull the backend.
2020-09-28T14:15:05.919

元記事を表示

AWSで複数アカウントを切り替えて使う(Swith Role)

AWSで運用を始めると、開発環境と本番環境でAWSアカウントを分けて利用することがあるかと思います。複数アカウントで作業を始めると切り替えが、かなり面倒になってきますよね。

そこで、AWSにはスイッチロールという仕組みがあるので、ちょっと試してみましょう。

# スイッチロールとは
所有する異なるAWSアカウントでクロスアカウントアクセスを設定することで、あるアカウントからサインアウトして別アカウントへサインインする必要が無くなります。また、アカウントごとにIAMユーザーをを作成する必要がなくなります。

公式ドキュメントの “[IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)”で上記のように説明されています。

![AWSクロスアカウント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws

元記事を表示

BotkitでAWSのリソースを取得する

Botkitの簡単な使い方をAWSのAPIとTypeScriptを使って説明します。
今回はSlack連携はせず、簡単なWebエンドポイントを作って確認します。

サンプルリポジトリをおいて置くので、気になる人はCloneして使ってみてください ?

– https://github.com/fnaoto/botkit-typescript-aws-sample

## Botkitの始め方

まずはBotkitをTypeScriptで使えるようにします。

“`shell
## ライブラリのインストール

$ yarn add botkit # yarnの代わりにnpm使ってもOKです
$ yarn add typescript
$ yarn add botbuilder-adapter-web
$ yarn add aws-sdk

## tsconfigの作成

$ npx tsc –init
“`

tsconfigはこんな感じに修正します。
詳しくはこちらの記事を参照ください。
– https://qiita.com/ryokkkke/items/390647a7c26

元記事を表示

CloudFront + S3 で SPA 環境を構築

個人メモ
時間があれば、もう少し詳しく書く。

CloudFront, S3 のデフォルトで index.html を設定する方法があるが、
HTTPステータスコードが変な感じになるので、lambdaEdgeで対応

CloudFrontのDefaultにlambdaEdgeを指定。
それ以外は、lambdaEdgeを呼ばない様に。

参考
https://hackernoon.com/how-to-host-a-single-page-application-with-aws-cloudfront-and-lambda-edge-39ce7b036da2

元記事を表示

Terraformのjsonencode関数にはJSONを入れても動くよ

※この記事はTerraform v0.12系で検証してます。

## はじめに

まずはこちらをご覧ください。AssumeRoleを定義したこのコード、assume_role_policyにはjsonencode関数を使っていてその引数としてJSONをベタ書きしています。

“`terraform
resource “aws_iam_role” “test_role” {
name = “test_role”
assume_role_policy = jsonencode({
“Version” : “2012-10-17”,
“Statement” : [
{
“Effect” : “Allow”,
“Principal” : {
“Service” : “ecs-tasks.amazonaws.com”
},
“Action” : “sts:AssumeRole”
}
]
})
}
“`

なんとこのコード、ちゃんとApplyできるん

元記事を表示

AWS SAAでインスタンスファミリーの選び方を攻略

#はじめに
現在、SAA試験の合格に向けて勉強していますが、インスタンスファミリーの選択を問う問題が出題されます。
aws公式で`約30種類`確認したが、全部の用途・機能について覚えるのはしんどい。試験によく出るところだけ覚えたい。
今回は、試験合格を意識してニーズや用途に合ったインスタンスファミリーを厳選して、一覧にまとめてみました。

#5つのカテゴリー
インスタンスファミリーは大きく5つのカテゴリーに分類できる。

+ 汎用
+ コンピューティング最適化
+ メモリ最適化
+ 高速コンピューティング
+ ストレージ最適化

##汎用
この分類には「Ax」「Tx」「Mx」シリーズが該当する(**頭文字はATMって覚えるとよいかも**)。
汎用インスタンスは、CPU、メモリ、ネットワークのリソースバランスが取れた基本的なタイプ。
インスタンスのリソースを同じ割合で使用するアプリケーションに最適。

| インスタンスファミリー| 特徴 |
|:———–|:————|
| Axシリーズ(A1しかない)| AWS Graviton プロセッサで動作する初の E

元記事を表示

何も考えずにEC2にDjango×SQLite3×nginx×gunicornな環境を構築する

# はじめに
AWSのEC2上でDjangoプロジェクトを展開しようとして丸一日悩んでしまったので、手順をまとめました。あくまでも自己責任でお願いします。

# やったこと
EC2インスタンスを立てて何も考えずにDjangoを動かして、ネット上からアクセスできるようにする。
今回はSQLite3,nginx,gunicornを使います。

# 注意
– ec2-userをそのまま使っていたり、セキュリティ的に怪しい所があるため注意すること。**今回はAWSでdjangoプロジェクトをとりあえず動かせるようにすることを目的とする。**
– VPC、サブネット、インターネットゲートウェイの設定はすでに完了していて、EC2自体はネットから参照できる状態になっている所からスタートする
– ssh(22)、HTTP(80)とDjango用(8000)のポートが開放されている状態を前提とする
– DBはSQLite3を使用する。また、**SQLite3のバージョンを最新にするため既存のソフトウェアでSQLite3を使用している際は注意すること。**
– Djangoの管理者画面がスタイルシートなど

元記事を表示

ドメイン取得とSSL証明書を導入してWEBサーバを公開

## はじめに

これからインフラエンジニアを目指す人や契約したサーバを公開したい人にとって
役にたつ資料になればと思い投稿しました。使うものは以下です。

・Server:固定GlobalIPアドレス、Apacheインストールを事前に行ってください。
・Freenom:無料でドメインを取得できるサービスを提供。1年間であれば無料でドメインを利用できます。
・Let’s Encrypt:90日間有効な無償SSL/TLSサーバー証明書を発行できます。

## FreenomeにてDomainの取得

1) [Freenom](https://www.freenom.com/ja/index.html)にアクセスし、アカウントを作成します。
2) アカウントを作成したら、Services → 登録をクリックします。
3) 新しい無料ドメインを探しますで、取得したいドメイン名を入れます。
4) 取得可能ドメイン一覧が表示されますが無料のやつから「今すぐ入手!」をクリックします。
5) カートに入ったらチェックアウトをクリックします。
6) 登録時に以下画面が表示されます。
・Use DNSを

元記事を表示

OTHERカテゴリの最新記事