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

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

terraform でVPCなどを作る

参考 — https://qiita.com/gogo-muscle/items/58fee5760400ff1bc602
【Terraform】awsのprofileの認証情報で403エラーが出る
前提 — Windows10 WSL Ubuntu terraform aws cli 導入済み 手順 — ①作業ディレクトリを作成する。参考サイトのようにファイルやフォルダを作成する ②treeコマンドを入っていなかったらインストールする ③terraform.tfvars を作成する ④main.tf を編集する ⑤terraform init ⑥terraform plan ⑦terraform apply AWSコンソール上で作成されていること確認する
元記事を表示

Amazon Redshift Data APIを使ったETL

# はじめに 始めまして、株式会社ジールの@KimiyukiMuramatsuです。 AWSを使ったデータ分析基盤の構築を業務としております。 その中で得たノウハウをQiitaを通して発信していきたいと思います。 Lambdaを使って、S3上のファイルに対してETL処理を行い、Redshiftにロードする方法を検討しておりました。 Redshift Data APIを使って実現できると考え、検証してみました。 Redshift Data APIを使うことで、LambdaからRedshiftのSQLを呼び出すことができます。 SQLを使えれば、Redshift Spectrumにより、S3上のファイルをETL処理してからRedshiftのテーブルにロードできます。 (Insert Into Select From ~ ) # 検証したいこと * Redshift Data APIを使って、LambdaからRedshif
元記事を表示

[aws,alb]Health checks failed with these codes: [500] の解決例

## 何があった? ecs(fargate)をalbで負荷分散させるようなアーキテクチャ設計での環境構築をした際、何度ECSをたててもALBがタイトルのエラー文でunhealthyになってしまう現象が起きていました。 ## 原因 albの設定ではなく、laravelのAPP_KEYの登録ミスでした。 具体的には`base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=`と登録しなければいけないのに`XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=`と登録しておりました。 結果phpのコンテナが立ち上がってすぐもエラーで削除されてしまい、結果としてロードバランサーの方でエラーとなって現れておりました。 ## 解決策 環境変数の部分を修正することで解決しました。(筆者はSystemManagerのParameteStoreに保存していたのでその中の値を修正しました。) ## 類似エラー解決の考察 エラー文が500やTarget.FailedHealthChecksのように具体的な原因が出てい
元記事を表示

CdkPipelineで静的Webホスティング環境(CloudFront/S3)を構築。

# CdkPipeline ## CdkPipeline is 何? CDKの登場によりコードベースでAWSリソースを管理できるようになった。 しかもCloudFormationのような形式ではなく、typescrictやpythonなどの慣れ親しんだ言語でそれらを記述できるためメンテナンスコストを抑えられる。 コードベースで管理できるというとこは、git管理が効くということであり、そうなると人はCICDパイプラインに乗せ込みたくなるものである。 しかし、CdkPipelineのGA以前にCodePipelineでそれをやろうとすると、CodeBuildの中で自前で色々しないといけなかったり、そもそもそのPipeline自体はCICDに載せられないので別管理になる等課題があった。 ## 触ってみる 2021/7にGAしたCdkPipelineを使って、以下の超入門構成を管理してみる。 https://dev.classmethod.jp/articles/aws-cdk-101-typescript/ その上で最終的にはCloudFront-S3のあるあるな静的Webホステ
元記事を表示

小ネタ/Flutter で AWS S3 へのアクセスに minio を使う

Flutter で AWS のサービス・リソースにアクセスするときに使うライブラリは、公式には Amplify Flutter に集約されてきており、S3 へのアクセスも **[amplify_storage_s3](https://pub.dev/packages/amplify_storage_s3)** を使うのがスタンダードです。 ただ、アプリケーションで内部的なデータバックアップ目的に S3 を使うなど、 – Cognito の認証は必要ない – かといってゲストアクセス可能な状態では使いたくない – アクセスキー・シークレットアクセスキーで手軽に使いたい というニーズには合いません。 そのような場合に使える Flutter のライブラリもいくつかあるようですが、今回は S3 互換ストレージとして有名な Minio の非公式クライアントライブラリ **[minio](https://pub.dev/packages/minio)**(3.0.0)を使ってみました。 ※こちらのアプリケーションに組み込んで使っています。 – **[hmatsu47/map
元記事を表示

AWS CloudFormationのテンプレートを作成する時はAWS CLIのdescribeを使う

# はじめに AWS CloudFormationのテンプレートを作成する時はAWS CLIのdescribeを使うととても作業が捗る。 普段、コンソールでリソースを作成するとテンプレートの引数で何を与えればよいか分からないが、AWS CLIで既存リソースに対しdescribeすると一発でテンプレートの引数が分かる。 # やり方 1. AWS CloudShell を開く。AWS Console(トップページ)の右上 `>_` を四角で囲んだマークをクリック。 1. 作成したいリソースに対して、`aws xx describe-xx –output yaml` 1. CloudFormationのリファレンスを見ながら、出力されたyamlのうち必要なものを抽出する。引数の先頭が大文字でない場合があるため注意する。 CloudFormationのリファレンス https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html AWS CLIの
元記事を表示

AWS DNS の基本

DNS(Domain Name System) ========== ここでは AWS ではなく、一般的なDNSの役割を記載します。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/3b628e46-3ad7-6516-cefc-334a17532f74.png) – ***Name Server*** クライアントから FQDN を探索し、自身が名前解決を行うサーバーを示します。 – ***Full Serivice Resolver*** ネームサーバーからの応答をクライアントに返す役割を示します。 – ***Stub Resolver*** フルサービスリゾルバーに名前解決の実行を委ねるリゾルバーです。 DNSクライアントとして名前解決を要求する側に位置しており、要求に対して応答を受けます。 – ***Forwarder*** 要求を受け取った際に、ルールに沿って、中継する役割を示します。 ネームサーバーへ辿る反復問合せの機能を持たないため、常に再帰的問
元記事を表示

AWS CloudWatch Logsのput log eventsとメトリクスフィルターで簡易的な監視

# はじめに AWS CloudWatch Logsのput-log-eventsでCloudWatch Logsへログを送り、メトリクスフィルターでログの内容を監視します。 CloudWatch Agentでログを送信した方が素直な実装です。 # put-log-events 参考 https://dev.classmethod.jp/articles/put-cloudwatchlogs/ `put-log-events` を行う時のBashスクリプト “`bash #!/bin/bash – readonly PROCNAME=${0##*/} function log() { local fname=${BASH_SOURCE[1]##*/} echo “$(date ‘+%Y-%m-%dT%H:%M:%S’) ${PROCNAME} (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $@” } export SERVICE_NAME=$1 # hello_world.service # CloudWatchLo
元記事を表示

【最速?】GoとEC2で「Hello, World!」

## やりたいこと GoとEC2を使って、ブラウザでHello, World!するだけです。 こちらの記事を大変参考にしました。 https://qiita.com/Dragon-taro/items/09a67b93093770348ce5 ## Goアプリの作成 ファイル構成 “` . └── main.go “` “`go:main.go package main import ( “fmt” “log” “net/http” ) func main() { http.HandleFunc(“/”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, “Hello, World!”) }) log.Fatal(http.ListenAndServe(“:8080”, nil)) } “` ## EC2の作成 以下、コンソール画面をポチポチしてEC2を作成する。 |項目|値| |-|-| |Amazonマシンイメージ|Amazon Linux2 AMI| |インスタンスタイ
元記事を表示

【超初心者向け】5分でAWS Lambda + API Gateway でRest APIを作る

# 作ったもの ![](https://github.com/nmasashi/qiita/blob/main/lambda/apigateway_lambada/images/lambda.png?raw=true) ただ、以下の json を返すだけの RestAPI です。 AWSを最近勉強し始めたよちよち歩きのエンジニアの第一歩です:v: “`json { “statusCode”: 200, “body”: “\”Hello from Lambda!\”” } “` # 手順 用意するもの – AWS アカウント ## lambda 関数作成 1. 任意のアカウントでログイン 1. [Lambda 関数一覧](https://ap-northeast-1.console.aws.amazon.com/lambda/home?region=ap-northeast-1#/functions)にアクセス 1. 「関数の作成」をクリック ![](https://github.com/nmasashi/qiita/blob/main/lambda/api
元記事を表示

AWS CLIの設定の仕方(アクセスキーIDとシークレットアクセスキーの取得編)

AWSにポートフォリオをデプロイするためにCLIの設定を行いました。 AWSのconfigure(設定)には ・アクセスキーID ・シークレットアクセスキー ・AWSリージョン ・出力形式 上記の4つの情報を入力しなければなりません。 まずIAMのIdentify and Access Manegementのユーザーを開き、ユーザを選択して、認証情報のタブを選択し、アクセスキーを作成のボタンをクリックします。そしてMFAデバイスの割り当ての管理をクリック。 MFAデバイスの管理で仮装MFAデバイスにチェック入れ、続行。 そうするとQRコードを表示することができるので、それをスマホのauthenticator (googleの認証システムなど)を使って読み取ります。 そうすると6桁の数字が一定時間おきに表示されるので、そのコードをMFAコードに入力します。(入力するMFAコード欄は二つあるのですが、同じコードは打ち込まないでください。)
元記事を表示

Cloud9環境へDockerのインストール方法 コンテナ起動

## 概要 前回作成したCloud9の環境でとりあえずdockerをインストールしてコンテナを起動してみます。コンテナは[こちら](https://qiita.com/mongamae-nioh/items/7525be957f4e5e10d403)のAdventCalendarを作成してみます。 ## Dockerインストール ### Cloud9へのDockerインストール * 以下のコマンドでDockerをインストールします。 * インストールされていた場合はスキップします。 “` shell docker -v sudo yum install -y docker “` * 以下のコマンドでdocker composeもインストールしておきます。 “` shell sudo curl -L “https://github.com/docker/compose/releases/download/1.27.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose sudo c
元記事を表示

ポートスキャンサンプル(python 3.8 on aws-λ )

メモリは1GB推奨。がっつりスキャンするので、要チューニングして利用のこと。 “`python import json import socket import random from multiprocessing import Process, Pipe import urllib.request #向き先 TARGET_HOST=’hogehoge.com’ #通知先WEBHOOK webhook = “https://discord.com/api/webhooks/9999999999999999/hogehoge” #生成するスレッド数:CONNECTION多重度と同義。400辺りでファイルディスクリプタ関連エラー THREAD_MAX=300 #検査レート:何%のポートを検査対象とするか。0.3の場合、検査ポートの30%をScan対象とする #TODO:アホほど回るのでチューニングすること SCAN_RATE=0.3 #タイムアウト:socketのタイムアウト時間(秒)。0.3くらいで検査できそう SOCK_TIMEOUT=0.3 def portscan(
元記事を表示

CloudFrontでContent-Typeを強制的に書き換える

## 背景 とある静的なWebサイトを、S3+CloudFrontという王道構成で運営しています。 CyberDuckというとても便利なFTPソフトがあり、そこからS3にもファイルをアップロードしたのですが、なぜか、全部のファイルが “`Content-Type: binary/octet-stream“` になってしまいました。 ![スクリーンショット 2021-11-07 17.33.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135431/69e23012-35c2-0e1f-c4dc-5c7cac9adabf.png) 一つ一つ変更したり、CLIで変換してもいいのですが、面倒なのでLambda@Edgeで変換します。 Origin Response で下記のLambdaFunctionを実行するように設定しました。 “`js:index.js ‘use strict’ exports.handler = (event, context, callback) => {
元記事を表示

DynamoDBのキーとインデックスについて

DynamoDBのキーとインデックスがずっと覚えられないので個人メモです。 「自分が何となくイメージできること」を目的としているため、正確性に欠ける表現がある可能性があります。 #1.DynamoDBで登場するキー – プライマリキー – パーティションキー(旧ハッシュキー) – ソートキー(旧レンジキー) – セカンダリインデックス – ローカルセカンダリインデックス(LSI) – グローバルセカンダリインデックス(GSI) #2.予備知識 DynamoDBでは大量データを高速処理するため、パーティショニングによる分散処理を行っている。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/e59b80b1-8f46-552c-84ef-57d5a9765b1d.png) #3.プライマリキー データを一意にするため、DynamoDBでテーブル作成時に**プライマリキー**を決定しておく必要がある。 **プライマリキー**のパターン – パーティション
元記事を表示

AWSでインターネットとサーバー構築

#初めに この記事は私がAWSでインターネットとサーバーを構築するまでを簡単にまとめたものとなっています。 メモとして書いていますので詳細な説明が少ないことはご留意ください。 また、この記事はAWS基礎からの基礎からのネットワーク&サーバー構築という本をもとに進めていきますのでより深く細かいところまで知りたいという方は是非読んでみてください。 #アーキテクチャ 本記事はこのようなアーキテクチャになるよう構築していきます。 ![pra-
元記事を表示

# Amazon LightSailからNTT-PC WebARENA Indigo VPSに移動①

# Amazon LightSailからNTT-PC WebARENA Indigo VPSに移動① ここまでのあらすじ[1](https://qiita.com/syakesaba/items/34553a66e0d467797629) [2](https://qiita.com/syakesaba/items/375f0b5971c5ba7ad575) [3](https://qiita.com/syakesaba/items/fd87cb6184cbb92dfdee) > ぼく「AWS安くて安定して最高や・・・でも個人用途で使うにはまだまだ高い」 > ぼく「円高になるまで国内の安かろう悪かろうなVPSで遊ぶかぁ」 > ぼく「Conohaもさくらもだいぶ前に使ったことあるし・・・[NTT](https://web.arena.ne.jp/indigo/)でも使うか」 > ぼく「折角なので国内VPSの良い点を活かしたことしよう」 # 目次 1. [サービス約款をチェック!](#サービス約款をチェック!) 1. [通信容量無制限を活かそう](#通信容量無制限を活かそう) 1
元記事を表示

【やってみた】VPCピアリング

## VPCピアリング VPCと他VPCとの接続をプライベートネットワークで行える。 自アカウント内のVPC間、別のAWSアカウントのVPCとの間、別のAWS リージョンのVPCとの間に作成可能。 参考:[VPCピアリング接続](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-peering.html) ## この記事でやること 自アカウントの同一リージョン内に2つのVPCを接続し、VPC内にあるEC2インスタンスが相互に疎通できるようにする。 ![スクリーンショット 2021-11-07 15.19.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500026/342449f7-6fc0-cae3-5ca4-f3e449d9c3a1.png) ## 前提条件 以下環境を作成済みとし、EC2インスタンスに対しSSH接続できることとする。 ![スクリーンショット 2021-11-07 12.13.40.png](https:/
元記事を表示

AWS CertificatieManagerでLightsail wordpressをhttpsアクセスできるようにSSL化してみる

AWS CertificatieManagerでLightsail wordpressをhttpsアクセスできるようにSSL化してみます。 https://ten-hope.com/acm-https-ssl-wordpress/ LightsailからのWordpress作成やドメインの取得等は以下参照ください。 https://ten-hope.com/aws-lightsail-wordpress/ https://ten-hope.com/route53-lightsail-wordpress/ https://ten-hope.com/cloudfront-lightsail-wordpress/

はじめに

CloudFrontでキャッシュ化しましたので、さらに、AWS CertificatieManager(ACM)でLightsail wordpressをhttpsアクセスできるようにSSL化してみます。Lig

元記事を表示

Sparkについて(Python,Java,JVM,RDD)

#Hadoop,Sparkの分散処理について * 巨大データの取り扱いを目的とした分散処理のフレームワーク * 分散処理によってビッグデータを高速に処理することが可能 * Hadoopの利用者は自作したデータ処理のプログラムや他者が開発したツールプログラムをHadoop内に組み込んでビッグデータ処理が可能 ##Hadoop上で稼動するデータベースマネージメントシステム(DBMS) * Hive * Impala ##Hadoop上で稼動するスクリプト環境 * Pig Hadoop連携ソフトウェアの存在がビックデータ処理環境をより便利にしている。 **SparkもHadoopと同じく分散処理のフレームワーク** adoopがJava言語で作られているのに対してSparkはJavaの派生言語であるScalaで作られています。 ###Sparkの内部処理方式 * データをメモリに保存することで入出力の高速化を図り処理全体の実行速度を向上させようとする取り組みがある。 * 利用可能メモリが枯渇した場合にはデータをストレージに保存するケースも勘案 * 機械学習の計算処理に効果を発揮する
元記事を表示

OTHERカテゴリの最新記事