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

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

AWS ElasticsearchService のインデックス自動削除

(ただのメモです)
IMSで30日でインデックス削除するインデックスポリシーを作成し、インデックステンプレートでインデックス作成時に自動でアタッチするようにする

KibanaやKibanaのDev Toolsで操作

### インデックスポリシー作成

インデックスポリシー名:all_delete
内容:30日で削除

![スクリーンショット 0002-11-27 8.42.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/b325df19-5406-bd36-6ac1-335b2732bc1e.png)

“`json
{
“policy”: {
“policy_id”: “all_delete”,
“description”: “Demonstrate a hot-warm-delete workflow.”,
“last_updated_time”: 1606349256304,
“schema_versio

元記事を表示

Python3 PermissonError解決策

今回python3で簡易アプリケーションを作成後AWS EC2でデプロイしようとした時に発生したエラーについて原因と解決策を書いてみました

* * *
## エラー内容

Djangoの管理サイトからPostsアプリケーションで投稿を行うと

![スクリーンショット 2020-11-27 7.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/368036/54d26fa3-04b0-6682-dd99-396d6c789290.png)
PermissonError
![スクリーンショット 2020-11-27 6.41.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/368036/39a352bd-d3af-7fb0-0cf7-4708694f510a.png)

* * *
## 原因

[Filezilla](https://filezilla-project.org/ “Filezilla”)

元記事を表示

AWS GlueのCrawler(クローラ)をAWS CDKで生成する

# 概要
* S3にたくさん投入したデータをAthenaでサクッと分析・集計できるようにする際、Glue Crawlerが非常に便利。
* CDKで構築した例はまだあまりなかったので記事化。

# S3の設定について
* [先日の記事](https://qiita.com/Kit-Ok/items/fcc9a0b4e135168c1d36)で考察したが、S3はいまのところ手動設定したものを利用しても良いように思う。

# Glueの設定について
* 上記の理由より、S3はすでにあるものを利用する形にする。
* Roleについては、[公式](https://docs.aws.amazon.com/ja_jp/glue/latest/dg/crawler-prereqs.html)(日本語が怪しいですが)の通り、マネージドポリシーの`AWSGlueServiceRole`を付与し、さらにインラインポリシーで`対象のS3パスへのGetObject・PutObjectを許可`するようにします。
* [CDKのConstructは「High Level Construct」「Low Level

元記事を表示

【実験】AWS Workspacesで3つのサブネットにそれぞれ配置できるか?

# AWS Workspacesで3つのサブネットにそれぞれ配置できるか?

On-PremにあるAD環境をAWSにリフトアップしてみようと検証を試みた記録です

## 前提条件

* 同一認証基盤を利用したい
* ネットワークセグメントが3つある

## 検証環境のイメージ

以下のような構成で検証を進めました。

機能としてはセカンダリといいつつつ、
ターシャリ(3番目)もアタッチ可能なVPCのセカンダリCIDRを使います。
[Associating a secondary IPv4 CIDR block with your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#add-ipv4-cidr)

![AWS Integration ap-northeast-1 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182636/0d0951a7-aa4c-6add-19b3-2ccb9e

元記事を表示

serverless framework DE typescript for AWS Lambda開発

###既に作ったserverlessプロジェクトにTypescriptを入れたい

現在AWSでSlack Botを動かすために、開発環境を作れるserverless絶賛勉強中です。
プロジェクトを作る時にtypescript対応するのは見つかったのですが、
もう作っちゃったプロジェクトに追加する方法は見当たらなかったのでまとめます。

プロジェクト作成時の場合はcreateするときに`-t aws-nodejs-typescript`というテンプレートを指定すればいいらしい。次はそっちでやってみます。
参考:[ServerlessでTypeScriptの開発環境を作る](https://qiita.com/iewori/items/837dbe4edb77426a11d9)

#serverlessプラグインを追加

https://www.serverless.com/plugins/serverless-plugin-typescript/
serverless-plugin-typescriptという素敵なプラグインを見つけたので使います。

>**Features**
・Ze

元記事を表示

AWS でサーバー構築、アプリをデプロイ①

# 概要
簡単にAWSでサーバー構築をしてアプリケーションをデプロイさせる
今回は ネットワークの構築 まで進めようと思います!

# リージョンの変更

“`
右上のリージョンから 「アジアパシフィック(東京)ap-northeast-1」 に変更
“`

# VPC領域の作成

VPC とは(Virtual Private Cloud)の略
VPC を作成すると ユーザー毎に隔離されたネットワーク空間が作れます

AWS上のVPC領域はプレフィックス長が16以上を指定する必要があるので
CIDR ブロックは 10.0.0.0/16 にする必要がある

“`
トップ画面 から 「VPC」 を選択
「名前タグ-オプション」 :好きな名前を入力
「IPv4 CIDR ブロック」: 今回は 「10.0.0.0/16」
「IPv6 CIDR ブロック」: 「IPv6 CIDR ブロックなし」 を選択
「テナンシー」:デフォルト を選択(専有にすると追加料金がかかる)
「VPCを作成」 を選択
“`

# サブネットの分割

CIDRブロックを更に小さく分割して使うのが一般的であり、細

元記事を表示

TerraformでAmazon API Gatewayを構築する(リソースポリシー編)

# はじめに
API Gateway+Terraform記事第4弾。
[TerraformのAWSプロバイダの3.16.0](https://github.com/hashicorp/terraform-provider-aws/blob/master/CHANGELOG.md#3160-november-18-2020)で2020/11/18にリソースポリシーの Terraform リソースが使えるようになったので、今回は、IPアドレスによる制限をさっそく試してみる。

# Terraform
とはいっても、普通にIAMポリシーを書くだけである。

Condition(IpAddress)を使って許可をしてするよう、こんな感じで定義しよう。

“`HCL
resource “aws_api_gateway_rest_api_policy” “test” {
rest_api_id = aws_api_gateway_rest_api.test.id
policy = data.aws_iam_policy_document.test.json
}

data “a

元記事を表示

【AWS】Windows10にAWS-CLI ver.2をインストールしてみた

#はじめに
AWSを勉強するために、ノートPCにAWS-CLIをインストールしてみたので、備忘として残しておきます。

###PCスペック
* OS:Windows 10 Home(バージョン 20H2(OSビルド 19042.630))
* CPU:Intel Core i7-10510U 1.80GHz(2.30GHz)
* RAM:16.0GB

#目次
1. インストール
2. 設定

#1. インストール
基本的には以下の公式サイトの通りインストールを進めればOKです。
[Windows での AWS CLI バージョン 2 のインストール、更新、アンインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html)

##前提条件
インストールする前に事前に以下の確認が必要です。
* 64ビットバージョンのWindows XP以降のOS
* ソフトウェアインストール用の管理者権限

##MSIインストーラをダウンロードする
最新版のインストーラをダウンロードしま

元記事を表示

ancestryはawsにデプロイしただけでは使えない

# 1.どんな状態だったか
ancestryを利用して、カテゴリー機能を実装、ローカルでは動くのに本番環境で反映されないという状態

# 2原因
ancestryを使うためには、本番環境でもローカルと同じ様に
db migrateし、seedを読み込まなくてはならない

# 3解決方法
まずdb migrateします

“`
$ cd var/www/app名/current
$ rake db:migrate RAILS_ENV=production
“`
上手くいかない時はdbをドロップしもう一度クリエイトし直す

“`
$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

$ rake db:create RAILS_ENV=production
“`
もう一度migrateします。

次にseedを反映させます。

“`
$ rake db:seed RAILS_ENV=production
“`
以上になります。

# 4最後に
自動デプロイをして

元記事を表示

Athenaからクエリ出来てCSVダウンロードやS3から直接ダウンロード禁止する

ただのメモです。

AthenaとGlueのリストと読み取り権限ポリシー作ってアタッチ

S3の読み取り権限ポリシーを、calledviaを使いAthenaからだけ許可する形で作成してアタッチ

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“s3:PutObject”,
“s3:GetObject”,
“s3:ListBucketMultipartUploads”,
“s3:AbortMultipartUpload”,
“s3:CreateBucket”,
“s3:ListBucket”,
“s

元記事を表示

サルでもできる!? Rails6アプリをAWS EC2にデプロイするまでの全手順【後半】(独自ドメイン, HTTPS化, S3, CloudFront)

この記事では,画像投稿機能の付いた `Rails 6` のアプリを `AWS EC2` にデプロイするまでの全過程を解説します。

[【前半】](https://qiita.com/take18k_tech/items/5710ad9d00ea4c13ce36) でRailsアプリのデプロイはひとまず完了しましたが,まだまだすべきことがたくさんあります。続きも気を抜かずに頑張りましょう!

章 | タイトル
— | —
| [【前半】](https://qiita.com/take18k_tech/items/5710ad9d00ea4c13ce36)
1章 | はじめに
2章 | VPC
3章 | RDS
4章 | EC2
5章 | サーバー構築
6章 | デプロイ(Capistrano)
| 【後半】 <-- こちら 7章 | 独自ドメイン 8章 | HTTPS化(ACM, ALB) 9章 | デプロイ関連事項 10章 | S3 11章 | CloudFront 12章 | 削除方法 ## 7. 独自ドメイン Railsアプリを公開することができましたが,現状では2

元記事を表示

サルでもできる!? Rails6アプリをAWS EC2にデプロイするまでの全手順【前半】(VPC, RDS, EC2, Capistrano)

この記事では,画像投稿機能の付いた `Rails 6` のアプリを `AWS EC2` にデプロイするまでの全過程を解説します。

Railsアプリのデプロイに関する記事はたくさん見かけますが,初学者にとっては

「具体的に何をすればよいかが分からない:sweat:」

記事がほとんどで,ましてや「独自ドメインの設定方法」や「投稿画像を独自ドメインでCloudFrontから配信する方法」まで網羅的に解説を行っている記事は見当たらない状態です。

そこで,「**Rails初学者が初めてAWSにデプロイする際に本当に参考となる記事**」を目指して書かせていただきました。

「`Heroku` にデプロイしたことはあるけれど,`AWS` にデプロイしたことがない」という方を対象としますので,`AWS` の操作は,直感的に操作できる `AWS マネジメントコンソール` で行います。

`AWS CLI` や `Terraform` などのツールは使用しませんので,あらかじめご了承下さい。

章 | タイトル
— | —
| 【前半】

元記事を表示

ECRリポジトリから最新のタグを取得する

# 目的

– ECRリポジトリに保存されたDockerイメージの最新のタグを取得する

# 使うもの

– AWS CLI

## 手法
`–query` を利用してAWS CLIの結果をフィルタ、抽出できます。

“`
aws ecr describe-images –repository-name 【リポジトリ名】 \
–query “reverse(sort_by(imageDetails[*], &imagePushedAt))[0].imageTags[0]” \
| sed -e ‘s/”//g’
“`

`–query` は [JMESPath](https://jmespath.org/tutorial.html) の文法が使えます。

上記の例では、リポジトリのイメージ一覧を取得して、imagePushedAt(日付)で降順ソートを行い、1つ目の imageTagsを取得します。

配列になっているので、そのままでは以下のように扱いづらいため、imagePushedAt[0] で値だけ取り出します。

“`
# imageTags で取得
[

元記事を表示

AWSとオンプレミスの疎通確認に使えるコマンド

# 前提

– EC2 Amazon Linux 2

## ポート指定でping疎通

“`
$ sudo yum -y install nc
$ nc -zv {ipaddress} {port}
“`

## ping疎通の確認

“`
# pingの受け手で実行
$ tcpdump -nn icmp

# pingの送り手で実行
$ ping {ipaddress}
“`

元記事を表示

【AWS初心者向け】AWS学習方法まとめ【15時間で達成できる】

# AWS学習を始めようと考えている人
「AWSとは、概要や全体像、メリットデメリットが知りたい」
「AWSの学習方法が知りたい」
こういった疑問に答えます。

# 本記事のテーマ
【AWS初心者向け】AWS学習方法まとめ【15時間で達成できる】

# AWS学習の始め方
AWSやクラウド初心者の方がAWSを学ぶための方法を纏めました。

> ①クラウドを学ぶ
②AWSの概要を学ぶ
③知識の定着(AWS公式ハンズオン実施)
④AWS運用の現場に参画

残念ながらIT基礎知識(基本情報技術者レベル)がある前提になってしまいました。
(ない場合はもっと時間かかると思います)
知識定着のため、インプット、アウトプットのバランスを考えてまとめています。

# 記事の信頼性
筆者はAWS経験5年程度です。AWS資格は5冠達成しました。
現在は大規模ECサイトのAWS運用を任されるようになっています。

今回紹介している記事は全てAWS公式ページにあったもので、その中から初心者向けのものをピックアップしています。(公式ページがこれだけ分かりやすいことにAWSの本気度を感じました)

# 読者さん

元記事を表示

EC2で自動デプロイが反映されなくなったときの対処法

# はじめに
## 現象
いつもどおり自動デプロイしたはずがまったく反映されない

## やってみて
EC2インスタンスがおかしいのかなと思って再起動してみたら無事解決。
再起動に必要なコマンドを備忘します。

# 手順
## EC2インスタンスを再起動
AWSコンソールからEC2インスタンスを再起動します。

## DBを起動させる
EC2を再起動するとDBが停止状態になるので起動させます。
(私はMariaDBを使用しています)

**確認コマンド**

“`:ターミナル(EC2)
$ sudo systemctl status mariadb
“`

**結果**

“`:ターミナル(EC2)
● mariadb.service – MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: inactive (dead)
“`
死んじゃってるのが確認できます。

元記事を表示

boto3 の DEBUG ログを表示しない

Python コードのデバッグのために以下のようにログレベルを DEBUG に設定していると、boto3 関連のログがたくさん流れてきて邪魔なときがある。

“` python
import logging

logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger(__name__)
“`

boto3 関連の DEBUG ログを表示しないようにしたいときは、いくつかのロガーのログレベルを INFO 以上に引き上げればよい。

“` python
import logging

for name in [“boto3”, “botocore”, “s3transfer”, “urllib3”]:
logging.getLogger(name).setLevel(logging.WARNING)
“`

ただし、boto3 以外のモジュールが urllib3 に依存していた場合はそのログも見えなくなってしまうので注意。

元記事を表示

[AWS] AWSだけで完結する定期処理の作り方 [Lambda・CloudWatch]

# 概要
アプリ開発などでサーバレスな環境構築をすることがあると思います。
そう言った場合にAWSでだけで実装することができるバッチ処理の簡単な作り方をご紹介します。
色々やり方はありますが、今回はLambdaとCloudWatchに焦点を当ててご紹介します。

また解説する内容は必要最低限のプログラムなどになりますので全体的には15分程で試すことが出来るかと思います。

# 1. Lambdaで処理を作ろう
まず定期処理が行われた際の実際の処理が行われるプログラムを作成していきます。

![Screen Shot 2020-11-26 at 10.41.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/652173/bebe4f2f-7a3d-8fc0-15f0-a65ad6fda9ad.png)

AWSのLambdaのトップページより”Create function”ボタンを押下しファンクション作成のページに遷移します。

![Screen Shot 2020-11-26 at 10.44.3

元記事を表示

ECSタスクへの機密情報の環境変数の設定

# 概要

[Twelve-Factor App](https://12factor.net/ja/config)でも述べられているように、アプリケーションの設定は環境変数にしておいた方が色々と取り回しが効きやすいです。
問題は、パスワードなどの機密情報をどう管理してどうデプロイするかにあります。
AWSとECSには機密情報を環境変数として管理する問題を解決するサービスと機能が存在します。
その利用方法を解説します。

# アーキテクチャ

環境変数を `AWS Systems Manager` の `パラメータストア` で管理します。
ECSタスク定義は `docker-compose` を利用します。
ECSとパラメータストアを連携させて環境変数を埋め込みます。

## 環境変数管理

環境変数はGithubやGitlabで設定できる機能もありますが、AWSを使っているのであれば `Systems Manager` の `パラメータストア` を使うのが便利です。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/us

元記事を表示

Oracle DBのマネージメントサービスを使用したくなった時にOCIとAWSのどちらにするか

ちょっと使ってみた上での感想。

Oracle DBのエンジニアが余ってて稼働を確保したい→OCI
Oracle DBが大得意なエンジニアがいてOracle DBの機能を活用したい→OCI
EEの機能を使いたい→OCI
Oracle DBを使わないといけないけど、Oracleの機能をあまり知らないので運用面としては他DBと同じように扱いたい→AWS
Oracle DBを酷使しないといけないけど、Oracleの機能をあまり知らないのでチューニングとかは自動でやってほしい、あとお金はたくさんある→OCI
なんとなくOracle DBをユーザー目線で使ってみたい→AWS
Oracle DBをどうしても運用したい→OCI
規模がでかい→OCI
それ以外、もしくは初心者→AWS

元記事を表示

OTHERカテゴリの最新記事