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

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

AWS EC2 第2回EC2 InstanceへのSSH接続

#はじめに
前回EC2 Instanceの起動を行いました。
EC2 Instanceを起動後、そのサーバーに対して何を実行させるか?によって実施する内容は色々とありますが、まずはEC2 Instanceへ接続しないことには話は始まりません。
従いまして、今回はそのEc2 InstanceへSSH接続します。

#今回実施する内容
EC2 InstanceへSSH接続します。
![SSH接続図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405480/8e8a9e4e-554a-470f-859d-de8ef0bb5da8.jpeg)

#参考
[Tutorial: Getting started with Amazon EC2 Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html?trk=em_a131L000005jw1jQAA&trkCampaign=pac_EC2_do

元記事を表示

Glue Studio【AWS】

# はじめに

この記事では、2020年9月23日にリリースされた Glue Studio を利用して GUI ベースで Glue ジョブの作成と実行そしてモニタリングを行います。

# AWS Glue
> AWS Glue は、Apache Spark のパワーを使用して分析用のデータセットを準備および処理するサーバーレス環境を提供します。

>       [AWS Glue Documentation](https://docs.aws.amazon.com/glue/index.html)
      [Optimize memory management in AWS Glue](

元記事を表示

VPC内のLambdaからはSES向けのVPCエンドポイントを使用してもBoto3ではメールを送信できない

# 初めに

本記事はタイトルについて検証を行った詳細を記載します

書くきっかけですが、最近久しぶりにVPCと戯れることになりました。
VPCを使った構成ですんなり行った思い出はなく、実際に沼にハマりました。

ポイントをまとめましたので、どなたかのお役にたてば嬉しいです

結論だけ知りたい方は最後まで飛ばしてください

# 検証を行うことになった背景

**VPC内のLambdaからメールを送る**
ただこちらを行いたいだけでした

アーキテクチャとしては以下となります
RDS→Lambda(VPC内)→SES→ユーザー

あまり見ないアーキテクチャですね
RDS Proxyがリリースされてから、LambdaとRDSの組み合わせは使用する頻度が多くなりました
DynamoDBだけでは辛い部分もあるので、今後こちらのアーキテクチャは増えるようになるのではないでしょうか

実装するに当たって、どのようにVPCから外へ出るか調べていました
すると、2020年5月に[SES向けのVPCエンドポイント](https://aws.amazon.com/jp/blogs/news/new-ama

元記事を表示

AWS Lambdaでpythonプログラムの定期実行

#はじめに
AWSのlambdaを使用して、スケジュール実行のプログラムを設置しました。
lambdaの基本的なことで意外とつまったので残しておきます。
AWSのアカウントは作成しているものとしています。

MAC OS X
python 3.6

# 対象
・lambdaを触ったことのない方
・とりあえず何か動かして見たい方

#lambdaとは
スクリプトを実行することが出来るサーバーレスのサービスです。
サーバレスと言ってもスクリプトの実行時にのみサーバを起動するイメージです。

呼び出しはAWSの空いているサーバから行われるため、実行するサーバーは都度違います。
(固定IPを割り当てたサブネットにlambdaを設置して実行することでIPを固定にすることは出来ます)

無料使用枠が月ごとに100万件の無料リクエストと1秒あたり40万GBのコンピューティング時間あるので、たいてい無料枠で動かせます。WebやIOTのバックエンドのAPIとしても使えるのでめちゃくちゃ便利なサービスですね。

#簡易的なスクリプト作成
pythonでLambdaのスクリプトを作成する場合、 **lamb

元記事を表示

IAM Roleがなぜ安全にアクセス権限を委任できるかを理解する

AWSのAPIにアクセスするには、APIへのリクエストに署名する必要があり、署名するための秘密鍵が必要である。IAM Userのアクセス・キーを割り当てることもできるが、AWSのサービス、例えばEC2インスタンスからAPIにアクセスする場合は、IAM Roleを使用すると、秘密情報をホスト内に保存することなく、安全にAPIへのリクエストを行うことができる。

この記事では、AWSの、あるアカウントのEC2インスタンスから、別のアカウントのAWSサービスのAPIをコールする場合を例として、どのようにアクセス権限を委任しているかを順に説明する。

この記事では、以下のリソースを作成するとする。

* アカウント__A__
* アカウントA内のEC2インスタンス__C__
* アカウントA内のIAM Role __Role_D__
* アカウントA内のIAM Policy __Policy_E__
* アカウント__B__
* アカウントB内のIAM Role __Role_F__

## EC2インスタンスAにIAM Roleをアタッチする

EC2インスタンスには、一つだけ I

元記事を表示

AWSを使ってデプロイ

#はじめに
 AWSを初めて使ってみたが、難しすぎる…
 完全に自分用メモ

##EC2のサーバーにログイン

“`
ssh ~ user@ ~ #ユーザー名とElastic IP アドレスの入ったコード
“`

以下、ログイン状態で実行

##デプロイ方法

“`
# 開発中のアプリケーションに移動
cd /var/www/アプリケーション名
“`

“`
# GitHubの内容をEC2に反映させる
git pull origin master
“`

##Unicornの再起動方法
1. プロセスを確認

“`
ps aux | grep unicorn
“`
2. プロセスをkill

“`
kill プロセス番号
“`
3. unicorn_railsコマンドを実行

“`
RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D
“`

##エラーログの確認

“`
sudo less /var/log/n

元記事を表示

【個人メモ】RailsアプリをAWSへデプロイする際につまづいたことまとめ

## index
下記の記事の通りにRailsアプリをAWSへデプロイする際につまづいたことを個人的な備忘としてまとめました。

(下準備編)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce
https://qiita.com/naoki_mochizuki/items/22cfbf4bf7ec95f6ac1c
https://qiita.com/naoki_mochizuki/items/814e0979217b1a25aa3e
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1

## RDSインスタンスが生成できない
RDSの設定をして、「データベースの作成」をクリックすると、こんなエラーが発生。

“`
DB Subnet Group doesn’t meet availability zone coverage requirement. Please ad

元記事を表示

AWS Lambdaを使ってサーバレスアプリを作成(CRUDのR)

記事を閲覧いただき、ありがとうございます。[中村](https://twitter.com/AaTeltel)です!!
2020年10月にAWSエンジニアとして転職したので、AWSの予習も兼ねてLambdaを使ったアプリ作成について書いきます。

### AWS Lambdaとは?
ここでつらつら説明するより[公式動画](https://youtu.be/Hr6ZIvXSZpw)の方がわかりやすいという結論に至りました。まずはご覧ください。
(Qiita記事の中にyoutube動画の埋め込みって出来ないんですねぇ。出来たらいいのになぁ。)

##### 以下を使用して作成ます。

フロントエンド : [Vue.js](https://jp.vuejs.org/index.html)
AWS(インフラ) : [S3](https://aws.amazon.com/jp/s3/), [API Gateway](https://aws.amazon.com/jp/api-gateway/), [Lambda](https://aws.amazon.com/jp/lambda/), [Dyn

元記事を表示

共働き夫婦の月々の精算を自動化してみた

# はじめに
我が家は共働きで、家賃や光熱費・食費等の共通の出費はワリカンです。
共通の出費は一つの口座にまとめて紐づけており、その口座の残高のベース残高から減った分(=使った分)だけ割り勘してそれぞれが振り込む、といったルールとしています。
今回は口座残高の取得やワリカン計算を自動化し、Slackのチャンネルに投稿するような仕組みを作りました。

# やったこと
* AWS Lambda上でHeadless Chrome + Seleniumを動作
* Web家計簿アプリに自動ログインして口座残高を取得
* ワリカンを計算しSlackの家計清算チャンネルにメッセージ送信

最終的にこんな感じのメッセージが投稿されるようになります。

![dousa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575870/3f89cbdb-1652-53b7-380d-16353a8b5a6f.png)

システム概要は以下の図のようになります。

![システム概要](https://qiita-image-st

元記事を表示

Deploying Spark jobs on Amazon EKSをやってみた

# はじめに
EKS上でSparkを動作させる記事を見つけたので、記載されている内容に沿って試してみました。
参照記事:https://aws.amazon.com/jp/blogs/opensource/deploying-spark-jobs-on-amazon-eks/

## やったこと
– S3バケット作成
– IAMポリシー作成
– EKSクラスター作成
– ECRレポジトリ作成
– DockerイメージBuild/Push
– Spark Job実行

## S3バケットの作成
“`sh
aws s3 mb s3://y-smp-bucket01
“`

## IAMポリシーの作成
ポリシーをpolicyファイルとして定義

“`sh:policy
cat << EOF > policy
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “s3:*”,
“Resourc

元記事を表示

EC2にDockerをインストールして起動してみた

# はじめに
EC2 (AmazonLinux2)にDockerをインストールして使ってみた時の備忘録です。
普通はECSやElasticBeanstalkなどのコンテナ基盤を使うと思うので、あまり機会はないかもですが書いてみました。

## EC2でDockerをインストールしていく

EC2にログインします

~~~
$ ssh -i ~/.ssh/****.pem ec2-user@***.***.***.***
~~~

git をインストール

~~~
$ sudo yum install git -y
~~~

Docker をインストール

~~~
$ sudo amazon-linux-extras install docker -y
~~~

Docker を起動

~~~
$ sudo service docker start
~~~

# おわりに

もし `ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running?` みたいなエラーが出ればこちら↓の記

元記事を表示

CDKでAWS 環境の作成 EC2編

## 概要

CDKを使ってAWS環境を作成するときの方法についてまとめていこうと思います。
今回は[前回](https://qiita.com/dmikita/items/f13771b816c6aa019f1e)作成したCDKの定義にEC2の定義を追加して[こちら](https://qiita.com/mongamae-nioh/items/7525be957f4e5e10d403)を参照しAdvendCalendarを公開してみました。

## 準備

* 準備部分は[前回](https://qiita.com/dmikita/items/f13771b816c6aa019f1e)等を参照してください。

* `VPC`を作り直す場合はパラメータストアから値を取得しなおすため`cdk.context.json`を一度削除してください。

## コンパイルの準備
* ライブラリインストール後にプロジェクトを作成したディレクトリに移動して以下のコマンドを実行します。windowsの場合はライブラリのインストール時には停止する必要があるので注意を
* `npm run wat

元記事を表示

【Ruby・S3】DBに保存した画像URL一覧から aws-sdk-s3 を使ってS3に画像を送る

#はじめに

あるサイトから画像URLを収集してきてDBに保存し、画像ファイルをS3に送り、S3のパスをDBに保存してみたので、その時の備忘録です。

– 環境
– OS: Mac
– 言語: Ruby
– 使用 gem: open-uri, activerecord, aws-sdk-s
– DB: MySQL

#概要

#### 1. まず画像URLを収集して保存したDBを用意

以下のような感じです。今回はテーブル名はimagesとしておきます。
Rubyでスクレイピングを行って集めました。

| id | image_url | s3_path |
|:—————–|:——————|:——————:|
| 1 | http://~~~~~ | NULL |
| 2 | http://***** | NULL |
| 3

元記事を表示

AWS Fargateで、タスク定義にAWS FireLensを含めると思わぬ差分が出るという話

# What’s?

AWS FireLens+Fluent Bitを組み込んだAWS FargateクラスターをTerraformで構成した時に、タスク定義で`terraform plan`時に妙に差分が出てきて困ったという話。

なお、原因は不明です。

# お題

Terraformで、AWS Fargateクラスターを構築します。

タスク定義に含めるコンテナは、nginxとしましょう。

最初はnginxのみのタスク定義とし、あとでFluent Bit(AWS for Fluent Bit)も追加します。

この時の`terraform plan`の挙動を見てみます。

# 環境

今回の環境は、こちら。

“`shell
$ terraform version
Terraform v0.13.5
+ provider registry.terraform.io/hashicorp/aws v3.15.0

$ aws –version
aws-cli/2.1.1 Python/3.7.3 Linux/5.4.0-53-generic exe/x86_64.ubun

元記事を表示

【Rails】Capistranoによる自動デプロイで発生したエラー(fatal: not a valid object name: master)

## はじめに
現在プログラミングスクール卒業後、ポートフォリオ作成をしており、
Capistranoを使用した自動デプロイで発生したエラーを備忘録として投稿します。

##### ■開発環境
* Rails 5.0.7.2
* ruby 2.5.1
* AWS EC2
* Nginx
* Unicorn
* capistrano

## Capistrano導入について
下記の記事を参考に、導入しました。
導入方法が分からない方は、私と同様に参考にしてみてください。
[自動デプロイツール(Capistrano)導入方法](https://qiita.com/maru1124_/items/95a91a0c6218b75f75d0)

## 発生したエラーについて
上記の記事を参考にCapistranoを導入し、自動デプロイを実行したところ、途中でエラーが発生しました。

“`:ターミナル(ローカル環境)
# アプリケーションのディレクトリで、下記の自動デプロイコマンドを実行する。
$ bundle exec cap production deploy
“`
自動デプロイコマンド実

元記事を表示

特定のS3の特定のディレクトリ以下だけ読み書き可能なIAMポリシー

## ざっくり要件

– 不要なAWSリソースを見たくない・見せたくないIAMユーザを作成したい
– 特定のS3のapp/以下だけ(重要)
– アクションとしては、ディレクトリ作成、アップロード、ダウンロード、閲覧
– 他のS3バケット名も見せない
– IP制限等は別途
– MFA付き等は今回は除外
– バケット名は参考から名前を流用して `AWSDOC-EXAMPLE-BUCKET`
– S3バケットは東京リージョン

## 個人的なポイント

– バケットポリシー側をいじる必要はなかった
– S3バケットのアクセス許可も `パブリックアクセスをすべてブロック` のままでよい
– 特定のURLでアクセスする必要がある
– https://s3.console.aws.amazon.com/s3/buckets/AWSDOC-EXAMPLE-BUCKET?region=ap-northeast-1&prefix=app/
– S3のバケット一覧からは遷移できない(権限がないため。一部だけ閲覧できるやり方を見つけられなかった)

## IAMポリシー

“`json
{

元記事を表示

知って得する!? AWSのセキュリティ関連サービスをご紹介!

# はじめに
今回はAWSのセキュリティ周りのサービスを紹介します!

# YouTube動画
[【YouTube動画】 知って得する!? AWSのセキュリティ関連サービスをご紹介!](https://youtu.be/B2lJ7SCSK9E)
[![知って得する!? AWSのセキュリティ関連サービスをご紹介!](https://img.youtube.com/vi/B2lJ7SCSK9E/0.jpg)](https://youtu.be/B2lJ7SCSK9E)

# 認証・認可周りのセキュリティ
## IAM
IAMはIdentity and Access Managementの略で、AWSサービスやリソースへ安全にアクセスするための管理サービスです。

IAMではグループ、ユーザー、ロール、ポリシー、IDプロバイダーの権限設定ができます。

Alexaスキルで湯婆婆を実装してみる

# はじめに
何番煎じかわかりませんが、[流行り](https://qiita.com/Nemesis/items/c7192a7c510788d2cba2)に乗らせていただき、Alexaスキルで湯婆婆を実装してみました。

この湯婆婆シナリオは
・名前を聞く(ユーザの入力を受けつける)
  ↓
・名前を与える(情報を出力する)
という流れなので、ユーザとの対話で処理を進めていくAlexaスキルにぴったりなようにも思います。

# 作ったもの
以下で公開しています。
[名前泥棒](https://www.amazon.co.jp/dp/B08N495CQL)

Alexaスキルは自身が著作権を持たないものを題材にはできないため、湯婆婆を名乗ることは当然できません。
そのため、一般的な単語のみで構成されたスキル名にしています。

シミュレータでのスキルの流れは以下です。
![シミュレーション.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114715/fb762425-fb10-49da-f52c-b7b

元記事を表示

AWSのVPCのよく使われるコンポーネントについて

## 勉強前イメージ

一応VPCは作って中にインスタンス作れるけど、あんまりちゃんとネットワーク上こう、っては分かってない
特によく使われるやつでもインターネットゲートウェイはあんまり分かってない
今回はちょっだけにしとく。

## 調査

### Subnet

VPCの中に小さなネットワークの集まりを作れるもの。
Subnetでネットワーク空間を区切ります。

下記の例であれば `10.0.0.0/8` という大きなVPCの中に
ネットワークに接続しない、 `10.1.0.0/16` というPrivate Subnetと
ネットワークに接続する、 `10.2.0.0/16` というPublic Subnetが作成されています。
※subnetはかぶってはだめです。

![subnetUntitled Diagram.drawio – diagrams.net – Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/28774a70-b47d-3be3-f484-eb88

元記事を表示

GitHub ActionでDockerのビルドキャッシュを有効にしてAmazonECSへデプロイする

# やること
GitHub Actionを用いてDockerイメージをビルドし、Amazon ECRに保存し、Amazon ECSへデプロイします。

– ポイント
– 本番運用を想定し、ブランチに[リリース](https://docs.github.com/ja/free-pro-team@latest/github/administering-a-repository/managing-releases-in-a-repository)を作成した場合にGitHub Actionが動作するようにする。
– Dockerのビルドを高速化するために、ビルドキャッシュを有効にする

# 準備
– 保存先のECRを作成
– デプロイ先のECRを作成
– GitHub Actionで使用するためのAWS IAMユーザーを作成(ECRとECSの権限が必要です)

これらは作成済みとして進めます。

# 作成するワークフロー
下記のようなワークフローを作成し、レポジトリの`.github/workflows/`へ`deploy-to-ecs.yml`のような適当な名前で保存します。
mainブ

元記事を表示

OTHERカテゴリの最新記事