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

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

AWSのEC2上に環境変数を設定する方法

# 環境
macOS: Big Sur Ver11.2.3
Rails: 6.1.1
Ruby: 2.6.5
インフラ:AWS(EC2)

# 困っていること
AWSのEC2を使ってポートフォリオをデプロイし、さらにACMで証明書取得, Route53でドメイン取得後、SSL化まで行ったところ、Googleマップが表示されなくなった。
ブラウザのコンソールを確認すると「Google Maps JavaScript API error: InvalidKeyMapError」と表示されている。
したがって、APIキーをEC2上で設定できていないのではと推測。

# 解決方法
### ①EC2にSSHで接続し、Vimを開く
“`terminal
% cd .ssh
% SSH接続のコマンド(ssh -i hoge.pem ec2-user@アプリのIPアドレス)

接続後、
[ec2-user@ip-172-31-0-160 ~]$ sudo vim /etc/environment
“`

### ②環境変数を記述する
内容を変更するには「i」を押して編集モードにする。
変更し終わっ

元記事を表示

terraformによりlambdaとしてコンテナイメージをデプロイ

# コンテナイメージを用いたlambda

## 概要

– 2020/12からlambdaとしてECR上のコンテナイメージをデプロイできる
– 今までのzip形式との大きな違いはアーティファクトサイズ制限(250 MB -> 10 GB)
– ローカルでテストするのが簡単 ([Lambda コンテナイメージをローカルでテストする](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-test.html))

## デプロイ方法
zipとコンテナイメージの両方を簡単な図で示すと以下のようになる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206914/ad3769ab-de82-d2ee-bded-b767efd3fd17.png)
lambda_flow.png

# terraformによるデプロイ

terraformによりlambdaの作成のみを行い、作成後のイメージ管理は行わない。
この場合、github a

元記事を表示

Kubernetes学習のためのDocker入門

#はじめに
![homepage-docker-logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407956/b1c007e3-7f06-e4ad-730b-23fe39a92276.png)

クラウドネイティブを勉強する際には避けては通れないのはKubernetes。そしてKubernetesを学ぶ上で避けては通れないのがDockerです。
しかし、Kubernetesを勉強する上で全てのdockerの知識が必要かと問われるとそうではありません。
この記事ではKubernetesを扱う上で必要最低限知っておきたい知識をまとめました。
この記事が次のステップKubernetesの世界への第一歩となれば幸いです。

また、この記事は日本のKubernetesの第一人者であるサイバーエージェントの青山さんが執筆している[Kubernetes完全ガイド](https://www.amazon.co.jp/dp/B08FZX8PYW/ref=dp-kindle-redirect?_encoding=U

元記事を表示

AWSのParalellClusterを使ってみた①

# はじめに
## 概要

ParallelClusterではクライアントPC上にクラスタ作成の設定等を行う環境を作成し,クラスタの作成を行う.クラスタを作成するとEC2の新しいインスタンスとしてMasterノードが作成される.Masterノードでジョブを実行すると,ジョブの規模に合わせてSlaveノードが作成されジョブが実行される.

ここではクライアントPC(ParallelClusterのインストール先)にもローカルPCではなくAWSのインスタンスを使用しました.ちなみに,ローカルPC(上記のクライアントPCへの接続元)の環境はmacOS Catalinaです.

つまり,(ローカルPC:mac)→(クライアントPC:EC2)→(クラスタ:Masterノード,Slaveノード)のような関係です.

この記事ではクラスタの作成(Masterノードの作成)を行うところまでをまとめておきます.

# クライアントPCとしてのEC2インスタンス作成

## インスタンスの作成
お試しなので一番小さいt2.nano(micro)を選択する.
また,セキュリティグループの設定では自

元記事を表示

CloudWatchのダッシュボードを使ってAWSの請求金額をIAM Userを持たない人にも共有する

# この記事の内容
メールアドレスとパスワードベースでログインできるダッシュボードを作成します。
今回は請求金額の情報をダッシュボードにまとめています。
![CloudWatch_Dashboard_shareview_nomark.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43015/7102589e-f9f1-53e6-56bc-43ab0e81ee9d.png)

### 請求金額をダッシュボードにするメリット
* IAM Userの管理コストが減る
* AWSやITに疎いユーザーにとって、利用するハードルが低い
* 毎回AWSにログインして金額を確認するよりもお手軽に確認できるため、コスト自体の管理コストが減る。

AWS自体にアクセスするのは面倒だけど、今の利用料を把握したいビジネスサイドの方がいる場合などに活用が可能です。
また余計なIAM Userを作成することで、IAMの管理コストを増やすことも避けられます。自動的に最小限の権限だけ付与されるため、余計な心配をする必要がなくなります

元記事を表示

ECS AnywhereでRaspberry PiをECSのデータプレーンにする

ECS AnywhereがGAしました。おめでとうございます。

https://aws.amazon.com/jp/blogs/news/getting-started-with-amazon-ecs-anywhere-now-generally-available/

早速ですが、やってみました。

# 環境

Raspberry Pi 4 (8GB)
OS: Ubuntu 20.04(64bit)

OSクリーンインストール状態から始めます。

# 手順

## cgroupsの有効化

`/boot/firmware/cmdline.txt`の1行目の末尾に`cgroup_enable=memory cgroup_memory=1`を追加します。

“`diff:/boot/firmware/cmdline.txt
– net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootw

元記事を表示

はじめてのCloudFormation

#はじめに#

**CloudFormation**を学習し始めて、エラーラッシュに見舞われながら覚えたことを書いています。
対象読者は同じにようにテンプレートエラーに悩んでいる方AWS初学者です。
qita初投稿ですので、何か不備等があればご指摘いただけると助かります。

##参考##
この記事はAWS初学者を導く体系的な動画学習サービス
**AWS CloudTech**の課題カリキュラムで作成しました。

top

##CloudFormationについて##
構成したいAWSリソースやその細かい設定を**JSON、YAML**といった記述方式に則ってファイル(テンプレート)に記述し、それを読み込ませることで複数のAWSリソースを同時に起動できるしくみ。ひとつのテンプレートで生成されるAWSリソース群を**スタック**と呼ぶ。

テンプレートの型は複数のセクションからなるが(以下template.yml)、記述が必須なのは、**AWSTemplateFormatVersion**と**Resource**の部分のみ。前者はテンプレ

元記事を表示

Databricksにおける顧客管理VPC

[Customer\-managed VPC \| Databricks on AWS](https://docs.databricks.com/administration-guide/cloud-configurations/aws/customer-managed-vpc.html) [2021/6/1時点]の翻訳です。

> **重要!**
この機能は[E2バージョンのDatabricksプラットフォームで利用](https://docs.databricks.com/getting-started/overview.html#e2-architecture)できます。

# 概要

デフォルトでは、お客様のAWSアカウント上にDatabricksが単一のAWS VPC(Virtual Private Cloud)を作成します。オプションとして、お客様の組織の標準に従いながらも、Databricksの要件に応えるために、お客様の手で作成した顧客管理のVPC(customer-managed VPC)を使うこともできます。

> **重要!**
[AWS PrivateLink]

元記事を表示

【AWS】EBS ボリュームの種類とまとめ

EC2と共に利用するストレージサービスであるEBSで扱う容量にいくつか種類があり、AWS認定ソリューションアーキテクト – アソシエイトの試験でも問われてくるところなので、公式や参考サイトを確認しつつまとめてみました。

#ソリッドステートドライブ (SSD)
公式に I/O サイズの小さい頻繁な読み取り/書き込み操作を含むトランザクションワークロード用に最適化され、主要なパフォーマンス属性は IOPS です。とある。

1IOとはディスクに対してユーザーまたはプログラムが要求したサイズのこと。
I/O サイズの小さい頻繁な読み取り/書き込み操作とはユーザーがディスクに対してする要求のサイズが小さく頻繁であることを意味しているようです。(このためHDDより高速)

ワークロードとはコンピュータに対する負荷の大きさのことを指し、CPU使用率やメモリ使用率などのことを指す。

このことを踏まえるとトランザクションワークロードとはディスクに対する要求に対して、CPUやメモリを使用するコンピュータの負荷を指す言葉だと解釈しました。
要するに小さく頻繁な読み取り、書き込みをするのに優れて

元記事を表示

【AWS】S3の整合性モデルとアクセス管理

#プログラミング勉強日記
2021年6月2日

#S3の整合性モデル
 S3は高い可用性を実現するために、強い整合性は持っていない。同時書き込み時はタイムスタンプ処理を実施している。データ更新・削除には結果整合性モデルを採用している。そのため、データ操作をしている途中はデータの矛盾が発生する可能性がある。

| データ処理 | 整合性モデル |
|:–:|:–:|
| 新規登録 | Consistency Read 登録後即時にデータが反映される |
| 更新 | Eventual Consistency Read 更新直後はデータ反映に時間がかかる |
| 削除 | Eventual Consistency Read 削除直後はデータ反映に時間がかかる |

#S3のアクセス管理
 S3のアクセス管理は用途に応じで方式を使い分ける。他のストレージと違ってS3はインターネットから誰でもアクセスできるように使える。これを設定するにはパブリックアクセスを設定する。(パブリックアクセスを許可すると誰でもS3バケットのオブジェクトの読み込みができる)

##IAMユーザーポリシー
 IAM

元記事を表示

CPU・メモリを節約してEC2を安く運用するためのTips

個人でAWSを使っていると、どうしても利用料金が気になります。そこで、EC2の課金形態と、私がよく使うEC2の節約術をまとめました。

# EC2の料金の決まり方

EC2のインスタンスは、以下の要素で料金が決まります。

– インスタンスタイプ(+T2/T3/T4g Unlimitedモード料金)
– EBS
– データ転送料

上記のうち、CPUやメモリは、インスタンスタイプによって決定されます。

|インスタンスタイプ |vCPU |メモリ |CPUのベースライン使用率 |
|—|—|—|—|
|t3.nano |2 |0.5GB |5% |
|t3.micro |2 |1GB |10% |
|t3.small |2 |2GB |20% |

参照元:https://aws.amazon.com/jp/ec2/pricing/on-demand/

例えばt3.microを選択した場合、メモリが1GBの仮想マシンが提供されます。この仮想マシンを利用していてメモリが不足した場合、1つ上のt3.smallにスペックアップする必要があります。

また、t2、t3、t4g

元記事を表示

AWS CLIのバージョンを1から2へとアップデートする

## ゴール
AWS CLIのバージョンを1から2にアップデートする
※使用しているOSはmac

## 手順
1. V1アンインストール
2. V2インストール

という手順で行う

## 現在のバージョン確認
“`
$ aws –version
aws-cli/1.18.132 Python/2.7.16 Darwin/19.3.0 botocore/1.17.55
“`
現在のバージョンは1.18.132である

## V1アンインストール
以下の2コマンドを実施

“`
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
“`

### 確認
“`
$ aws –version
zsh: command not found: aws
“`

## V2インストール
V2の最新バージョンをインストールする

### 1. pkgファイルをダウンロード
以下のリンクからDLできる
https://awscli.amazonaws.com/AWSCLIV2.pkg

### 2. インストーラを使用してイ

元記事を表示

ColaboratoryでS3を読みこむ

今年頭から仙台市場のデータをAWS lambdaを利用してS3に溜め込んでいる。
ある程度溜まったので、確認してみる。

#読み込み等

“`python:s3_read.ipynb
# the AWS SDK for Python (Boto3) の読み込み
!pip install boto3 -q
import pandas as pd
import boto3
# ERRORがでるけどあまり気にしない。

# S3アクセス準備
# KEY, SECRETは 準備して、変数に入れておく。
s3 = boto3.resource(‘s3’,
region_name=”us-east-1″,
aws_access_key_id=KEY,
aws_secret_access_key=SECRET
)

bucket=s3.Bucket(‘sendaimarket’)

# file一覧の取得
files=[ob

元記事を表示

Amazon RDSのMySQL5.6を5.7へバージョンアップする

現在(2021年6月)、RDS で MySQL 5.6系を稼働させていると、AWSコンソールで以下のような警告が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46847/7816104f-c982-7827-11f3-66173439bc6a.png)

Amazon RDS では MySQL 5.6 のサポートは 2021年8月3日に終了します。
これはOracle社によるメンテナンスリリースやバグ修正、パッチが提供されなくなるためのようです。
(MySQL5.6 と互換性のある Amazon Aurora MySQL 1系 は特に終了のアナウンスはされてないので、おそらくAmazon側で独自にサポートしていくことになるのかもしれません)

## Oracle社によるMySQL5.6のEOLは2021年02月01日
MySQLの開発元であるOracle社では、「Oracle Lifetime Support for MySQL」というライフタイムサポートポリシーがあり

元記事を表示

Tera termでEC2へのssh接続を簡易化する方法(+ログ自動保存とフォント設定)

# 前置き
EC2へssh接続する際に、いちいちcmd上で`ssh -i xxxx.pem ec2-user@xxx.xxx.xxx.xxx`と打つのが手間になってきました。

同時に、そろそろcmdからつなぐのも味気ないなと思いつつ、ボタンぽちーでサクッとつながる or UIがかっこいい、といったイケてるターミナルを探してみたものの、やっぱりセキュリティ面を考慮するとTera termが手堅いらしい?(超ざっくり)

ということで、Tera termからEC2にパスワードの入力のみでssh接続する設定と、設定の保存方法を個人用メモとしてまとめました。
また、プラスでログの自動生成と、ちょっとイケてるフォントに変更する方法も記載しています。

# ssh設定(公開鍵方式)
タブの設定>SSH認証から以下のとおり設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1563931/f426d5b2-9462-e858-f080-bf722a786020.png)
秘密鍵の部分は「…」の

元記事を表示

Amazon Simple Storage Service (S3) の7つのストレージクラス

![Screen Shot 2021-06-02 at 15.06.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431877/2ac7bad7-91cb-99b8-5834-50f217f41c23.png)
#はじめに
AWSのサービスの中でも中核を担うS3には7つの種類(ストレージクラス)がある。作成したいアプリケーションの要件に合わせてストレージクラスを選択することで、コスト最適化を図ることができる。
※本記事は2021.6.2時点かつ東京リージョンの情報をもとに作成しています。
※上の画像では6つのストレージクラスのアイコンが載っていますが、RRSに関するアイコンは載っていません。

# 特徴など
・高い耐久性(あるデータが1年間で消失してしまう確率が0.000000001%。逆に消失しない確率は99.999999999%で9が11回続くことから高い耐久性を表す言葉として`イレブンナイン`がある)
・`バージョニング機能`がある(オブジェクト単位で管理されており、誤ってデータを削除したと

元記事を表示

EC2にNodeをセットアップする

EC2にNodeをセットアップする方法のメモです。
EC2のインスタンスを立ち上げてからの手順をまとめておこうと思います。
(Amazon Linux 2 へのインストール方法です。)

# インスタンスのアップデート
`yum update`を実行し、インスタンスをアップデートします。

“`common_lisp
$ sudo yum update
“`

# g++コンパイラのインストール
“`common_lisp
$ sudo yum -y install gcc-c++
“`

# gitのインストール
“`common_lisp
$ sudo yum -y install git
“`

# nvmのインストール
GitHubから`nvm`をクローンします。

“`common_lisp
$ git clone https://github.com/creationix/nvm.git ~/.nvm
“`

`nvm`へのパスを通します。
`.bash_profile`へ設定を書き込み、永続的に有効となるようにします。

“`common_lisp
$

元記事を表示

AppRunnerについて

# はじめに
「AWS App Runner」というサービスが先日GAされました。
触ってみたので、概要や所感などを書きます。

https://aws.amazon.com/jp/apprunner/

## AWS App Runnerとは
リソースやインフラ等、環境を意識せずにアプリケーションを実行できるサービスです。

内部的にはFargateが動作しており、コンテナ化したアプリケーションを実行しています。

AutoScalingに対応しており、閾値を決めることでコンテナ数を増減してくれたり、更新を行うと自動でデプロイしてくれる機能もあります。

[公式ドキュメント][link-1]より

> AWS App Runner は、コンテナ化されたウェブアプリケーションや API を開発者が簡単かつ迅速にデプロイできるフルマネージド型サービスです。大規模に、しかも事前のインフラ経験を必要とせずにデプロイすることができます。ソースコードからでも、コンテナイメージからでも始められます。App Runner がウェブアプリケーションを自動的にビルドおよびデプロイし、暗号化しつつトラフィ

元記事を表示

DynamoDBのパーティションキーについてあれこれ

AWS DVAの勉強でまとめました。

# パーティションキーとは?

RDBMSでいうプライマリキー
もしソートキーを追加する場合はパーティションキーとソートキーの組み合わせがプライマリキーになる

↓の例で言うと、user_idをパーティションキーにするみたいな感じ

| user_id | email | phone_number |
|:———–|————:|:————:|
| 1 | a@gmail.com | xxx-xxxx-xxxx |
| 2 | b@gmail.com | xxx-xxxx-xxxx |
| 3 | c@gmail.com | xxx-xxxx-xxxx |
| 4 | d@gmail.com | xxx-xxxx-xxxx |
| 5 | e@gmail.com | xxx-xxxx-xxxx |
| 6 | f@gmail.com | xxx-x

元記事を表示

アップロードするS3オブジェクトが大きいとEventBridgeが発火しない?

# 概要
* S3へのObject Uploadイベントを検知するのにCloudTrail + EventBridge を使っていたが、イベントが発行されない事象があった
* 泣く泣く S3 Bucket Notification にした

# S3 Bucket Notification vs EventBridge
S3にObjectがPutされた、などのS3関連のEventを補足するには一般に2つのやりかたがあります。
S3 Bucket Notification と EventBridgeです。

#### イベントタイプの比較
[Bucket Notificationでサポートされるイベントタイプ](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinations.html#supported-notification-event-types)

[EventBridge (+Cloudtrail)でサポートされるイベン

元記事を表示

OTHERカテゴリの最新記事