AWS

Lambdaでライブラリを利用する-AWS

前提条件 ・「test-function」という名前のLambda functionを作成している。 1. ライブラリの作成 利用するライブラリを「python」フォルダにインストールして、ZIP形式で圧縮してください。 ※フォルダの名前は必ず「python」にしてください。 $ mkdir pytho…

一時的な認証情報を取得する-AWS

AWS

1. IAMユーザーの作成 $ aws iam create-user --user-name dev-user 2. IAMロールの作成 iam-role-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{AWSアカウントID}:user/dev-use…

ECSをCloudFormationで構築する-AWS

※以下の変数は右の値に変更してください。 ・subnet_id:サブネットID ・security_group_id:セキュリティグループID AWSTemplateFormatVersion: 2010-09-09 Resources: ECSLogGroup: Type: 'AWS::Logs::LogGroup' Properties: LogGroupName: /ecs/sample-ap…

ECSでDockerコンテナをデプロイする-AWS

前提条件 ・ECRにDockerイメージをPushしている。 maya313.hatenablog.com 1. タスク定義の作成 ECSで以下の「task.json」ファイルを利用してタスク定義を作成します。 ※以下の変数は右の値に変更してください。 ・ecr_url:ECRのDockerイメージURL ・aws_ac…

ECRにDockerイメージをプッシュする-AWS

1. リポジトリの作成 ECRにイメージをプッシュするリポジトリを作成します。 $ aws ecr create-repository --repository-name {リポジトリ名} --region ap-northeast-1 2. Dockerクライアントの認証 ECRに対してDockerクライアントを認証させます。 認証させ…

ネットワークをCloudFormationで構築する-AWS

AWS

AWSTemplateFormatVersion: 2010-09-09 Parameters: EnvironmentName: Type: String Default: sample-app VpcCIDR: Type: String Default: 10.1.0.0/16 Subnet1CIDR: Type: String Default: 10.1.1.0/24 Subnet2CIDR: Type: String Default: 10.1.2.0/24 Res…

既存のAWSリソースをCloudFormationで管理する-AWS

AWS

Former2を利用して既存のAWSリソースのCloudFormationテンプレートを生成し、CloudFormationでAWSリソースを管理できるようにする。 1. Former2で利用するIAMユーザーの作成 以下の設定でIAMユーザーを作成する。 ・AWS アクセスの種類:プログラムによるア…

CloudFrontとS3を利用したReactAppでAccessDeniedが発生する-AWS

AWS

何も設定を行わないとCloudFrontとS3を利用したReactAppで「/」ページ以外にアクセスするとAccessDeniedが発生する。 対策としてはCloudFrontの「エラーページ」の設定でHTTP エラーコードが403の時に「/」ページへ遷移させるようにする。

Application Load BalancerのIPアドレスがGoogleの検索結果に表示されてしまう-AWS

AWS

サイトを公開した後にGoogleの検索結果にhttps://www.example.comではなく、 https://XXX.XX.XXX.XXXというようにApplication Load BalancerのIPアドレスが表示されてしまうことがある。 これを回避するにはロードバランサーの設定で指定したホスト(例:www.…

aws s3 syncコマンドの速度を早くする-AWS

AWS

以下のパラメータを変更する。 ・max_concurrent_requests:同時リクエストの最大数 ・max_queue_size:タスクキュー内のタスクの最大数 $ aws configure set default.s3.max_concurrent_requests 100 $ aws configure set default.s3.max_queue_size 10000

RDSのログをCloudWatch Logsに出力する

AWS

1. 出力したいログを選ぶ RDSのインスタンスの設定画面から出力したいログを選択する。 出力できるログの種類 ・監査ログ ・エラーログ ・全般ログ ・スロークエリログ 2. パラメータグループの変更 RDSのインスタンスのパラメータグループで以下のように対…

AWS LambdaでS3オブジェクトを取得する-AWS

import json def lambda_handler(event, context): print(event) for row in event['Records']: bucket_name = row['s3']['bucket']['name'] bucket_object = row['s3']['object']['key'] print(bucket_name) print(bucket_object)

AWS CloudFormationの組み込み関数

AWS

Fn::Sub 文字列と変数を組み合わせる際に使用する。 Parameters: EnvironmentName: Type: String Default: my-app Resources: Subnet1: Type: AWS::EC2::Subnet Properties: ... Tags: - Key: Name Value: !Sub ${EnvironmentName}-1 Ref 指定したパラメータ…

AWS CloudFormationとAWS OpsWorksの使い分け

AWS

AWS CloudFormation VPC、EC2などのインフラ環境作成 AWS OpsWorks EC2の中のミドルウェアなどの管理

AWS環境でのCORSエラー

AWS

CORSエラーはさまざまな要因で発生することがあるが、AWS環境で発生した場合はロードバランサーのタイムアウト値が短いことで発生する場合がある。 ※タイムアウトが発生するとサーバーからのレスポンスヘッダが書き換わるため。 上記が要因の場合は、ロード…

コードデプロイでデプロイを行う

AWS

ローカルPCのプログラムソースをZIPでS3にアップロードして、 EC2にデプロイするシェルスクリプト。 #!/bin/bash APPLICATIONNAME="deploy-app" GROUPNAME="deploy-group" BUCKETNAME="deploy-bucket" REGION="ap-northeast-1" DIR="/var/develop/fld/" ZIPN…

特定のS3バケットのみにアクセスできるIAMポリシー

AWS

特定のS3バケットのみにアクセスできるIAMポリシーの設定。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::{bucket_name}", "arn:aws:s3:::{bucket_name}/*" ] } ] }